@rex0220/kintone-sql-tools 3.31.0 → 3.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,14 @@
1
- "use strict";(()=>{async function Ie(e,t,n,r,i={}){let o=i.pageSize??eE,a=Math.max(1,i.parallel??tE),s=i.maxRecords??nE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let u=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \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`,R=0,m=0,y=ru(n,R),h=await nu(e,t,y,c,o,m);if(tu(h,i),p.push(...h.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}if(h.records.length<o)return p;for(m+=o,m>=la&&(R=iu(h.records),m=0);;){if(d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}let g=u-p.length,S=Math.ceil(g/o),b=Math.max(1,Math.min(a,S)),P=[];for(let w=0;w<b;w++){let _=m+w*o;if(_>=la)break;P.push(_)}let O=ru(n,R),I=await Promise.all(P.map(w=>nu(e,t,O,c,o,w)));for(let w of I)tu(w,i);let D=!1;for(let w of I){if(p.push(...w.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}if(w.records.length<o){D=!0;break}}if(D)break;if(m+=o*P.length,m>=la){let w=I[I.length-1];R=iu(w.records),m=0}}return p}function tu(e,t){e.searchAborted&&t.onSearchAborted?.()}function ou(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var eE=500,tE=1,nE=1e4,la=1e4;async function nu(e,t,n,r,i,o){let a=rE(n,i,o);return e({app:t,query:a,fields:r})}function ru(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function rE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function iu(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Oe=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var iE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function oE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=iE.exec(e.trim());if(t===null)return null;let n=oE(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function aE(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function au(e){let t=Le(e);return t===null?null:aE(t)}function sE(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function ui(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=sE(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function ci(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return ui(n,r)}var qe="__NO_FROM__";function me(e){return{type:"NUMBER",value:Number(e),raw:e}}function W(e){let t=e.raw??String(e.value);return au(t)??t}function su(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function lE(e){return`${e.tableAlias??""}\0${e.field}`}function ie(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=lE(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function lu(e){return ie(e).type!=="NONE"}function uu(e,t){let n=ie(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let u={...l,field:s};return r.set(u.canonicalId,u),u},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(u=>u.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function di(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function uE(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"}function ua(e){return kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function pn(e){return!ua(e)&&(uE(e.type)||kt(e.type))}function cu(e){return pn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var cE=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function ye(e,t){for(let n of t)e.add(n)}function pi(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&cE.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>pi(i,t)):pi(r,t))}function gt(e){let t=new Set;if(kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":ye(t,cn(e));break;case"UNION":ye(t,du(e));break;case"WITH":for(let n of e.ctes)ye(t,gt(n.query));ye(t,gt(e.query));break;case"CREATE_TEMP_TABLE":ye(t,gt(e.query));break;default:break}return pi(e)&&t.add("STATISTICAL_AGGREGATE"),t}function pu(e){return gt(e).size>0}function du(e){let t=e.left.type==="SELECT"?cn(e.left):du(e.left);return ye(t,cn(e.right)),t}function cn(e){let t=new Set;ie(e).type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let n of e.columns)if(n.type==="WINDOW_COL"&&n.orderBy.length>0&&t.add("WINDOW_ORDER"),n.type==="SCALAR_SUBQUERY_COL"&&ye(t,cn(n.query)),n.type==="CASE_COL")for(let r of n.expr.branches)ye(t,un(r.condition));return ye(t,un(e.where)),ye(t,un(e.having)),pi(e)&&t.add("STATISTICAL_AGGREGATE"),t}function un(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&ye(t,cn(e.right.query));break;case"LOGICAL":ye(t,un(e.left)),ye(t,un(e.right));break;case"NOT":case"GROUP":ye(t,un(e.expr));break;case"EXISTS":ye(t,cn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function fu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Eu(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var fi=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Mt=new Set(["TODAY","NOW","LOGINUSER"]),qn=new Set([...Mt,...fi]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function X(e){return fi.has(e)}function dn(e){return Mt.has(e)}function Be(e){return qn.has(e)}var pE=Object.freeze({v1:Object.freeze({operations:new Set(["PATCH"]),insert:!1,upsert:!1,multipleBlocks:!1,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.1":Object.freeze({operations:new Set(["PATCH","APPEND"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.2":Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase10a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase11:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase12:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase13a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14c:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1})}),da=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),zn="v1";function G(e){throw new Error(`UnsupportedError: APPLY ${zn} scope does not support ${e}`)}function dE(e,t){let n=zn;zn=e;try{return t()}finally{zn=n}}function fE(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function Rn(e,t){return dE(e,()=>EE(t,pE[e]))}function EE(e,t){let n=fE(e);if(n===null)return;if(n.type==="UPSERT"){mE(n,t);return}let r=n.applyBlocks;if(ca(r),!t.multipleBlocks&&r.length!==1&&G("multiple APPLY blocks in this phase"),n.type==="INSERT"){yE(n,r,t);return}let i=n;i.subtableCode&&G("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&G("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&G("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&G("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&G("REJECT LIMIT in this phase"),hE(i.where,t.multipleParents),mu(r,t)}function mu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||G(`${r.kind} in this phase`);yu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Ei(i,"APPEND targets");En(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&G("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Ru(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&G("EXPECT ROWS in this phase"),r.assignments.length===0&&G("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&G("parent or qualified PATCH targets in this phase")}En(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Ru(r.selector.where,t.idxSelectors)}}}}function yu(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var RE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function hu(e,t){if(yu(e),e.targetKind==="MULTI_VALUE"){if(!RE.has(t))throw new Error(`ArgumentError: APPLY multi-value operations require MULTI_SELECT, CHECK_BOX, USER_SELECT, ORGANIZATION_SELECT, or GROUP_SELECT target; ${e.field} is ${t}.`);return}if(t!=="SUBTABLE")throw new Error(`ArgumentError: APPLY row operations require a SUBTABLE target; ${e.field} is ${t}.`)}function ca(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${zn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function mE(e,t){t.upsert||G("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&G("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&G("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&G("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];ca(n),ca(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&G("multiple APPLY blocks in this phase"),gu(n,"UPSERT ON INSERT"),mu(r,{...t,idxSelectors:!1,expectRows:!1})}function gu(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&G(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Ei(i,"APPEND targets");En(r.values,"APPEND values")}}function yE(e,t,n){n.insert||G("INSERT in this phase"),e.subtableCode&&G("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&G("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&G("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&G("REJECT LIMIT in this phase"),gu(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function Ri(e,t){let n=da[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&fa(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${fn(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${fn(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${fn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${fn(e)} execution does not support multiple-parent APPLY`)}function fa(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function Au(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!da[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${fn(e)} public multiple-parent write is not connected`)}function mn(e){if(!da[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${fn(e)} internal prepared write is not available`)}function fn(e){return`Phase ${e.slice(5)}`}function hE(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&G("a parent $id that is not a positive safe integer in this phase"),t||G("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),pa(e,t))}function pa(e,t){if(Array.isArray(e)){for(let o of e)pa(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&G("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&G("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&G("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&G("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&X(n.name))&&G("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))pa(o,t)}function Ru(e,t){En(e,"child row selectors",t)}function En(e,t,n=!1){if(Array.isArray(e)){for(let s of e)En(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&G(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&G(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&G(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&X(r.name))&&G(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&G(`qualified or parent field references in ${t}`),Ei(l,t,n)}if(i==="FIELD_REF"&&Ei(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))En(s,t,n)}function Ei(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&G(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&G(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&G(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=gE(e.op);if(t===null)throw new oe(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function gE(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function Su(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function de(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return de(e.left)||de(e.right);case"NOT":case"GROUP":return de(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return AE(e);case"NULL_CHECK":return TE(e);case"LOGICAL":return IE(e);case"NOT":return wE(e);case"GROUP":return bE(e);case"EXISTS":throw new oe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new oe("internal error: BOOLEAN predicate reached kintone query conversion")}}function AE(e){if(Xn(e))throw new oe("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Iu(e.left),n=SE(e.op),r=PE(e.right,e.op);return`${t} ${n} ${r}`}function SE(e){switch(e){case"=":return"=";case"!=":case"<>":return"!=";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"like";case"NOT_LIKE":return"not like";case"KLIKE":return"like";case"NOT_KLIKE":return"not like";case"IN":return"in";case"NOT_IN":return"not in"}}function TE(e){let t=Iu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function IE(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=Tu(e.left)?`(${t})`:t,o=Tu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function wE(e){return V(Jn(e.expr))}function bE(e){return`(${V(e.expr)})`}function Iu(e){if(e.type==="FUNC_FIELD")throw new oe(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new oe("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new oe("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new oe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return UE(e.field)}function PE(e,t){switch(e.type){case"VARIABLE":throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new oe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return wu(e);case"NUMBER":return W(e);case"KINTONE_FUNC":return bu(e);case"IN_LIST":return DE(e,t);case"ARITH_VALUE":throw new oe("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new oe("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new oe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new oe("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new oe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function wu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function bu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return NE(e)}function NE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!LE(e.args.offset,e.args.offsetText)||!CE.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!OE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!_E(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var CE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),OE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function LE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function _E(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new oe("internal error: invalid relative date function AST reached kintone query conversion")}function DE(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new oe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return vE(e.values),`(${e.values.map(r=>r.type==="STRING"?wu(r):r.type==="NUMBER"?W(r):bu(r)).join(",")})`}function vE(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function UE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Tu(e){return e.type==="LOGICAL"}var oe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function mi(e){return`'${e.replace(/'/g,"''")}'`}function yn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return W(e);if(e.type==="STRING_FUNC")return Ra(e);let n=`${yn(e.left)}${e.op}${yn(e.right)}`;return t?n:`(${n})`}function Pu(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ra(e.expr);if(e.type==="ARITH_FIELD")return yn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ea(e.expr)}function Cu(e){switch(e.type){case"STRING":return mi(e.value);case"NUMBER":return W(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>mi(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Cu).join(",")})`;case"ARITH_VALUE":return yn(e.expr);case"CASE_VALUE":return Ea(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${Pu(e.left)} ${e.op.replace("_"," ")} ${Cu(e.right)}`;case"NULL_CHECK":return`${Pu(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Nu(e){return e.type==="ARRAY"?`[${e.elements.map(t=>mi(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?yn(e):xt(e)}function Ea(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Nu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Nu(e.elseResult)}`;return`CASE ${t}${n} END`}function kE(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function Ra(e){return`${e.func}(${e.args.map(kE).join(",")})`}function xt(e){switch(e.type){case"STRING":return mi(e.value);case"NUMBER":return W(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Ra(e);case"CASE_WHEN":return Ea(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function ME(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?yn(e,!0):xt(e)}function we(e,t,n){let r=ME(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?W(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function FE(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ie(e).type!=="NONE"||e.distinct||FE(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&vu(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Ou(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return Ou(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Ou(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function yi(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(V(e.where)),e.orderBy.length>0){let i=e.orderBy.map(xE).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:KE(e.columns),totalCount:!1}}function Du(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(V(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=ku(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function xE(e){let t=e.direction==="ASC"?"asc":"desc";if(e.key.type!=="FIELD_NAME")throw new Error("ORDER BY \u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08FULL_SCAN \u304C\u5FC5\u8981\u3067\u3059\uFF09");return`${e.key.name} ${t}`}function KE(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(ya(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?ha(r.expr,n):r.type==="SCALAR_VALUE_COL"&&hn(r.expr,n);return[...new Set(n)]}function BE(e,t){tr(e.left,t),tr(e.right,t)}function tr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(ya(e.field)):e.type==="ARITH"?BE(e,t):e.type==="STRING_FUNC"&&ha(e,t)}function ya(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ha(e,t){for(let n of e.args)$E(n,t)}function $E(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ma(e,t);return}hn(e,t)}function hn(e,t){if(e.type==="FIELD"){t.push(ya(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ha(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){hn(e.left,t),hn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Lu(n.result,t);e.elseResult&&Lu(e.elseResult,t)}}function Lu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}hn(e,t)}}function ma(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&GE(e.arg,t);return}e.type==="AGG_ARITH"&&(ma(e.left,t),ma(e.right,t))}function GE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):hn(e,t)}function vu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?vu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>_u(t.result))||e.elseResult!==null&&_u(e.elseResult):!1}function _u(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Uu(e,t){let n=new Set,r=ku(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function ku(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let u=VE(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},p=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let F=a.get(A);if(!(!F||F.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let N=C.slice(3);N&&N!=="*"&&F.fields.add(N);return}return void 0}C&&F.fields.add(C)}},R=(A,C="select",F)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let x=A.slice(0,-2);if(!x){p();return}if(x==="_p"){f();return}let Y=d.get(x);if(Y){c(Y);return}return}if(C==="groupBy"&&F!==void 0){if(F.kind==="PHYSICAL"){let x=r[F.sourceIndex];x&&(n||x.cteName===null)&&E(x,F.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&u.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&WE(A))return;let N=A.indexOf(".");if(N>0){let x=A.slice(0,N),Y=A.slice(N+1);if(x==="_p"){l&&E(l,`_p.${Y}`);return}let j=d.get(x);if(j){E(j,Y);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},m=(A,C,F="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let N=d.get(C);if(N){E(N,A);return}if(n)return}R(A,F)},y=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){y(A.left,C),y(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},h=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&P(A.arg,C);return}A.type==="AGG_ARITH"&&(h(A.left,C),h(A.right,C))},g=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){h(A,C);return}b(A,C)},S=(A,C="select")=>{for(let F of A.args)g(F,C)},b=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){b(A.left,C),b(A.right,C);return}A.type==="CASE_WHEN"&&I(A,C)},P=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}b(A,C)},O=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}b(A,C)}},I=(A,C="select")=>{for(let F of A.branches)_(F.condition,C),O(F.result,C);A.elseResult&&O(A.elseResult,C)},D=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){y(A.expr,C);return}A.type!=="GROUPING_FIELD"&&I(A.expr,C)},w=(A,C="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,C);return}if(A.type==="CASE_VALUE"){I(A.expr,C);return}},_=(A,C="where")=>{if(A)switch(A.type){case"BINARY":D(A.left,C),w(A.right,C);return;case"NULL_CHECK":D(A.field,C);return;case"LOGICAL":_(A.left,C),_(A.right,C);return;case"NOT":case"GROUP":_(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},k=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}S(A.expr,"groupBy")},L=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){y(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&P(A.arg,"select");break;case"ARITH_AGG_COL":h(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":I(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":b(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)m(C.field,C.tableAlias,"select");for(let C of A.orderBy)L(C.key,"select");break}for(let A of e.joins)m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where");_(e.where,"where");let v=ie(e);if(v.type==="PLAIN")v.allItems.forEach((A,C)=>k(A,t?.items[C]));else if(v.type==="GROUPING_SETS")for(let A of v.allItems)m(A.field,A.tableAlias,"select");_(e.having,"having");for(let A of e.orderBy)L(A.key);return a}function VE(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(we(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function WE(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||lu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=hi(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function hi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Mu(e.left,t)};case"NULL_CHECK":return{...e,field:Mu(e.field,t)};case"LOGICAL":return{...e,left:hi(e.left,t),right:hi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:hi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Mu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function gn(e,t={}){return rr(e,n=>HE(n,t))}function ir(e,t={}){return rr(e,n=>Fu(n,t)||xu(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function HE(e,t){return YE(e,t)||zE(e,t)?!0:Fu(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":qE(e,t)}function YE(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ga(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var jE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function qE(e,t){if(!xu(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!jE.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function zE(e,t){return!JE(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function JE(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Fu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ga(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(W(e.right))&&Number.isSafeInteger(e.right.value)}function xu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ga(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function ga(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function or(e,t={}){let n=e!==null&&t.extractCondition!==!1?gn(e,t):null,r=new Set;An(n,r);let i=new Set;return An(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Sn(e,t={}){let r={allowKlike:e.joins.every(u=>u.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let u of e.joins){if(!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let c=gn(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});c!==null&&l.set(u.table.alias,c)}let d=new Set(a.appliedKlikes);for(let u of l.values())An(u,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Aa(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function An(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":An(e.left,t),An(e.right,t);return;case"NOT":case"GROUP":An(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function gi(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=ce(t.where);if(l.length===0||!ZE(l,a)||o===null||!Ku(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:QE(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},u={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return XE(u,e,l),u}function XE(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Ku(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ce(e){let t=[],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==="KINTONE_FUNC"&&typeof i.name=="string"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function QE(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function ZE(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Ku(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var ae=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function $e(e){Bu(e)}function Ta(e){if(Aa(e).length>0)throw new ae("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Bu(e){switch(e.type){case"SELECT":Tn(e);return;case"UNION":wa(e);return;case"WITH":$u(e);return;case"EXPLAIN":Bu(e.query);return;case"CREATE_TEMP_TABLE":Ia(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&de(e.where)){Sa(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new ae("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&de(e.where)&&!nR(e,e.where)){Sa(e.where),Bt(e);return}if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new ae("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&de(e.where)){Sa(e.where),Bt(e);return}if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new ae("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Sa(e){Si(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ae("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ae("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Ia(e){e.type==="SELECT"?Tn(e):e.type==="UNION"?wa(e):$u(e)}function wa(e){Ia(e.left),Tn(e.right)}function $u(e){if(It(e)){Tn(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Tn(t.query):t.query.type==="UNION"&&wa(t.query);Ia(e.query)}function Tn(e){if(tR(e),de(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Sn(e,{allowUnresolvedVariables:!0});if(Aa(n).length===0){Bt(e);return}if(eR(e)){Bt(e);return}throw new ae("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function eR(e){return e.where!==null&&ce(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function tR(e){Si(e,t=>{if(!St(t))return;if(!Ai(e.where,t))throw new ae("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ae("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ae("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Ti(e,t=>{t.type==="SELECT"&&Tn(t)},!0)}function bt(e){let t=!1;return Ti(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function nR(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function Ai(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ai(e.left,t)||Ai(e.right,t);case"NOT":case"GROUP":return Ai(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Si(e,t){if(Array.isArray(e)){for(let r of e)Si(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&rR(r)||Si(r,t)}function Ti(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Ti(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Ti(i,t)}function rR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Gu=Symbol("ksql.groupingRowMeta"),Vu=new WeakMap;function Wu(e,t){return Object.defineProperty(e,Gu,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function iR(e){return e[Gu]}function oR(e){return iR(e)?.includedCanonicalIds}function Hu(e,t){Vu.set(e,t)}function In(e,t){let n=oR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Vu.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ju=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function bi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Pa(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 De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function Pi(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Pi(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){De(n.arg,t);return}Object.values(n).forEach(r=>Pi(r,t))}}function ar(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>ar(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(Pa(n.field));return}Object.values(n).forEach(i=>ar(i,t))}}function sr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(sr);let t=e;return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(sr)}function aR(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"?sr(e):!1}function sR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Yu(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function lR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${bi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${bi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Hu(e,r.canonicalId)}function ba(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${bi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function uR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Pa(e.name)];let t=[];return ar(e,t),t}function Na(e){let t=ie(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),Pi(e.columns,r),Pi(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&De(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function qu(e,t,n=()=>{}){Na(e);let r=ie(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&De(u,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=uu(e,t),a=new Set,s=[];for(let u of o.allItems){let c=u;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${bi(u.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)lR(u,t,a);let l=sR(e.columns);for(let u of e.columns){if(u.type==="GROUPING_COL"||u.type==="AGGREGATE"||u.type==="ARITH_AGG_COL"||u.type==="LITERAL_COL"||u.type==="VARIABLE_COL"||u.type==="SCALAR_SUBQUERY_COL")continue;let c=[];u.type==="FIELD"?c.push(Pa(u.field)):ar(u,c);for(let p of c)ba(p,t,a,"SELECT")}if(e.having){let u=[];ar(e.having,u);for(let c of u)c.tableAlias===null&&l.has(c.field)||Yu(c)||ba(c,t,a,"HAVING")}for(let u of e.orderBy)for(let c of uR(u.key))c.tableAlias===null&&l.has(c.field)||Yu(c)||ba(c,t,a,"ORDER BY");let d=new Set;for(let u of s)d.add(u.directKey),u.unqualifiedBridgeKey!==null&&d.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!aR(u))continue;let c="alias"in u?u.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Ni=16,zu=64,ee=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function lr(e,t,n){if(Array.isArray(e)){for(let r of e)lr(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))lr(a,t,n)}}function Ca(e,t){if(Array.isArray(e)){for(let n of e)Ca(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Ca(i,t)}}function Oa(e){if(Array.isArray(e)){for(let t of e)Oa(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Na(e);for(let n of Object.values(t))Oa(n)}}function La(e){if(e.length===0)throw new ee("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{Oa(c)}catch(f){throw f instanceof Error?new ee(f.message,p):f}try{Rn("phase15b",c),$e(c)}catch(f){throw f instanceof ae?new ee(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new ee(f.message,p):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let p=c==="SET_VARIABLE"?"SET":"DECLARE";throw new ee(`ArgumentError: ${p} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let p=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new ee(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,p)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let O=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new ee(O,p)}let E=di(c),R=[],m=[],y=new Set,h=new Set,g=new Set,S=[];Ca(c,S);let b=new Set;for(let O of S){let I=o.get(O.name);if(I===void 0)throw new ee(`ParseError: variable @${O.name} is not defined before statement ${p+1}.`,p);if(I.kind==="scalar"&&O.kind==="array-in-list")throw new ee(`ParseError: scalar variable @${O.name} cannot be used as IN @${O.name}; use IN (@${O.name}) instead.`,p);if(I.kind==="array"&&O.kind!=="array-in-list")throw new ee(`ParseError: array variable @${O.name} can only be used as IN @${O.name}.`,p);b.has(O.name)||(I.referencedBy.push(p),b.add(O.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new ee(`ParseError: variable @${c.name} is already defined.`,p);if(o.set(c.name,{index:p,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>zu)throw new ee(`ParseError: batch exceeds ${zu} variables.`,p)}c.type==="CREATE_TEMP_TABLE"?lr(c.query,y,h):c.type==="DROP_TEMP_TABLE"||lr(c,y,h);let P=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let O=new Set,I=new Set;lr(c.select,O,I),P=O.size>0&&I.size===0}for(let O of y){let I=t.get(O);if(I===void 0)throw new ee(`ParseError: temp table ${O} is not defined in this batch.`,p);g.add(I)}if(f){let O=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(w=>w.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(w=>w.field)]:"fields"in c?c.fields:[],I=JSON.stringify(O),D=t.get(f);if(D===void 0){if(t.set(f,p),n.set(f,I),r.push(f),R.push(f),t.size>Ni)throw new ee(`ParseError: batch exceeds ${Ni} temp tables.`,p)}else{if(n.get(f)!==I)throw new ee(`ParseError: validation error table ${f} has a different payload schema.`,p);g.add(D)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new ee(`ParseError: temp table ${c.name} is already defined.`,p);if(t.set(c.name,p),r.push(c.name),R.push(c.name),t.size>Ni)throw new ee(`ParseError: batch exceeds ${Ni} temp tables.`,p)}if(c.type==="DROP_TEMP_TABLE"){let O=t.get(c.name);if(O===void 0)throw new ee(`ParseError: temp table ${c.name} is not defined in this batch.`,p);g.add(O),m.push(c.name),t.delete(c.name)}i.push({index:p,statementType:E,isDml:ua(c),isReadOnly:pn(c),hasWhere:fu(c),insertValuesCount:Eu(c),appIds:[...h].sort((O,I)=>O-I),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...g].sort((O,I)=>O-I),tempOnlySource:P,targetAppId:kt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:pu(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),u=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:u,warnings:u.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Ci=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var he=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Pt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(wn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(_a(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new he(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new he("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new he("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&wn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&wn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&wn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!wn(this.input[this.pos]))throw new he("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&wn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&Ju(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Ci.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!_a(n))throw new he("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Ju(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new he(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new he("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new he("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";(()=>{async function Ie(e,t,n,r,i={}){let o=i.pageSize??aE,a=Math.max(1,i.parallel??sE),s=i.maxRecords??lE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \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`,R=0,y=0,m=ou(n,R),h=await iu(e,t,m,c,o,y);if(ru(h,i),u.push(...h.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Oe(E)}if(h.records.length<o)return u;for(y+=o,y>=ua&&(R=au(h.records),y=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Oe(E)}let g=p-u.length,S=Math.ceil(g/o),P=Math.max(1,Math.min(a,S)),b=[];for(let w=0;w<P;w++){let D=y+w*o;if(D>=ua)break;b.push(D)}let L=ou(n,R),I=await Promise.all(b.map(w=>iu(e,t,L,c,o,w)));for(let w of I)ru(w,i);let v=!1;for(let w of I){if(u.push(...w.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Oe(E)}if(w.records.length<o){v=!0;break}}if(v)break;if(y+=o*b.length,y>=ua){let w=I[I.length-1];R=au(w.records),y=0}}return u}function ru(e,t){e.searchAborted&&t.onSearchAborted?.()}function su(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var aE=500,sE=1,lE=1e4,ua=1e4;async function iu(e,t,n,r,i,o){let a=uE(n,i,o);return e({app:t,query:a,fields:r})}function ou(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function uE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function au(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Oe=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var cE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function pE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=cE.exec(e.trim());if(t===null)return null;let n=pE(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function dE(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function lu(e){let t=Le(e);return t===null?null:dE(t)}function fE(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function ci(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=fE(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function pi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return ci(n,r)}var qe="__NO_FROM__";function Re(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return lu(t)??t}function uu(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function EE(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=EE(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function cu(e){return ne(e).type!=="NONE"}function pu(e,t){let n=ne(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function fi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function RE(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"}function ca(e){return kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!ca(e)&&(RE(e.type)||kt(e.type))}function du(e){return dn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var mE=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function me(e,t){for(let n of t)e.add(n)}function di(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&mE.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>di(i,t)):di(r,t))}function gt(e){let t=new Set;if(kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":me(t,pn(e));break;case"UNION":me(t,Eu(e));break;case"WITH":for(let n of e.ctes)me(t,gt(n.query));me(t,gt(e.query));break;case"CREATE_TEMP_TABLE":me(t,gt(e.query));break;default:break}return di(e)&&t.add("STATISTICAL_AGGREGATE"),t}function fu(e){return gt(e).size>0}function Eu(e){let t=e.left.type==="SELECT"?pn(e.left):Eu(e.left);return me(t,pn(e.right)),t}function pn(e){let t=new Set;ne(e).type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let n of e.columns)if(n.type==="WINDOW_COL"&&n.orderBy.length>0&&t.add("WINDOW_ORDER"),n.type==="SCALAR_SUBQUERY_COL"&&me(t,pn(n.query)),n.type==="CASE_COL")for(let r of n.expr.branches)me(t,cn(r.condition));return me(t,cn(e.where)),me(t,cn(e.having)),di(e)&&t.add("STATISTICAL_AGGREGATE"),t}function cn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&me(t,pn(e.right.query));break;case"LOGICAL":me(t,cn(e.left)),me(t,cn(e.right));break;case"NOT":case"GROUP":me(t,cn(e.expr));break;case"EXISTS":me(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Ru(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function mu(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var Ei=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Mt=new Set(["TODAY","NOW","LOGINUSER"]),qn=new Set([...Mt,...Ei]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return Ei.has(e)}function fn(e){return Mt.has(e)}function Be(e){return qn.has(e)}var yE=Object.freeze({v1:Object.freeze({operations:new Set(["PATCH"]),insert:!1,upsert:!1,multipleBlocks:!1,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.1":Object.freeze({operations:new Set(["PATCH","APPEND"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.2":Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase10a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase11:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase12:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase13a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14c:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1})}),fa=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),zn="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${zn} scope does not support ${e}`)}function hE(e,t){let n=zn;zn=e;try{return t()}finally{zn=n}}function gE(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function mn(e,t){return hE(e,()=>AE(t,yE[e]))}function AE(e,t){let n=gE(e);if(n===null)return;if(n.type==="UPSERT"){TE(n,t);return}let r=n.applyBlocks;if(pa(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){IE(n,r,t);return}let i=n;i.subtableCode&&W("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&W("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&W("REJECT LIMIT in this phase"),wE(i.where,t.multipleParents),hu(r,t)}function hu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);gu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Ri(i,"APPEND targets");Rn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&yu(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.assignments.length===0&&W("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&W("parent or qualified PATCH targets in this phase")}Rn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&yu(r.selector.where,t.idxSelectors)}}}}function gu(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var SE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Au(e,t){if(gu(e),e.targetKind==="MULTI_VALUE"){if(!SE.has(t))throw new Error(`ArgumentError: APPLY multi-value operations require MULTI_SELECT, CHECK_BOX, USER_SELECT, ORGANIZATION_SELECT, or GROUP_SELECT target; ${e.field} is ${t}.`);return}if(t!=="SUBTABLE")throw new Error(`ArgumentError: APPLY row operations require a SUBTABLE target; ${e.field} is ${t}.`)}function pa(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${zn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function TE(e,t){t.upsert||W("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];pa(n),pa(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Su(n,"UPSERT ON INSERT"),hu(r,{...t,idxSelectors:!1,expectRows:!1})}function Su(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&W(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Ri(i,"APPEND targets");Rn(r.values,"APPEND values")}}function IE(e,t,n){n.insert||W("INSERT in this phase"),e.subtableCode&&W("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&W("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase"),Su(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function mi(e,t){let n=fa[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Ea(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${En(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${En(e)} execution does not support multiple-parent APPLY`)}function Ea(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function Tu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!fa[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!fa[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function wE(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&W("a parent $id that is not a positive safe integer in this phase"),t||W("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),da(e,t))}function da(e,t){if(Array.isArray(e)){for(let o of e)da(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&W("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&W("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&W("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&W("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&J(n.name))&&W("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))da(o,t)}function yu(e,t){Rn(e,"child row selectors",t)}function Rn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Rn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&W(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&W(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&W(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&J(r.name))&&W(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&W(`qualified or parent field references in ${t}`),Ri(l,t,n)}if(i==="FIELD_REF"&&Ri(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function Ri(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&W(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&W(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&W(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=bE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function bE(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function Iu(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function pe(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return pe(e.left)||pe(e.right);case"NOT":case"GROUP":return pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return PE(e);case"NULL_CHECK":return CE(e);case"LOGICAL":return OE(e);case"NOT":return LE(e);case"GROUP":return _E(e);case"EXISTS":throw new ie("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ie("internal error: BOOLEAN predicate reached kintone query conversion")}}function PE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=bu(e.left),n=NE(e.op),r=DE(e.right,e.op);return`${t} ${n} ${r}`}function NE(e){switch(e){case"=":return"=";case"!=":case"<>":return"!=";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"like";case"NOT_LIKE":return"not like";case"KLIKE":return"like";case"NOT_KLIKE":return"not like";case"IN":return"in";case"NOT_IN":return"not in"}}function CE(e){let t=bu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function OE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=wu(e.left)?`(${t})`:t,o=wu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function LE(e){return G(Jn(e.expr))}function _E(e){return`(${G(e.expr)})`}function bu(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return BE(e.field)}function DE(e,t){switch(e.type){case"VARIABLE":throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ie(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Pu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Nu(e);case"IN_LIST":return xE(e,t);case"ARITH_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ie("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new ie("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Pu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Nu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return vE(e)}function vE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ME(e.args.offset,e.args.offsetText)||!UE.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!kE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!FE(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var UE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),kE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ME(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function FE(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function xE(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ie("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return KE(e.values),`(${e.values.map(r=>r.type==="STRING"?Pu(r):r.type==="NUMBER"?H(r):Nu(r)).join(",")})`}function KE(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function BE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function wu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function yi(e){return`'${e.replace(/'/g,"''")}'`}function hn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return H(e);if(e.type==="STRING_FUNC")return ma(e);let n=`${hn(e.left)}${e.op}${hn(e.right)}`;return t?n:`(${n})`}function Cu(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return ma(e.expr);if(e.type==="ARITH_FIELD")return hn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ra(e.expr)}function Lu(e){switch(e.type){case"STRING":return yi(e.value);case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>yi(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Lu).join(",")})`;case"ARITH_VALUE":return hn(e.expr);case"CASE_VALUE":return Ra(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${Cu(e.left)} ${e.op.replace("_"," ")} ${Lu(e.right)}`;case"NULL_CHECK":return`${Cu(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Ou(e){return e.type==="ARRAY"?`[${e.elements.map(t=>yi(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?hn(e):xt(e)}function Ra(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Ou(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Ou(e.elseResult)}`;return`CASE ${t}${n} END`}function $E(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function ma(e){return`${e.func}(${e.args.map($E).join(",")})`}function xt(e){switch(e.type){case"STRING":return yi(e.value);case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return ma(e);case"CASE_WHEN":return Ra(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function GE(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?hn(e,!0):xt(e)}function we(e,t,n){let r=GE(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function VE(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||VE(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&ku(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return _u(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return _u(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function _u(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function hi(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(WE).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:HE(e.columns),totalCount:!1}}function Uu(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=Fu(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function WE(e){let t=e.direction==="ASC"?"asc":"desc";if(e.key.type!=="FIELD_NAME")throw new Error("ORDER BY \u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08FULL_SCAN \u304C\u5FC5\u8981\u3067\u3059\uFF09");return`${e.key.name} ${t}`}function HE(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(ha(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?ga(r.expr,n):r.type==="SCALAR_VALUE_COL"&&gn(r.expr,n);return[...new Set(n)]}function YE(e,t){tr(e.left,t),tr(e.right,t)}function tr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(ha(e.field)):e.type==="ARITH"?YE(e,t):e.type==="STRING_FUNC"&&ga(e,t)}function ha(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ga(e,t){for(let n of e.args)jE(n,t)}function jE(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ya(e,t);return}gn(e,t)}function gn(e,t){if(e.type==="FIELD"){t.push(ha(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ga(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){gn(e.left,t),gn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Du(n.result,t);e.elseResult&&Du(e.elseResult,t)}}function Du(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}gn(e,t)}}function ya(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&qE(e.arg,t);return}e.type==="AGG_ARITH"&&(ya(e.left,t),ya(e.right,t))}function qE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):gn(e,t)}function ku(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?ku(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>vu(t.result))||e.elseResult!==null&&vu(e.elseResult):!1}function vu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Mu(e,t){let n=new Set,r=Fu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Fu(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let p=zE(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},u=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&x.fields.add(O);return}return void 0}C&&x.fields.add(C)}},R=(A,C="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){u();return}if(F==="_p"){f();return}let j=d.get(F);if(j){c(j);return}return}if(C==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&E(F,x.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&JE(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),j=A.slice(O+1);if(F==="_p"){l&&E(l,`_p.${j}`);return}let z=d.get(F);if(z){E(z,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},y=(A,C,x="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let O=d.get(C);if(O){E(O,A);return}if(n)return}R(A,x)},m=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){m(A.left,C),m(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},h=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&b(A.arg,C);return}A.type==="AGG_ARITH"&&(h(A.left,C),h(A.right,C))},g=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){h(A,C);return}P(A,C)},S=(A,C="select")=>{for(let x of A.args)g(x,C)},P=(A,C="select")=>{if(A.type==="FIELD"){y(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){P(A.left,C),P(A.right,C);return}A.type==="CASE_WHEN"&&I(A,C)},b=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)}},I=(A,C="select")=>{for(let x of A.branches)D(x.condition,C),L(x.result,C);A.elseResult&&L(A.elseResult,C)},v=(A,C="select")=>{if(A.type==="FIELD"){y(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){m(A.expr,C);return}A.type!=="GROUPING_FIELD"&&I(A.expr,C)},w=(A,C="select")=>{if(A.type==="ARITH_VALUE"){m(A.expr,C);return}if(A.type==="CASE_VALUE"){I(A.expr,C);return}},D=(A,C="where")=>{if(A)switch(A.type){case"BINARY":v(A.left,C),w(A.right,C);return;case"NULL_CHECK":v(A.field,C);return;case"LOGICAL":D(A.left,C),D(A.right,C);return;case"NOT":case"GROUP":D(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},M=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){m(A.expr,"groupBy");return}S(A.expr,"groupBy")},N=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){m(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&b(A.arg,"select");break;case"ARITH_AGG_COL":h(A.expr,"select");break;case"ARITH_COL":m(A.expr,"select");break;case"CASE_COL":I(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":P(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)y(C.field,C.tableAlias,"select");for(let C of A.orderBy)N(C.key,"select");break}for(let A of e.joins)y(A.on.left.field,A.on.left.tableAlias,"where"),y(A.on.right.field,A.on.right.tableAlias,"where");D(e.where,"where");let _=ne(e);if(_.type==="PLAIN")_.allItems.forEach((A,C)=>M(A,t?.items[C]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)y(A.field,A.tableAlias,"select");D(e.having,"having");for(let A of e.orderBy)N(A.key);return a}function zE(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(we(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function JE(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||cu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=gi(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function gi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:xu(e.left,t)};case"NULL_CHECK":return{...e,field:xu(e.field,t)};case"LOGICAL":return{...e,left:gi(e.left,t),right:gi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:gi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function xu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>XE(n,t))}function ir(e,t={}){return rr(e,n=>Ku(n,t)||Bu(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function XE(e,t){return QE(e,t)||tR(e,t)?!0:Ku(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":eR(e,t)}function QE(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Aa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var ZE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function eR(e,t){if(!Bu(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!ZE.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function tR(e,t){return!nR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function nR(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Ku(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Aa(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(H(e.right))&&Number.isSafeInteger(e.right.value)}function Bu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Aa(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function Aa(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function or(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())Sn(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Sa(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Ai(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=ue(t.where);if(l.length===0||!oR(l,a)||o===null||!$u(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:iR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return rR(p,e,l),p}function rR(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!$u(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ue(e){let t=[],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==="KINTONE_FUNC"&&typeof i.name=="string"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function iR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function oR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function $u(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function $e(e){Gu(e)}function Ia(e){if(Sa(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Gu(e){switch(e.type){case"SELECT":In(e);return;case"UNION":ba(e);return;case"WITH":Vu(e);return;case"EXPLAIN":Gu(e.query);return;case"CREATE_TEMP_TABLE":wa(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&pe(e.where)){Ta(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&pe(e.where)&&!lR(e,e.where)){Ta(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&pe(e.where)){Ta(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Ta(e){Ti(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function wa(e){e.type==="SELECT"?In(e):e.type==="UNION"?ba(e):Vu(e)}function ba(e){wa(e.left),In(e.right)}function Vu(e){if(It(e)){In(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&ba(t.query);wa(e.query)}function In(e){if(sR(e),pe(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(Sa(n).length===0){Bt(e);return}if(aR(e)){Bt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function aR(e){return e.where!==null&&ue(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function sR(e){Ti(e,t=>{if(!St(t))return;if(!Si(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Ii(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Ii(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function lR(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function Si(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Si(e.left,t)||Si(e.right,t);case"NOT":case"GROUP":return Si(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Ti(e,t){if(Array.isArray(e)){for(let r of e)Ti(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&uR(r)||Ti(r,t)}function Ii(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Ii(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Ii(i,t)}function uR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Wu=Symbol("ksql.groupingRowMeta"),Hu=new WeakMap;function Yu(e,t){return Object.defineProperty(e,Wu,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function cR(e){return e[Wu]}function pR(e){return cR(e)?.includedCanonicalIds}function ju(e,t){Hu.set(e,t)}function wn(e,t){let n=pR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Hu.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var zu=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Pi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Na(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 De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function Ni(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ni(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){De(n.arg,t);return}Object.values(n).forEach(r=>Ni(r,t))}}function ar(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>ar(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(Na(n.field));return}Object.values(n).forEach(i=>ar(i,t))}}function sr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(sr);let t=e;return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(sr)}function dR(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"?sr(e):!1}function fR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function qu(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function ER(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Pi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Pi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ju(e,r.canonicalId)}function Pa(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Pi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function RR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Na(e.name)];let t=[];return ar(e,t),t}function Ca(e){let t=ne(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),Ni(e.columns,r),Ni(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&De(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function Ju(e,t,n=()=>{}){Ca(e);let r=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&De(p,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=pu(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${Pi(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let p of i)ER(p,t,a);let l=fR(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(Na(p.field)):ar(p,c);for(let u of c)Pa(u,t,a,"SELECT")}if(e.having){let p=[];ar(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||qu(c)||Pa(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of RR(p.key))c.tableAlias===null&&l.has(c.field)||qu(c)||Pa(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!dR(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Ci=16,Xu=64,Z=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function lr(e,t,n){if(Array.isArray(e)){for(let r of e)lr(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))lr(a,t,n)}}function Oa(e,t){if(Array.isArray(e)){for(let n of e)Oa(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Oa(i,t)}}function La(e){if(Array.isArray(e)){for(let t of e)La(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Ca(e);for(let n of Object.values(t))La(n)}}function _a(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{La(c)}catch(f){throw f instanceof Error?new Z(f.message,u):f}try{mn("phase15b",c),$e(c)}catch(f){throw f instanceof oe?new Z(f.message,u):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Z(f.message,u):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let u=c==="SET_VARIABLE"?"SET":"DECLARE";throw new Z(`ArgumentError: ${u} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let u=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Z(`ArgumentError: ${u} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,u)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let L=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Z(L,u)}let E=fi(c),R=[],y=[],m=new Set,h=new Set,g=new Set,S=[];Oa(c,S);let P=new Set;for(let L of S){let I=o.get(L.name);if(I===void 0)throw new Z(`ParseError: variable @${L.name} is not defined before statement ${u+1}.`,u);if(I.kind==="scalar"&&L.kind==="array-in-list")throw new Z(`ParseError: scalar variable @${L.name} cannot be used as IN @${L.name}; use IN (@${L.name}) instead.`,u);if(I.kind==="array"&&L.kind!=="array-in-list")throw new Z(`ParseError: array variable @${L.name} can only be used as IN @${L.name}.`,u);P.has(L.name)||(I.referencedBy.push(u),P.add(L.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new Z(`ParseError: variable @${c.name} is already defined.`,u);if(o.set(c.name,{index:u,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>Xu)throw new Z(`ParseError: batch exceeds ${Xu} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?lr(c.query,m,h):c.type==="DROP_TEMP_TABLE"||lr(c,m,h);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let L=new Set,I=new Set;lr(c.select,L,I),b=L.size>0&&I.size===0}for(let L of m){let I=t.get(L);if(I===void 0)throw new Z(`ParseError: temp table ${L} is not defined in this batch.`,u);g.add(I)}if(f){let L=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(w=>w.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(w=>w.field)]:"fields"in c?c.fields:[],I=JSON.stringify(L),v=t.get(f);if(v===void 0){if(t.set(f,u),n.set(f,I),r.push(f),R.push(f),t.size>Ci)throw new Z(`ParseError: batch exceeds ${Ci} temp tables.`,u)}else{if(n.get(f)!==I)throw new Z(`ParseError: validation error table ${f} has a different payload schema.`,u);g.add(v)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new Z(`ParseError: temp table ${c.name} is already defined.`,u);if(t.set(c.name,u),r.push(c.name),R.push(c.name),t.size>Ci)throw new Z(`ParseError: batch exceeds ${Ci} temp tables.`,u)}if(c.type==="DROP_TEMP_TABLE"){let L=t.get(c.name);if(L===void 0)throw new Z(`ParseError: temp table ${c.name} is not defined in this batch.`,u);g.add(L),y.push(c.name),t.delete(c.name)}i.push({index:u,statementType:E,isDml:ca(c),isReadOnly:dn(c),hasWhere:Ru(c),insertValuesCount:mu(c),appIds:[...h].sort((L,I)=>L-I),tempTablesCreated:R,tempTablesReferenced:[...m],tempTablesDropped:y,dependsOn:[...g].sort((L,I)=>L-I),tempOnlySource:b,targetAppId:kt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:fu(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Oi=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var ye=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Pt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Da(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ye(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ye("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ye("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!bn(this.input[this.pos]))throw new ye("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&Qu(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Oi.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!Da(n))throw new ye("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Qu(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ye(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ye("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ye("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
2
2
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
3
- `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new he("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function _a(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||cR(t)}function Ju(e){let t=e.codePointAt(0);return _a(e)||t>=48&&t<=57}function wn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function cR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Qu=20,Da=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),ec=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),va=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),hT=Object.freeze(Object.values(va).filter(e=>e!==void 0)),pR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),dR=new Set(pR);function fR(e){return dR.has(e)}var tc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Oi=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function Zu(e){return Oi[e]!==void 0}var ER=Object.freeze([...fi]),RR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),mR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function yR(e){return RR.has(e)}function hR(e){return mR.has(e)}function gR(e){return Number.isInteger(e)&&e>=1&&e<=31}var gT=Object.freeze(Array.from(new Set([...Object.keys(Da),...ec,...Object.keys(va),...Object.keys(tc),...Object.keys(Oi),...ER,"IF"]))),AR=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function SR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!AR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>Qu)throw new T(`batch exceeds ${Qu} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Oi[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let P=this.parseIdentifier();if(s.has(P))throw new T(`IMPORT target ${P} is declared more than once.`,this.prev());if(s.add(P),this.peek().kind==="("){this.advance();let O=this.parseIdentList();if(this.expect(")"),new Set(O).size!==O.length)throw new T(`IMPORT subtable ${P} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let D of["ID","SOURCE"]){if(!this.isSoftKeyword(D))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:P,children:O,...I?{rowIdSourceHeader:I}:{}})}else a.push(P),o.push({kind:"FIELD",field:P});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),u,c=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let P=this.parseIdentifier().toUpperCase();if(P!=="UTF8"&&P!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());u=P==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==qe||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(P=>P.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let P of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(P))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let g=o.filter(P=>P.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(P=>P.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let P=new Set(h);for(let O of g){if(!O.rowIdSourceHeader)throw new T(`CSV subtable ${O.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!P.has(O.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${O.subtableCode}.`,this.prev())}for(let O of P)if(!g.some(I=>I.subtableCode===O))throw new T(`REPLACE SUBTABLES target ${O} is not declared in INTO.`,this.prev())}}else if(h)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),b=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:u,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...h?{replaceSubtables:h}:{},...m?{keyFields:m}:{},...S,...b}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:p})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let u={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(u,t),u}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&SR(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:qe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,u=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(u=this.parseWhereExpr("HAVING"))}let c="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||d!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:u,orderMode:c,orderBy:p,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return tc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?me(`-${W(n)}`):{type:"AGG_ARITH",left:me("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return me(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return me(`${n.kind==="-"?"-":"+"}${W(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:me("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),me(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return me(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?me(`-${W(n)}`):{type:"ARITH",left:me("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),me(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Da[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Da[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(ec.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=TR(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return va[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!fR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&X(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!yR(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!hR(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!gR(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Zu(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Oi[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(me(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(me(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=su(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:u,...c,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let u=this.parseInsertRow(i.length);this.expect(")"),o.push(u)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:p,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...u}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(me(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(me(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(u.validateOnly||u.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...u}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...u}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...u}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((u,c)=>{let p=this.matchUpdateFromJoin(u,n,r);p!==null&&a.push({index:c,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let u=0;u<o.length;u++){if(u!==s.index&&this.nodeContainsQualifiedField(o[u],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(u!==s.index&&this.nodeContainsForeignQualifier(o[u],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((u,c)=>c!==s.index).reduce((u,c)=>u===null?c:{type:"LOGICAL",op:"AND",left:u,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(Zu(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||Ci.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function TR(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function lt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}var IR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),wR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Q(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":wR.has(e.fieldType)?t="option":IR.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function bn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Li(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function bR(e,t){return e<t?-1:e>t?1:0}function nc(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function PR(e,t){let n=nc(e),r=nc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?ui(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function rc(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function NR(e,t,n){let r=rc(e,n),i=rc(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function CR(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function ic(e,t){let n=t.optionOrder??new Map,i=[...new Set(CR(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(oc),i}function oc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function OR(e,t,n){let r=ic(e,n),i=ic(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=oc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return PR(e,t);case"recordNumber":return NR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return OR(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function ac(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?ui(s,l):bR(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function se(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(le(e,t));let n=se(e.left,t),r=se(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function fe(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return le(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return le({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(fe(e.left,t,n,r)),o=Number(fe(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return cc(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return fe(e,t,n,r)}}function _i(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function LR(e){return e>=55296&&e<=56319}function _R(e){return e>=56320&&e<=57343}function vi(e,t){return t>0&&t<e.length&&LR(e.charCodeAt(t-1))&&_R(e.charCodeAt(t))}function sc(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function ka(e,t){let n=Math.min(Math.max(0,t),e.length);return vi(e,n)&&(n-=1),e.slice(0,n)}function DR(e,t){let n=Math.max(0,e.length-t);return vi(e,n)&&(n+=1),e.slice(n)}function vR(e,t,n){let r=sc(t,e.length),i=sc(n,e.length);return i<=r?"":(vi(e,r)&&(r+=1),vi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function UR(e,t){let n=e.repeat(Math.ceil(t/e.length));return ka(n,t)}var kR=200,ur=new Map;function MR(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function Ua(e,t,n=!1){let r=MR(t)+(n?"g":""),i=`${e}\0${r}`,o=ur.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(ur.size>=kR){let s=ur.keys().next().value;s!==void 0&&ur.delete(s)}return ur.set(i,a),a}function FR(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function xR(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function KR(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let u=Number(s+l);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function BR(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),u=a.slice(0,d);return KR(n,o,u,l?s:void 0)})}function le(e,t,n,r){let i=e.args.map(o=>qR(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ge("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return vR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ge("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ka(o,a)}case"RIGHT":{ge("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":DR(o,a)}case"INSTR":return ge("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ge(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return ka(o,a);let s=i[2]??" ";if(s==="")return o;let l=UR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ge(e.func,i,2),ac(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ge("REGEXP_LIKE",i,2,3),Ua(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ge("REGEXP_REPLACE",i,3,5),FR(i[2]);let o=xR(i[4]),a=Ua(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):BR(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ge("REGEXP_SUBSTR",i,2,3),Ua(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ge("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return _i("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return _i("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return _i("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ge("TRUNCATE",i,1,2),_i("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return YR(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ge(e.func,i,1,1),Di(i[0])?String(Ma(i[0])+1):"";case"QUARTER":return ge(e.func,i,1,1),Di(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ge(e.func,i,1,1),Di(i[0])?String(uc(i[0])):"";case"DATE_FORMAT":return GR(i[0]??"",i[1]??"");case"DATEDIFF":return VR(i[0]??"",i[1]??"");case"DATE_ADD":return WR(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ge("LAST_DAY",i,1,1),HR(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ge(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function cr(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function Ui(e){let t=new Date(0);return t.setUTCHours(0,0,0,0),t.setUTCFullYear(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),t}function Di(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ui(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function Ma(e){return Ui(e).getUTCDay()}function lc(e){let t=Ui(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function $R(e){return lc(e).getUTCFullYear()}function uc(e){let t=lc(e),n=t.getUTCFullYear(),r=Ui(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function GR(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=cr(e),l=Di(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Ma(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Ma(e)]:"";case"%v":return l?String(uc(e)).padStart(2,"0"):"";case"%G":return l?String($R(e)).padStart(4,"0"):"";default:return d}})}function VR(e,t){if(e.length<10||t.length<10)return"0";let n=cr(e),r=cr(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function WR(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=cr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function HR(e){if(!e||e.length<10)return e;let{y:t,mo:n}=cr(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function YR(e,t){if(/^-?\d+$/.test(t.trim()))return jR(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,u=i.toFixed(d),[c,p=""]=u.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=p?`${f}.${p}`:f;return n?E+"%":E}function jR(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function qR(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?W(e):String(fe(e,t,n,r))}function ut(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ne(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return zR(e,t,n,r,i);case"NULL_CHECK":return tm(e,t);case"LOGICAL":return nm(e,t,n,r,i);case"NOT":return!ne(e.expr,t,n,r,i);case"GROUP":return ne(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function zR(e,t,n,r,i){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let o=hc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=XR(e.left,a,i);return JR(e.op,o,e.right,t,a,n,s,i)}function JR(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(em(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?W(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=ZR(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=Fa(n,r,o);return yc(t,d)}if(e==="NOT_LIKE"){let d=Fa(n,r,o);return!yc(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=Fa(n,r,o,s);return Gt(e,t,l,a)}var pc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function XR(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?Q({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(pc.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(pc.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var dc=new Set(["CHECK_BOX","MULTI_SELECT"]),fc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),QR=new Set(["CREATOR","MODIFIER"]);function ZR(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Gt("=",e,a,o))}let i;if(dc.has(n)||fc.has(n)||QR.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return dc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):fc.has(n)?!Array.isArray(i)||!i.every(Ec)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Ec(i)?t.has(i.code):r()}function Ec(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function em(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${at}`)}function tm(e,t){let n=hc(e.field,t);return e.not?n!=="":n===""}function nm(e,t,n,r,i){return e.op==="AND"?ne(e.left,t,n,r,i)&&ne(e.right,t,n,r,i):ne(e.left,t,n,r,i)||ne(e.right,t,n,r,i)}function hc(e,t,n,r){if(e.type==="FUNC_FIELD")return le(e.expr,t);if(e.type==="ARITH_FIELD")return String(se(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return In(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function Fa(e,t,n,r){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return W(e);case"KINTONE_FUNC":return rm(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?le(e.expr,t):String(se(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return mc(i.result,t,n,r);return e.elseResult!==null?mc(e.elseResult,t,n,r):""}function cc(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return Rc(i.result,t,n,r);return e.elseResult===null?null:Rc(e.elseResult,t,n,r)}function Rc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?se(e,t):Ot(e,t,n,r)}function mc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(se(e,t)):String(fe(e,t,n,r))}function gc(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":return""}}function rm(e){throw X(e)?new Error(`${e}: ${Ft}`):dn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ki=new Map,im=200;function yc(e,t){if(!Su(t))return e.includes(t);let n=ki.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),ki.size>=im&&ki.clear(),ki.set(t,n)}return n.test(e)}function Pn(e){return Sc(e)}function Ac(e){return Sc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Sc(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw Ee("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw Ee("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function Ee(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Mi(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ne(a.condition,t,n))continue;let s=fe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ka(e){if(At(e))throw new Z("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var om=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),am=new Set(["CHECK_BOX","MULTI_SELECT"]);function xi(e,t=new Map){let n=e.values.map(r=>sm(e.fields,r,t));return Er(n,100).map(r=>({app:e.appId,records:r}))}function sm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function dr(e){Ka(e.where);let t=Uc(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function fr(e,t,n=new Map){let r=lm(e.assignments,n);return Er(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function lm(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:ct(i,t.get(r))});return n}function bc(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE")}function Ki(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE"||t.value.type==="STRING_FUNC")}function Ba(e){Ka(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Pc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Nn(n,t):n.type==="STRING_FUNC"?$a(n,t):n.type==="CASE_VALUE"&&Nc(n.expr,t);return Uc(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Pc(e,t){pr(e.left,t),pr(e.right,t)}function pr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Pc(e,t):e.type==="STRING_FUNC"&&$a(e,t)}function $a(e,t){for(let n of e.args)um(n,t)}function um(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){xa(e,t);return}Nn(e,t)}function Nn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){$a(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Nn(e.left,t),Nn(e.right,t);return}e.type==="CASE_WHEN"&&Nc(e,t)}function xa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&cm(e.arg,t);return}e.type==="AGG_ARITH"&&(xa(e.left,t),xa(e.right,t))}function cm(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?pr(e,t):Nn(e,t)}function Tc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){pr(e,t);return}Nn(e,t)}}function Nc(e,t){for(let n of e.branches)Fi(n.condition,t),Tc(n.result,t);e.elseResult!==null&&Tc(e.elseResult,t)}function Fi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&pr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Fi(e.left,t),Fi(e.right,t);break;case"NOT":case"GROUP":Fi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Ga(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Cc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:Va(d,a,n.get(l),i)};return{id:o,record:s}});return Er(r,100).map(i=>({app:e.appId,records:i}))}function Va(e,t,n,r){if(e.type==="ARITH")return String(r?Ha(e,r):se(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(fe(e,t));if(e.type==="STRING_FUNC")return le(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Z("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function Bi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return W(e);if(e.type==="ARITH")return String(se(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var pm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Wa(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Z("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Cc(i),l={};for(let{field:d,value:u}of e.assignments){let c=n.get(d);if(u.type==="SOURCE_FIELD"){if(pm.has(c??""))throw new Z(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,u.field))throw new Z(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let p=o[u.field];if(typeof p!="string")throw new Z(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&p!==""&&!Number.isFinite(Number(p)))throw new Z(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${p}`);l[d]={value:ct({type:"STRING",value:p},c)}}else{if(u.type==="STRING_FUNC")throw new Z("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?l[d]={value:String(Ha(u,i))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?l[d]={value:String(fe(u,s))}:u.type==="CASE_VALUE"?l[d]={value:Lt(u.expr,s,c)}:l[d]={value:ct(u,c)}}}return{id:a,record:l}});return Er(r,100).map(i=>({app:e.appId,records:i}))}function Cc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Ha(e,t){let n=Ic(e.left,t),r=Ic(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Z("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Z("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Ic(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Ha(e,t);if(e.type==="STRING_FUNC")throw new Z("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new Z(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function Oc(e){return Ka(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function Lc(e,t){return Er(t,100).map(n=>({app:e,ids:n}))}function _c(e){return om.has(e??"")}function dm(e){return am.has(e??"")}function fm(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function Em(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Dc(e,t){return _c(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):dm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?fm(e):t==="DATE"?Em(e):e}function vc(e,t){return _c(t)?e.map(n=>({code:n})):e}function wc(e,t,n){return e.type==="ARRAY"?vc(e.elements.map(r=>r.value),n):e.type==="STRING"?Dc(e.value,n):e.type==="STRING_FUNC"?le(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(se(e,t)):String(fe(e,t))}function Uc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Pn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(ne(r.condition,t))return wc(r.result,t,n);return e.elseResult!==null?wc(e.elseResult,t,n):""}function ct(e,t){let n=Ya(e,t);if(!n.ok)throw new Z(n.message);return n.value}function Ya(e,t){try{return{ok:!0,value:Rm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Rm(e,t){switch(e.type){case"VARIABLE":throw new Z(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Z(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Dc(e.value,t);case"NUMBER":return W(e);case"ARRAY":return vc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Z(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Z("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Z("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new Z("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new Z("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Z("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Er(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Z=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ja=new Set(["CHECK_BOX","MULTI_SELECT"]),mm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Rr(e){throw new Error(`ArgumentError: ${e}`)}function kc(e,t,n){let r=ym(n.fieldType,e.field),i=hm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let h=y.value;h!==""&&(y.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let y of s)l.has(y)&&Rr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),u=a.filter(y=>!o.has(y)),c=[...d,...u],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let h=y.kind==="ADD"?f:E,g=!h.has(y.value);return h.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&g&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=ja.has(r)?c:c.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:u.length,removedValues:p,changedValues:u.length+p}}function ym(e,t){return ja.has(e)||mm.has(e)?e:Rr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function hm(e,t,n){if(!Array.isArray(e))return Rr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ja.has(t)?typeof i!="string"?Rr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Rr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function H(e){throw new Error(`ArgumentError: ${e}`)}function Ja(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?H("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return H("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)qa(s.field,null,r),gm(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&H(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&H(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?H(`APPLY target ${s.field} is not a SUBTABLE.`):H(`APPLY target ${s.field} does not exist as a top-level field.`);if(hu(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&H(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,u=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,u);for(let c of s.operations)if(c.kind==="PATCH"){for(let p of c.assignments)qa(p.field,s.field,r,u),za(p.value,s.field,r,u);c.selector.kind==="WHERE"&&za(c.selector.where,s.field,r,u)}else if(c.kind==="APPEND"){let p=new Set;for(let f of c.fields)p.has(f)&&H(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),qa(f,s.field,r,u)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&za(c.selector.where,s.field,r,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function gm(e,t){mr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&H(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&H(`APPLY parent FILE reference ${n} is not supported.`)})}function qa(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&H(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&H(`APPLY child ${e} does not belong to subtable ${t}.`),H(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&H(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function za(e,t,n,r){mr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&H(`APPLY child reference ${i} does not belong to subtable ${t}.`),H(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function $i(e,t){let n=pt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)mr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Gi(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=$c(i?.value);return n}function Fc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=Za(n.$id?.value,"APPLY snapshot $id"),a=Ja(t);return o!==a&&H(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Kc(t,n,i,o)}function xc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=Za(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&H(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Kc(e,o,r,a)})}function Kc(e,t,n,r){let i=Za(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let w=n.targetMultiValueFields.get(u.field);w||H(`APPLY multi-value metadata for ${u.field} is missing.`),a.push(kc(u,t[u.field]?.value,w));continue}let c=n.childrenByTable.get(u.field),p=bm(t,u.field),f=new Set;for(let w of p)w.id||H(`APPLY snapshot for ${u.field} contains a row without _rid.`),f.has(w.id)&&H(`APPLY snapshot for ${u.field} contains duplicate _rid ${w.id}.`),f.add(w.id);let E=w=>w.field==="_rid"?"SINGLE_LINE_TEXT":w.field==="_idx"?"NUMBER":c.get(w.field)?.fieldType,R=[],m=[],y=[],h=new Set,g=new Set,S=new Set,b=u.operations.some(w=>w.kind==="REMOVE");for(let[w,_]of u.operations.entries()){if(_.kind==="APPEND"){let L=Xa(_,c,u.field);y.push({kind:"APPEND",addedRows:L.length}),m.push(...L);continue}if(_.kind==="REMOVE"){let L=Tm(_,p,E,u.field);_.expectRows&&Mc(_.expectRows,L.length,r,u.field,w,_.kind),y.push({kind:"REMOVE",removedRows:L.length});for(let v of L){let A=p[v].id;g.has(v)&&H(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(v)&&H(`APPLY removes row ${A} more than once.`),S.add(v)}continue}if(_.kind!=="PATCH")continue;let k=Sm(_,p,E,u.field);_.expectRows&&Mc(_.expectRows,k.length,r,u.field,w,_.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let L of k){let v=p[L];S.has(L)&&H(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),g.add(L);let A=Gi(v,L);for(let C of _.assignments){let F=`${v.id}\0${C.field}`;h.has(F)&&H(`APPLY patches cell ${v.id}.${C.field} more than once.`),h.add(F),R.push({rowIndex:L,field:C.field,value:Bi(C.value,A,E)})}}}let P=new Map;for(let w of R){let _=P.get(w.rowIndex)??{};_[w.field]={value:w.value},P.set(w.rowIndex,_)}let I=[...p.flatMap((w,_)=>S.has(_)?[]:[{id:w.id,value:{...w.value,...P.get(_)??{}}}]),...m],D={table:u.field,operations:y,changedSubtableRows:P.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:p.map(w=>w.id),postImageRows:I};b?o.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:p.flatMap((w,_)=>S.has(_)?[w.id]:[]),payloadRows:I.map(w=>({...w.id===void 0?{}:{id:w.id},value:w.value}))}):o.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...p.map((w,_)=>{let k=P.get(_);return k?{id:w.id,value:k}:{id:w.id}}),...m.map(w=>({value:w.value}))]})}let s=Pm(t),l={};for(let u of e.assignments){let c=n.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:Va(u.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let u of o)d[u.table]={value:u.postImageRows};for(let u of a)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((u,c)=>u+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function Mc(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;H(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Vi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return H(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let u=a[d];return u?.value?l.id===void 0?{value:u.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,u.value[c]]))}:H(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:H(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function Xa(e,t,n){return e.values.map(r=>({value:Am(e,r,t,n)}))}function Am(e,t,n,r){if(t.length!==e.fields.length)return H(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?Qa(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function Qa(e){return e.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(e.fieldType)?[]:""}function Sm(e,t,n,r){return Bc(e.selector,t,n,r)}function Tm(e,t,n,r){return Bc(e.selector,t,n,r)}function Bc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>ne(i,Gi(l,d),n)?[d]:[]),a=Im(i);a!==null&&o.length===0&&H(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=wm(i);return s!==null&&o.length===0&&H(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Im(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_rid"?null:e.right.type==="STRING"?e.right.value:e.right.type==="NUMBER"?e.right.raw??String(e.right.value):null}function wm(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_idx"||e.right.type!=="NUMBER"?null:Number.isSafeInteger(e.right.value)&&e.right.value>=0?e.right.value:null}function bm(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):H(`APPLY snapshot field ${t} is not a subtable value.`)}function Za(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&H(`${t} must be a positive integer.`),n}function Pm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=$c(r?.value);return t}function $c(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 mr(e,t){if(Array.isArray(e)){e.forEach(r=>mr(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))mr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Hi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function yr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),Nm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Gc(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function Nm(e){let t=es(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(u=>u.id===void 0?[]:[u.id]);for(let u of e.payloadRows)u.id===void 0&&u.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(es(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let u=e.payloadRows.slice(0,t.length).map(p=>p.id??"");Wi(t,u,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(p=>p.id??"");Wi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(u=>u.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=es(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(u=>u.id===void 0?[]:[u.id]),o=new Set(r),a=new Set(i);for(let u of r)a.has(u)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${u}.`);let s=t.filter(u=>!o.has(u));Wi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(u=>u.id??"");Wi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(u=>u.id!==void 0)||e.postImageRows.slice(i.length).some(u=>u.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(u=>u.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((u,c)=>!ts(u.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(u=>!d.has(u)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function es(e,t){let n=[...e],r=new Set;for(let i of n)i||re(`APPLY ${t} contains an empty row id.`),r.has(i)&&re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Wi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function ts(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((a,s)=>ts(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&ts(n[a],r[a]))}function Vc(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function Wc(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Vc(t.digits,"digits",1,30),r=Vc(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function Hc(e){return e.sign===0?{integerDigits:0,fractionDigits:0}:{integerDigits:Math.max(e.coefficient.length-e.scale,0),fractionDigits:Math.max(e.scale,0)}}var Cm=new Set(["CHECK_BOX","MULTI_SELECT"]),Om=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Pe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Lm(e);if(i!==""&&!_m(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=hr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:Dm(t.fieldType),message:o}}if(t.required&&Yi(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Yi(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&ci(i,t.minValue)<0)return{ok:!1,code:"ERR_RANGE_MIN",message:`${t.code} \u306F ${t.minValue} \u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.maxValue!=null&&ci(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=Hc(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!Yi(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!Yi(r)&&Om.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function Lm(e){return e==null?"":ji(e)&&e.type==="NUMBER"?W(e):ji(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function _m(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function hr(e,t){if(ji(e)){let r=Ya(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if(Cm.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function ji(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(ji(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Yi(e){return e===""||Array.isArray(e)&&e.length===0}function Dm(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var Cn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ns(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(u=>typeof u=="object"&&u!==null&&"code"in u),d=a;try{d=hr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function rs(e,t,n,r,i,o,a,s=[],l=!0,d=!0,u={}){let c=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,E=[];u.validateUpdateBuiltIns===!1&&ns(e,r,i);let R;for(let m of e){m.record??(m.record={});let y=d?[...m.preErrors]:[],h=[],g=[],S=m.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let I of r){if(!m.payload.has(I))continue;let D=m.payload.get(I),w=c.get(I).fieldType,_=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(w)&&Array.isArray(D)&&D.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!S)continue;let k=Pe(D,c.get(I),a);k.ok?m.record[I]={value:_?D:k.value}:h.push({field:I,code:k.code,message:k.message})}if(l&&m.mode==="create")for(let I of i){if(I.inSubtable||m.payload.has(I.code))continue;if(Wt(I.defaultValue)){let w=Pe("",I,a);w.ok?I.required&&h.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:I.code,code:w.code,message:w.message})}else{let w=Pe(I.defaultValue,I,a);w.ok||h.push({field:I.code,code:w.code,message:`\u65E2\u5B9A\u5024: ${w.message}`})}}if(s.length>0){let I=m.evaluationRow??Object.fromEntries([...m.payload].map(([_,k])=>[_,ze(k)])),D=m.evaluationFieldTypes,w=_=>{let k=_.tableAlias?`${_.tableAlias}.${_.field}`:_.field;return D?.get(k)??D?.get(_.field)};try{for(let _ of Mi(s,I,w))g.push({field:"",code:"ERR_CHECK",message:_.message})}catch(_){R??(R=_)}}let b=I=>I.map(D=>{let w={};for(let _ of n)w[_]=ze(m.payload.get(_));return w.$err_statement=String(o),w.$err_operation=t,w.$err_row=String(m.rowNumber),w.$err_field=D.field,w.$err_code=D.code,w.$err_message=D.message,w.$err_value="",w.$err_subtable="",w.$err_subrow="",w.$err_subrow_id="",w}),P={rowNumber:m.rowNumber,preErrors:b(y),builtInErrors:b(h),checkErrors:b(g)};E.push(P);let O=[...P.preErrors,...P.builtInErrors,...P.checkErrors];O.length>0&&f.add(m.rowNumber),p.push(...O)}if(R!==void 0)throw R;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function ze(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var is=["required","length","range","choice"];function os(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function as(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function vm(e){return os(e).length>0}function Um(e){return e.fieldType==="NUMBER"||vm(e)}function qi(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ss(e,t){let{topByCode:n,childrenByTable:r}=as(t),i=Um;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let u=d?`${d}\0${l.code}`:l.code;if(a.has(u))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(u),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=c.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let u=n.get(d);if(u?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(p=>s(p,d));continue}if(u){s(u);continue}throw[...r.values()].some(c=>c.some(p=>p.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function gr(e,t){return Wt(e)?"":ze(hr(e,t))}var km=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Ar=Cn;function Je(e,t=["$id"]){let n=as(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!km.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Ht(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Yt(e,t,n,r,i=1,o="UPDATE"){let a=Mm(e),s=[],l=new Set,d=[...t.payloadFields,...Ar],u=ze(e.$id?.value),c=(p,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?u:ze(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=gr(f,p.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,E=Pe(f,p,n);E.ok?a[p.code]={value:Yc(f,p.fieldType,E.value)}:c(p,f,E)}for(let[p,f]of t.subtables){let E=e[p]?.value;if(!Array.isArray(E))continue;let R=a[p]?.value;for(let m=0;m<E.length;m++){let y=E[m],h=R[m];for(let g of f){let S=y.value?.[g.code]?.value,b=Pe(S,g,n);b.ok?(h.value??(h.value={}),h.value[g.code]={value:Yc(S,g.fieldType,b.value)}):c(g,S,b,qi(p,m,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Yc(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function Mm(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function zi(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;jc(o,"dmlMaxRows"),jc(a,"dmlMaxSubtableRows");for(let g of n)Hi(g);let l=xc(t,n,r,i),d=Je(r,t.assignments.map(g=>g.field)),u=l.some(g=>Ht(g.postImage,d));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=u?await e.loadNumberPrecision():void 0,p=l.map((g,S)=>Yt(g.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=p.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((g,S)=>Vi(g,p[S].normalizedRecord)),y=m.flatMap(g=>yr(g).records),h=p.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return qc({plans:m,records:y,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function jc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function qc(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))qc(n,t);return Object.freeze(e)}var ls=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ji(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)zc(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let u of l.fields){if(d.has(u))return Xe(`APPLY APPEND specifies child ${u} more than once.`);d.add(u),zc(u,o.field,n,s)}for(let u of l.values)if(u.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${u.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function Fm(e,t,n=Ji(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=xi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(u=>Xa(u,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||ls.has(c.fieldType)||(d[c.code]=s[c.code]??{value:Qa(c)});let u={...s};for(let c of a){let p=c.rows.map(f=>({value:f.value}));d[c.table]={value:p},u[c.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:u}})}async function Sr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Jc(r,"dmlMaxRows"),Jc(i,"dmlMaxSubtableRows");let a=e.metadata??Ji(t,n),s=Fm(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!ls.has(S.fieldType)),d=Je(l,t.fields),u=s.some(S=>Ht(S.postImage,d));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=u?await e.loadNumberPrecision():void 0,p=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=p.flatMap(b=>b.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,b)=>S+b.tables.reduce((P,O)=>P+O.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,b)=>{let P=p[b].normalizedRecord,O={};for(let I of t.fields)O[I]=P[I];for(let I of S.tables){let D=P[I.table]?.value;O[I.table]={value:I.rows.map((w,_)=>({value:Object.fromEntries(Object.keys(w.value).map(k=>[k,D[_]?.value?.[k]??w.value[k]]))}))}}return{...S,postImage:P,record:O}}),y=m.map(S=>S.record),h=[];for(let S=0;S<y.length;S+=100)h.push({app:t.appId,records:y.slice(S,S+100)});let g=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Xc({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function zc(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||ls.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Jc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function Xc(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Xc(n,t);return Object.freeze(e)}async function Zc(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Qc(i,"dmlMaxRows"),Qc(o,"dmlMaxSubtableRows"),Gm(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=xm(t,s.map(y=>y.sourceRowIndex)),u=await Sr({statement:d,fieldInfos:r,metadata:Ji(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],p=new Set;for(let y of l){let h=y.targetId;p.has(h)&&us(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),p.add(h),y.snapshot||us(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(y.snapshot.$id?.value);g!==h&&us(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=Km(t,y.sourceRowIndex,h),b=S.applyBlocks?.length?pt(S,r):Bm(r);c.push(await zi({statement:S,snapshots:[y.snapshot],fieldInfos:r,metadata:b,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=$m(c,i,o),E=u.guards.parentRows+f.guards.parentRows,R=u.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...u.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return cs({create:u,update:f,createBatches:u.batches,updateBatches:Vm(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:u.guards,update:f.guards}})}function xm(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Km(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function Bm(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function $m(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return cs({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function Gm(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function Vm(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function Qc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function us(e){throw new Error(`ArgumentError: ${e}`)}function cs(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))cs(n,t);return Object.freeze(e)}function Ir(e){return On("UPDATE",[np(e)])}function ps(e){return On("INSERT",[tp(e)])}function ds(e){return On("UPSERT",[tp(e.create),np(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Qi(e,t,n){return e.type==="UPDATE"?On("UPDATE",[Xi("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?On("INSERT",[Xi("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):On("UPSERT",[Xi("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Xi("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function On(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function tp(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function np(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:ep(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:ep(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function ep(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:Tr(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Tr(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Tr(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Tr(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Tr(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Tr(e,t){return e==null||t===null?null:e+t}function Xi(e,t,n,r,i,o){let a=t.map(u=>{let c=u.operations.map(f=>Wm(f,n)),p=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:u.targetKind,field:u.field,operations:c,changedCount:p}}),s=a.filter(u=>u.targetKind==="SUBTABLE"),l=s.every(u=>u.changedCount!==null)?s.reduce((u,c)=>u+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function Wm(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var Qe=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function rp(e,t,n){mn("phase10c");let r=Gc(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function ip(e,t,n){mn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function op(e,t,n){mn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let u=await t.postRecords({app:d.app,records:[...d.records]});r.push(u.ids)}catch(u){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},u)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(u){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},u)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var Hm=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Ym(e){if(!Hm.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function jm(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Ym(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function fs(e,t){let n=jm(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function qm(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function Es(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return qm(i)?!0:Object.values(i).some(n)};return n(e)}function ap(e,t){let n=ie(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return Zi(e.left);case"NULL_CHECK":return Zi(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Zi(e){if(Array.isArray(e))return e.some(Zi);if(e===null||typeof e!="object")return!1;let t=e;return t.type==="FIELD"?t.field!=="$id":t.type==="SELECT"?!1:Object.values(t).some(Zi)}async function Ge(e,t,n,r,i){let o=await Ie(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function eo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:ou(i),metrics:o}}var ke=["=","!=",">","<",">=","<="],zm=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Jm=new Set(ke),Xm=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])]]),Qm=new Map([["TODAY",new Set(ke)],["NOW",new Set(ke)],["LOGINUSER",new Set(["in","not in"])]]),Zm=["=","!=","in","not in"],ey=new Map([["RECORD_NUMBER",new Set([...ke,"in","not in"])],["__ID__",new Set([...ke,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ke)],["UPDATED_TIME",new Set(ke)],["DATE",new Set(ke)],["TIME",new Set(ke)],["DATETIME",new Set(ke)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ke,"in","not in"])],["CALC",new Set([...ke,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Zm)]]),ty=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),up=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),cp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function ny(e){return ey.get(e)??new Set}function Ne(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:br(e,t)}function br(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return ry(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ms():ay(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ms();case"GROUP":return br(e.expr,t);case"NOT":{let n=br(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:dp(n.reasons)?Nr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=br(e.left,t),r=br(e.right,t);return ly(e.op,n,r)}}}function ry(e,t,n,r){if(n.type==="KINTONE_FUNC"&&X(n.name))return iy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&sp(n))return lp(e,t,n,r);if(n.type==="IN_LIST"){let u=n.values.filter(c=>c.type==="KINTONE_FUNC");if(u.length>0)return n.values.length===1&&u.length===1?lp(e,t,u[0],r):to("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",u[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Pr(e))}if(t.type!=="FIELD")return ms();let i=r(t);if(!i)return Ln("WHERE_FIELD_UNRESOLVED",t.field,void 0,Pr(e));let o=Pr(e);if(!pp(i.fieldType,o))return Ln("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!sy(i.fieldType,e))return Ln("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=ny(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||sp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function sp(e){return e.type==="KINTONE_FUNC"&&Mt.has(e.name)}function lp(e,t,n,r){let i=Pr(e),o=n.name;if(!Mt.has(o)||t.type!=="FIELD")return to("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Xm.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?to("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Qm.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:to("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function iy(e,t,n,r){let i=Pr(e),o=n.name;if(t.type!=="FIELD")return wr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?oy(n)?Jm.has(i)?!zm.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?wr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:wr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):wr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):wr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function oy(e){if(!("args"in e)||!e.args)return!1;switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args.kind==="NONE";case"FROM_TODAY":return e.args.kind==="FROM_TODAY"&&Number.isSafeInteger(e.args.offset)&&e.args.offsetText===String(e.args.offset===0?0:e.args.offset)&&(e.args.unit==="DAYS"||e.args.unit==="WEEKS"||e.args.unit==="MONTHS"||e.args.unit==="YEARS");case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args.kind==="WEEK"&&(e.args.weekday===null||e.args.weekday==="SUNDAY"||e.args.weekday==="MONDAY"||e.args.weekday==="TUESDAY"||e.args.weekday==="WEDNESDAY"||e.args.weekday==="THURSDAY"||e.args.weekday==="FRIDAY"||e.args.weekday==="SATURDAY");case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args.kind==="MONTH"&&(e.args.day===null||e.args.day==="LAST"||Number.isInteger(e.args.day)&&e.args.day>=1&&e.args.day<=31);default:return!1}}function ay(e,t,n){let r=n(e);return r?pp(r.fieldType,t)?!up.has(r.fieldType)&&!cp.has(r.fieldType)?Ln("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Ln("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Ln("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function pp(e,t){let n=ty.get(e);return n===void 0||n.has(t)}function sy(e,t){return up.has(e)?!0:cp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Pr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function ly(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Nr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Nr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Nr({capability:"LOCAL_ONLY",reasons:r})}function ms(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Ln(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function to(e,t,n,r,i){return Nr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function wr(e,t,n,r,i){return fp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function dp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&X(t.functionName))}function uy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Mt.has(t.functionName))}function fp(e){if(e.capability==="EXACT_PUSHDOWN"||!dp(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&X(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function cy(e){if(e.capability==="EXACT_PUSHDOWN"||!uy(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&Mt.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Nr(e){return cy(fp(e))}var py=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),dy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),fy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Dn(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?Rp(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):Rp(n[0],e.field)}function hs(e,t){if(e.left.type!=="FIELD")return Cr();let n=Dn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Cr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ne(e,a=>{let s=Dn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:Q({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Cr();let o=hy(e,n,r);return o==="unsafe"?Cr():Object.freeze({relation:o,owner:n})}function mp(e,t){let n=ce(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Dn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ne(e,o=>{let a=Dn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:Q({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function yp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:Ap(_n(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Ey(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(yy(e,t)),fetchQueriesByAlias:new Map,...o})}function hp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,vn(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=vn({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!qt(so(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function Un(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!qt(so(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||gp(my(e))!==e.allKlikes.length))}function Ey(e,t){if(e===null)return Ep(null);let n=Object.freeze([...ce(e)]);if(n.length===0)return Ep(e);let r=Ry(e,t,n);if(r!==null)return r;let i=io(e),o=[],a=new Set;for(let c of i){let p=mp(c,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,relation:"exact"},E;try{E=vn(f,t)}catch{continue}let R=so(E);qt(R,p.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=oo(e,a),l=Object.freeze(s===null?[]:[...ce(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),u=qt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:u,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function Ry(e,t,n){let r=no(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=vn(i,t)}catch{return null}if(!qt(so(o),n))return null;let a=new Set;if(jt(e,a),gp(o)!==a.size)return null;let s=Object.freeze(ro(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function no(e,t){switch(e.type){case"BINARY":{if(ce(e).length>0){let i=mp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=hs(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=no(e.left,t),r=no(e.right,t);return n!==null&&r!==null&&lo(n,r)?n:null}case"GROUP":case"NOT":return no(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function ro(e){switch(e.type){case"BINARY":return ce(e).length>0?[e]:[];case"LOGICAL":return[...ro(e.left),...ro(e.right)];case"GROUP":case"NOT":return ro(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ep(e){let t=e===null?[]:ce(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function io(e){switch(e.type){case"BINARY":return ce(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...io(e.left),...io(e.right)]:[];case"GROUP":return io(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function oo(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=oo(e.left,t),r=oo(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=oo(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function so(e){let t=[];for(let n of qn){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function qt(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function gp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function my(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function yy(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=Dn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ao(i.right)){n.add("CROSS_TABLE_BINARY");return}hs(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(wp(i)){n.add("KLIKE_OR");return}let o=_n(i.left,t),a=_n(i.right,t);if(o.length!==1||a.length!==1||!lo(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function vn(e,t){return Or(e.predicate,e,t),V(e.predicate)}function Or(e,t,n){switch(e.type){case"LOGICAL":Or(e.left,t,n),Or(e.right,t,n);return;case"GROUP":Or(e.expr,t,n);return;case"NOT":Or(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ao(e.right))throw ys(t,"predicate contains a non-target or RHS field reference");let r=Dn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw ys(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw ys(t,"predicate shape is outside the Phase A serializer contract")}}function ys(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function _n(e,t){switch(e.type){case"BINARY":{let n=hs(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=_n(e.left,t),r=_n(e.right,t);if(e.op==="AND")return Ap([...n,...r]);if(wp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return lo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Sp(i.relation,o.relation)}]:[]}case"GROUP":return _n(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ap(e){let t=[];for(let n of e){let r=t.findIndex(o=>lo(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:Sp(i.relation,n.relation)}}return t}function hy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return dy.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return gy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&Tp(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||fy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?Ip(e.right.value)?"superset":"unsafe":n==="TIME"?Ay(e.right.value)?"superset":"unsafe":Sy(e.right.value)?"superset":"unsafe";if(py.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function Rp(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Cr(){return Object.freeze({relation:"unsafe"})}function lo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Sp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function gy(e){return e.type==="NUMBER"&&Tp(e)&&e.value>0}function Tp(e){return/^-?\d+$/.test(W(e))&&Number.isSafeInteger(e.value)}function Ip(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Ay(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Sy(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Ip(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function wp(e){let t=new Set;return jt(e,t),t.size>0}function ao(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ao);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ao)}function gs(e,t){let n=or(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function Ty(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Iy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Lr(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=Ty(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!Iy(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var wy=new Set(["RECORD_NUMBER","SINGLE_LINE_TEXT","NUMBER","CALC","DATE","DATETIME","TIME","CREATED_TIME","UPDATED_TIME","DROP_DOWN","RADIO_BUTTON","STATUS","LINK","CREATOR","MODIFIER"]);function by(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,d=e.orderSemantics.get(l);if(!d){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(by(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}wy.has(d.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var uo=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},co=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},po=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function bp(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new po(a).message}}return{records:n,cleanupWarning:o}}function As(e){let t=[];e.where&&t.push(V(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var Pp=["$id","$revision","\u30EC\u30B3\u30FC\u30C9\u756A\u53F7","\u4F5C\u6210\u8005","\u4F5C\u6210\u65E5\u6642","\u66F4\u65B0\u8005","\u66F4\u65B0\u65E5\u6642","\u30B9\u30C6\u30FC\u30BF\u30B9","\u4F5C\u696D\u8005"];function Ss(e){return e.startsWith("_")||e.startsWith("$")}var Py=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Is(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Is);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?Py.test(t.field):Object.values(t).some(Is)}function Ny(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return sr(e)||Is(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Cy=["_pid","_rid","_idx"];function Ts(e){return[...new Set(e)]}function Oy(e){switch(e.kind){case"APP":return Ts([...e.fieldCodes,...Pp]);case"SUBTABLE":return Ts([...e.childFieldCodes,...Cy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ts(e.columns)}}function Np(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Oy(t(r,i))}))}function Ly(e){if(e.startsWith("_p."))return{qualifier:null,fieldCode:e};let t=e.indexOf(".");return t<=0||t===e.length-1?{qualifier:null,fieldCode:e}:{qualifier:e.slice(0,t),fieldCode:e.slice(t+1)}}function _y(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Dy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function vy(e,t,n){let r=Ly(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:_y(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Dy(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=Ny(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Cp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?vy(r.name,t,n):{kind:"EXPRESSION"})}}var Uy={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function Op(e){let t=Uy[e];if(t===void 0)throw new Error(`InternalError: empty SELECT * schema policy is not defined for field type ${e}.`);return t}async function Lp(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>Op(s.fieldType)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Op(s.fieldType);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function ky(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(_p(e,a,r.leftColumns),_p(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",m=c.get(R);m?m.push(E):c.set(R,[E])}let p={};for(let E of r.leftColumns??Object.keys(e[0]??{}))p[E]="";let f=[];for(let E of t){let R=E[s]??"",m=c.get(R)??[];if(m.length>0)for(let y of m)f.push({...y,...E});else f.push({...p,...E})}return f}let l=new Map;for(let c of t){let p=c[s]??"",f=l.get(p);f?f.push(c):l.set(p,[c])}let d=[],u={};for(let c of r.rightColumns??Object.keys(t[0]??{}))u[c]="";for(let c of e){let p=c[a]??"",f=l.get(p)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...u})}return d}function _p(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function My(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function xp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Dr(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function Fy(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,p)=>Ky(c,l,i?.items[p],n,o)).join("\0"),u=a.get(d);u?u.push(l):a.set(d,[l])}a.size===0&&t.length===0&&xp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let u of t)u.type==="ARITH_KEY"?d[Os(u.expr)]=String(se(u.expr,l[0])):u.type==="FUNC_KEY"&&(d[Dt(u.expr)]=le(u.expr,l[0]));Kp(d,l,n,r),s.push(d)}return s}function xy(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},u=[];for(let p of e){let f=d;for(let E of l.items){let R=Dp(E,p),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],u.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),d.rows=[],u.push(d.rows));let c=new Set(l.items.map(p=>p.canonicalId));for(let p of u){let f={...p[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Dp(R,p[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}Kp(f,p,n,r),Wu(f,c),o.push(f)}}return o}function Dp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Kp(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(bs(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??kn(i.expr);e[o]=String(fo(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Dr(i.expr)){let o=i.alias??Dt(i.expr),a=Ls(i.expr,t,r);e[o]=le(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=Ro(i.expr,t,r);e[o]=String(fe(a,e))}}function Ky(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Eo(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?le(e.expr,t):String(se(e.expr,t))}function bs(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=se(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Bp(n,o):void 0,c=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let h=$t(m,E,c);(h<0||h===0&&Ct(m,E)<0)&&(E=m)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let m=$t(R,E,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let p=s?d:d.map(Number);switch(e){case"SUM":return p.reduce((f,E)=>f+E,0);case"AVG":return p.length===0?0:p.reduce((f,E)=>f+E,0)/p.length;case"MEDIAN":{if(p.length===0)return"";let f=[...p].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(p.length===0||f&&p.length<2)return"";let E=p[0],R=0,m=0,y=0;for(let g of p){let S=g-E;R++;let b=S-m;m+=b/R,y+=b*(S-m)}let h=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function By(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 fo(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(bs(e.func,e.distinct,e.arg,e.separator,t,n));let r=fo(e.left,t,n),i=fo(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function kn(e){return er(e)}function Bp(e,t){if(e.type==="FIELD_REF")return t?.(By(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Bp(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function $y(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function Gy(e,t,n,r,i){if(e.length===0)return e;let o=Vy(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function Vy(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(qy(t,a,o))}function Ps(e,t,n,r,i,o){return t.length===0?e:$p(e,t,n,r,i,o).rows.map(a=>a.row)}function $p(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(Gp.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:u},c)=>({s:Yy(u,d,o)}))})),l=(d,u)=>Wy(d,u,t,a);return s.sort(l),{rows:s,compare:l}}function Wy(e,t,n,r){for(let i=0;i<n.length;i++){let o=Hy(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Hy(e,t,n){return $t(e.s,t.s,n.semantics)}var Gp=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Yy(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(se(e.expr,t));case"FUNC_KEY":return le(e.expr,t);case"GROUPING_KEY":return In(e.ref,t)}}function Ns(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=kn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(se(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Dr(a.expr)?d[s]??d[l]??le(a.expr,d,n,r):le(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(fe(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>In(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Cs(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>jy(l,c))),u=s.get(d);u?u.push(l):s.set(d,[l])}for(let l of s.values()){let d=$p(l,a.orderBy,n,r,i),u=d.rows,c=1,p=1;for(let f=0;f<u.length;f++){f>0&&d.compare(u[f-1],u[f])!==0&&(c=f+1,p++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:p;u[f].row[a.alias]=String(E)}}}return e}function jy(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function mo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Eo(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??kn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(se(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return In(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Dr(e.expr)?t[e.alias??i]??t[i]??le(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):le(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(fe(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function qy(e,t,n={}){return e.map((r,i)=>{let o=Eo(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function yo(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let p=e.map(E=>{let R=Mp(Up(E),a),m=Eo(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[h,g]of m.entries)g!==null&&(y[h]=g);return y}),f=p.length>0?Object.keys(p[0]):[...i??[]];return{rows:p,columns:f}}let s=Xy(t),l=t.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"),d=l?null:zy(t,s),u=d??[];return l&&e.length===0?{rows:[],columns:Jy(t,s)}:{rows:e.map((p,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Mp(Up(p),a)),parentWildcardKeys:Object.keys(p).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let h=Eo(y,p,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S),f===0&&u.push(g);break}case"FIELD":{let g=d?.[m]??y.alias??s.get(m)??y.field;E[g]=h,d===null&&f===0&&u.push(g);break}case"LITERAL_COL":{let g=d?.[m]??y.alias??`'${y.value}'`;E[g]=h,d===null&&f===0&&u.push(g);break}case"AGGREGATE":{let g=we(y.func,y.distinct,y.arg),S=d?.[m]??y.alias??g;E[S]=h,d===null&&f===0&&u.push(S);break}case"ARITH_AGG_COL":{let g=d?.[m]??y.alias??kn(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"ARITH_COL":{let g=d?.[m]??y.alias??Os(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"CASE_COL":{let g=d?.[m]??y.alias??"case";E[g]=h,d===null&&f===0&&u.push(g);break}case"GROUPING_COL":{let g=d?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[g]=h,d===null&&f===0&&u.push(g);break}case"STRFUNC_COL":{let g=d?.[m]??y.alias??Dt(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"SCALAR_VALUE_COL":{let g=d?.[m]??y.alias??et(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=d?.[m]??y.alias??"(subquery)";E[g]=h,d===null&&f===0&&u.push(g);break}case"WINDOW_COL":{let g=d?.[m]??y.alias;E[g]=h,d===null&&f===0&&u.push(g);break}}}return E}),columns:u}}function zy(e,t){return e.map((n,r)=>Vp(n,r,t))}function Jy(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=Vp(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Vp(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??kn(e.expr);case"ARITH_COL":return e.alias??Os(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function Xy(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=vp(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=vp(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function vp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Up(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Os(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?W(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?kn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return W(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function Qy(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Dr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>kp(t.result))||e.elseResult!==null&&kp(e.elseResult):!1}function kp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Dr(e){return e.args.some(t=>Qy(t))}function Zy(e,t,n){if(e.type==="AGG_REF"){let r=bs(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=fo(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Ls(e,t,n):Ro(e,t,n)}function Ro(e,t,n){return e.type==="STRING_FUNC"?Ls(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ro(e.left,t,n),right:Ro(e.right,t,n)}:e}function Ls(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Zy(r,t,n))}}function Mp(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function Fp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function ws(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function eh(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(Gp.has(n.expr.func)?"number":"string")));return t}function _s(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:u,aggregateSortKindResolver:c,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y}=e,h=eh(t.columns);for(let[D,w]of a??[])h.set(D,w);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(D=>dt(D,S));let P=ws(Fp(E?.get(S),S),void 0,g);for(let D of t.joins){let w=D.table.alias,k=(n.get(w)??[]).map(v=>dt(v,w)),L=ws(Fp(E?.get(w),w),void 0,k);g=ky(g,k,D,{leftColumns:P,rightColumns:L}),P=ws(P,L,g)}let O=e.residualWhere!==void 0?e.residualWhere:t.where;g=My(g,O,s,p,l);let I=ie(t);if(I.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=xy(g,m,t.columns,c,{maxGeneratedRows:5e4})}else(I.type==="PLAIN"||xp(t.columns))&&(g=Fy(g,I.type==="PLAIN"?I.allItems:[],t.columns,c,I.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=$y(g,t.having,d,u),g=Cs(g,t.columns,i,o,h),t.distinct&&(g=Gy(g,t.columns,r,s,l)),g=Ps(g,t.orderBy,i,o,h,Ns(t.columns,r,s,l)),g=mo(g,t.limit,t.offset),yo(g,t.columns,r,s,f,l,R)}function Wp(e,t){let n=[];for(let r of e){let i=Ds(r.$id?.value),o=th(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,u]of Object.entries(r)){if(d===t)continue;let c=Ds(u?.value);l[`_p.${d}`]={value:c}}for(let[d,u]of Object.entries(s.value??{}))l[d]={value:Ds(u?.value)};n.push(l)}}return n}function th(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Ds(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 Hp(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Yp(e,t){let n=vr(e);for(let[r,i]of Object.entries(t))n[r]=vr(i);return n}function jp(e){let t=[...e.preErrors.map(i=>vs(i)),...e.postImageErrors.map(i=>vs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>vs(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=vr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function vs(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function vr(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(vr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=vr(a,t);return i}function zp(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&Be(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function ks(e){return zp(e,!0)}function ho(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function Ve(e,t,n,r,i=!0,o=!0,a=r){let s=ks(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:ce(e.where)}),ho(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Ur(e,t,n,r,i=!0){e.left.type==="UNION"?Ur(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function qp(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ur(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):Ur(e.query,`${t}.main`,n,!0,!1)}function Jp(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":Ur(e,t,n,r);return;case"WITH":qp(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?qp(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ur(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Jp(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=ks(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ce(e.where)}),ho(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=ks(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ce(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=zp(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ho(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ho(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function go(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Ms(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function nh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Un(t)}function rh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function ih(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return dn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function Us(e,t){let n=e.functionNames[0],r=dn(n)?at:Ft,i=ih(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Xp(e,t){let n=[];Jp(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let u=rh(i);return r.push(u),{hasRelativeDate:i.functionNames.some(X),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Us(i)}}if(i.kind==="SELECT"){let u=i.source,c=u.from.cteName===null&&!u.from.subtableCode&&u.joins.length===0,p=_e(u),f=await t.select(u),E="";try{E=i.where===null?"":V(i.where)}catch{E=""}let R=c&&p==="SIMPLE"&&(u.orderBy.length===0||u.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&go(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let b=await t.prefilterDecomposition(u);b?.eligible===!0&&Ms(u,b)&&(m=b.plan,y=!0,R=!0)}let h;!R&&f.capability==="EXACT_PUSHDOWN"&&(h=gi({select:u,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(m=h.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let b=await t.joinServerFunctionPlan(u);b!==null&&nh(u,b)&&(g=b,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(b=>b.functionNames.some(X)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Us(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":V(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&go(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(u=>u.functionNames.some(X)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Us(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(X)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Fs(e){if(!e.allowed&&e.rejection){let t=dn(e.rejection.functionName)?at:Ft,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function xs(e,t,n={}){let r=Ne(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Mr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=oh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!ah(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=lh(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??V,u=n.containsFunctions??go,c=[];for(let g of a.leaves){let S=Io(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let b;try{b=d(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!u(b,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(g)}let p=sh(l.condition),f=new Set(c),E=So(e.where,f,p);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(g=>Io(g));if(!u(R,[...new Set(m)])||!uh(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):To(e.where,f);if(y!==null&&Mr(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let g of m)h.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:c,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function oh(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Io(o)===null)return;if(Ne(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function Io(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function Mr(e){let t=[],n=r=>{if(r.type==="BINARY"&&Io(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function ah(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function sh(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function So(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=So(e.left,t,n),i=So(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=So(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var kr={type:"BOOLEAN",value:!0};function To(e,t){if(e.type==="BINARY"&&t.has(e))return kr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=To(e.left,t)??kr,r=To(e.right,t)??kr;return Ao(n)?Ao(r)?null:r:Ao(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=To(e.expr,t)??kr;return Ao(n)?kr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ao(e){return e.type==="BOOLEAN"&&e.value}function lh(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function uh(e,t){let n=new Map;for(let r of t){if(!qn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function Qp(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function wo(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function ch(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function ph(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
3
+ `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ye("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function Da(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||mR(t)}function Qu(e){let t=e.codePointAt(0);return Da(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function mR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var ec=20,va=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),nc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Ua=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),CT=Object.freeze(Object.values(Ua).filter(e=>e!==void 0)),yR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),hR=new Set(yR);function gR(e){return hR.has(e)}var rc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Li=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function tc(e){return Li[e]!==void 0}var AR=Object.freeze([...Ei]),SR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),TR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function IR(e){return SR.has(e)}function wR(e){return TR.has(e)}function bR(e){return Number.isInteger(e)&&e>=1&&e<=31}var OT=Object.freeze(Array.from(new Set([...Object.keys(va),...nc,...Object.keys(Ua),...Object.keys(rc),...Object.keys(Li),...AR,"IF"]))),PR=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function NR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!PR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>ec)throw new T(`batch exceeds ${ec} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Li[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new T(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:L,...I?{rowIdSourceHeader:I}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==qe||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let y,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}m=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(y=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let g=o.filter(b=>b.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!m)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(h);for(let L of g){if(!L.rowIdSourceHeader)throw new T(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(L.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of b)if(!g.some(I=>I.subtableCode===L))throw new T(`REPLACE SUBTABLES target ${L} is not declared in INTO.`,this.prev())}}else if(h)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!m)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(y)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),P=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...h?{replaceSubtables:h}:{},...y?{keyFields:y}:{},...S,...P}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&NR(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:qe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(m=>m.type==="WINDOW_COL"),y=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||y))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return rc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"AGG_ARITH",left:Re("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Re(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Re(`${n.kind==="-"?"-":"+"}${H(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Re("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Re(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Re(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"ARITH",left:Re("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Re(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=va[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=va[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(nc.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=CR(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Ua[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!gR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!IR(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!wR(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!bR(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(tc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Li[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Re(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Re(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=uu(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Re(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Re(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let u=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let u=this.matchUpdateFromJoin(p,n,r);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(tc(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||Oi.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function CR(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function lt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}var OR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),LR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function X(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":LR.has(e.fieldType)?t="option":OR.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Pn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function _i(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function _R(e,t){return e<t?-1:e>t?1:0}function ic(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function DR(e,t){let n=ic(e),r=ic(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?ci(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function oc(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function vR(e,t,n){let r=oc(e,n),i=oc(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function UR(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function ac(e,t){let n=t.optionOrder??new Map,i=[...new Set(UR(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(sc),i}function sc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function kR(e,t,n){let r=ac(e,n),i=ac(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=sc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return DR(e,t);case"recordNumber":return vR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return kR(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function lc(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?ci(s,l):_R(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function de(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(de(e.left,t,n,r)),o=Number(de(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return dc(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return de(e,t,n,r)}}function Di(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function MR(e){return e>=55296&&e<=56319}function FR(e){return e>=56320&&e<=57343}function Ui(e,t){return t>0&&t<e.length&&MR(e.charCodeAt(t-1))&&FR(e.charCodeAt(t))}function uc(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function Ma(e,t){let n=Math.min(Math.max(0,t),e.length);return Ui(e,n)&&(n-=1),e.slice(0,n)}function xR(e,t){let n=Math.max(0,e.length-t);return Ui(e,n)&&(n+=1),e.slice(n)}function KR(e,t,n){let r=uc(t,e.length),i=uc(n,e.length);return i<=r?"":(Ui(e,r)&&(r+=1),Ui(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function BR(e,t){let n=e.repeat(Math.ceil(t/e.length));return Ma(n,t)}var $R=200,ur=new Map;function GR(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function ka(e,t,n=!1){let r=GR(t)+(n?"g":""),i=`${e}\0${r}`,o=ur.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(ur.size>=$R){let s=ur.keys().next().value;s!==void 0&&ur.delete(s)}return ur.set(i,a),a}function VR(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function WR(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function HR(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function YR(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),p=a.slice(0,d);return HR(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>em(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return he("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return KR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{he("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Ma(o,a)}case"RIGHT":{he("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":xR(o,a)}case"INSTR":return he("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{he(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Ma(o,a);let s=i[2]??" ";if(s==="")return o;let l=BR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return he(e.func,i,2),lc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return he("REGEXP_LIKE",i,2,3),ka(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{he("REGEXP_REPLACE",i,3,5),VR(i[2]);let o=WR(i[4]),a=ka(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):YR(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return he("REGEXP_SUBSTR",i,2,3),ka(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{he("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Di("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Di("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Di("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return he("TRUNCATE",i,1,2),Di("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return QR(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return he(e.func,i,1,1),vi(i[0])?String(Fa(i[0])+1):"";case"QUARTER":return he(e.func,i,1,1),vi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return he(e.func,i,1,1),vi(i[0])?String(pc(i[0])):"";case"DATE_FORMAT":return qR(i[0]??"",i[1]??"");case"DATEDIFF":return zR(i[0]??"",i[1]??"");case"DATE_ADD":return JR(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return he("LAST_DAY",i,1,1),XR(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function he(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function cr(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function ki(e){let t=new Date(0);return t.setUTCHours(0,0,0,0),t.setUTCFullYear(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),t}function vi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=ki(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function Fa(e){return ki(e).getUTCDay()}function cc(e){let t=ki(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function jR(e){return cc(e).getUTCFullYear()}function pc(e){let t=cc(e),n=t.getUTCFullYear(),r=ki(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function qR(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=cr(e),l=vi(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Fa(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Fa(e)]:"";case"%v":return l?String(pc(e)).padStart(2,"0"):"";case"%G":return l?String(jR(e)).padStart(4,"0"):"";default:return d}})}function zR(e,t){if(e.length<10||t.length<10)return"0";let n=cr(e),r=cr(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function JR(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=cr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function XR(e){if(!e||e.length<10)return e;let{y:t,mo:n}=cr(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function QR(e,t){if(/^-?\d+$/.test(t.trim()))return ZR(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return n?E+"%":E}function ZR(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function em(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(de(e,t,n,r))}function ut(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function te(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return tm(e,t,n,r,i);case"NULL_CHECK":return sm(e,t);case"LOGICAL":return lm(e,t,n,r,i);case"NOT":return!te(e.expr,t,n,r,i);case"GROUP":return te(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function tm(e,t,n,r,i){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let o=Ac(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=rm(e.left,a,i);return nm(e.op,o,e.right,t,a,n,s,i)}function nm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(am(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?H(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let p=om(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=xa(n,r,o);return gc(t,d)}if(e==="NOT_LIKE"){let d=xa(n,r,o);return!gc(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=xa(n,r,o,s);return Gt(e,t,l,a)}var fc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function rm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?X({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(fc.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(fc.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var Ec=new Set(["CHECK_BOX","MULTI_SELECT"]),Rc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),im=new Set(["CREATOR","MODIFIER"]);function om(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Gt("=",e,a,o))}let i;if(Ec.has(n)||Rc.has(n)||im.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Ec.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Rc.has(n)?!Array.isArray(i)||!i.every(mc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):mc(i)?t.has(i.code):r()}function mc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function am(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${at}`)}function sm(e,t){let n=Ac(e.field,t);return e.not?n!=="":n===""}function lm(e,t,n,r,i){return e.op==="AND"?te(e.left,t,n,r,i)&&te(e.right,t,n,r,i):te(e.left,t,n,r,i)||te(e.right,t,n,r,i)}function Ac(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function xa(e,t,n,r){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return H(e);case"KINTONE_FUNC":return um(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return hc(i.result,t,n,r);return e.elseResult!==null?hc(e.elseResult,t,n,r):""}function dc(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return yc(i.result,t,n,r);return e.elseResult===null?null:yc(e.elseResult,t,n,r)}function yc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function hc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(de(e,t,n,r))}function Sc(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":return""}}function um(e){throw J(e)?new Error(`${e}: ${Ft}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Mi=new Map,cm=200;function gc(e,t){if(!Iu(t))return e.includes(t);let n=Mi.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),Mi.size>=cm&&Mi.clear(),Mi.set(t,n)}return n.test(e)}function Nn(e){return Ic(e)}function Tc(e){return Ic(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Ic(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw fe("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw fe("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function fe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Fi(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!te(a.condition,t,n))continue;let s=de(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ba(e){if(At(e))throw new Q("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var pm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),dm=new Set(["CHECK_BOX","MULTI_SELECT"]);function Ki(e,t=new Map){let n=e.values.map(r=>fm(e.fields,r,t));return Er(n,100).map(r=>({app:e.appId,records:r}))}function fm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function dr(e){Ba(e.where);let t=Mc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function fr(e,t,n=new Map){let r=Em(e.assignments,n);return Er(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Em(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:ct(i,t.get(r))});return n}function Nc(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE")}function Bi(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE"||t.value.type==="STRING_FUNC")}function $a(e){Ba(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Cc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?Ga(n,t):n.type==="CASE_VALUE"&&Oc(n.expr,t);return Mc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Cc(e,t){pr(e.left,t),pr(e.right,t)}function pr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Cc(e,t):e.type==="STRING_FUNC"&&Ga(e,t)}function Ga(e,t){for(let n of e.args)Rm(n,t)}function Rm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ka(e,t);return}Cn(e,t)}function Cn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Ga(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Cn(e.left,t),Cn(e.right,t);return}e.type==="CASE_WHEN"&&Oc(e,t)}function Ka(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&mm(e.arg,t);return}e.type==="AGG_ARITH"&&(Ka(e.left,t),Ka(e.right,t))}function mm(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?pr(e,t):Cn(e,t)}function wc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){pr(e,t);return}Cn(e,t)}}function Oc(e,t){for(let n of e.branches)xi(n.condition,t),wc(n.result,t);e.elseResult!==null&&wc(e.elseResult,t)}function xi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&pr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":xi(e.left,t),xi(e.right,t);break;case"NOT":case"GROUP":xi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Va(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Lc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:Wa(d,a,n.get(l),i)};return{id:o,record:s}});return Er(r,100).map(i=>({app:e.appId,records:i}))}function Wa(e,t,n,r){if(e.type==="ARITH")return String(r?Ya(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(de(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Q("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function $i(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var ym=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Ha(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Q("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Lc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(ym.has(c??""))throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new Q(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new Q(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:ct({type:"STRING",value:u},c)}}else{if(p.type==="STRING_FUNC")throw new Q("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[d]={value:String(Ya(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(de(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Lt(p.expr,s,c)}:l[d]={value:ct(p,c)}}}return{id:a,record:l}});return Er(r,100).map(i=>({app:e.appId,records:i}))}function Lc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Ya(e,t){let n=bc(e.left,t),r=bc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function bc(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Ya(e,t);if(e.type==="STRING_FUNC")throw new Q("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new Q(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function _c(e){return Ba(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Dc(e,t){return Er(t,100).map(n=>({app:e,ids:n}))}function vc(e){return pm.has(e??"")}function hm(e){return dm.has(e??"")}function gm(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function Am(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Uc(e,t){return vc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):hm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?gm(e):t==="DATE"?Am(e):e}function kc(e,t){return vc(t)?e.map(n=>({code:n})):e}function Pc(e,t,n){return e.type==="ARRAY"?kc(e.elements.map(r=>r.value),n):e.type==="STRING"?Uc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(de(e,t))}function Mc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Nn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(te(r.condition,t))return Pc(r.result,t,n);return e.elseResult!==null?Pc(e.elseResult,t,n):""}function ct(e,t){let n=ja(e,t);if(!n.ok)throw new Q(n.message);return n.value}function ja(e,t){try{return{ok:!0,value:Sm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Sm(e,t){switch(e.type){case"VARIABLE":throw new Q(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Q(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Uc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return kc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Q(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Q("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Q("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new Q("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new Q("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Q("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Er(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Q=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var qa=new Set(["CHECK_BOX","MULTI_SELECT"]),Tm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Rr(e){throw new Error(`ArgumentError: ${e}`)}function Fc(e,t,n){let r=Im(n.fieldType,e.field),i=wm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let h=m.value;h!==""&&(m.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let m of s)l.has(m)&&Rr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),p=a.filter(m=>!o.has(m)),c=[...d,...p],u=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let h=m.kind==="ADD"?f:E,g=!h.has(m.value);return h.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&g&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),y=qa.has(r)?c:c.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:y,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function Im(e,t){return qa.has(e)||Tm.has(e)?e:Rr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function wm(e,t,n){if(!Array.isArray(e))return Rr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>qa.has(t)?typeof i!="string"?Rr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Rr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function Y(e){throw new Error(`ArgumentError: ${e}`)}function Xa(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?Y("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return Y("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)za(s.field,null,r),bm(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&Y(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?Y(`APPLY target ${s.field} is not a SUBTABLE.`):Y(`APPLY target ${s.field} does not exist as a top-level field.`);if(Au(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&Y(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)za(u.field,s.field,r,p),Ja(u.value,s.field,r,p);c.selector.kind==="WHERE"&&Ja(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),za(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Ja(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function bm(e,t){mr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&Y(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&Y(`APPLY parent FILE reference ${n} is not supported.`)})}function za(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&Y(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&Y(`APPLY child ${e} does not belong to subtable ${t}.`),Y(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&Y(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ja(e,t,n,r){mr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&Y(`APPLY child reference ${i} does not belong to subtable ${t}.`),Y(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Gi(e,t){let n=pt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)mr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Vi(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Vc(i?.value);return n}function Kc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=es(n.$id?.value,"APPLY snapshot $id"),a=Xa(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),$c(t,n,i,o)}function Bc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=es(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),$c(e,o,r,a)})}function $c(e,t,n,r){let i=es(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let w=n.targetMultiValueFields.get(p.field);w||Y(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Fc(p,t[p.field]?.value,w));continue}let c=n.childrenByTable.get(p.field),u=_m(t,p.field),f=new Set;for(let w of u)w.id||Y(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(w.id)&&Y(`APPLY snapshot for ${p.field} contains duplicate _rid ${w.id}.`),f.add(w.id);let E=w=>w.field==="_rid"?"SINGLE_LINE_TEXT":w.field==="_idx"?"NUMBER":c.get(w.field)?.fieldType,R=[],y=[],m=[],h=new Set,g=new Set,S=new Set,P=p.operations.some(w=>w.kind==="REMOVE");for(let[w,D]of p.operations.entries()){if(D.kind==="APPEND"){let N=Qa(D,c,p.field);m.push({kind:"APPEND",addedRows:N.length}),y.push(...N);continue}if(D.kind==="REMOVE"){let N=Cm(D,u,E,p.field);D.expectRows&&xc(D.expectRows,N.length,r,p.field,w,D.kind),m.push({kind:"REMOVE",removedRows:N.length});for(let _ of N){let A=u[_].id;g.has(_)&&Y(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(_)&&Y(`APPLY removes row ${A} more than once.`),S.add(_)}continue}if(D.kind!=="PATCH")continue;let M=Nm(D,u,E,p.field);D.expectRows&&xc(D.expectRows,M.length,r,p.field,w,D.kind),m.push({kind:"PATCH",matchedRows:M.length,changedRows:M.length});for(let N of M){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),g.add(N);let A=Vi(_,N);for(let C of D.assignments){let x=`${_.id}\0${C.field}`;h.has(x)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),h.add(x),R.push({rowIndex:N,field:C.field,value:$i(C.value,A,E)})}}}let b=new Map;for(let w of R){let D=b.get(w.rowIndex)??{};D[w.field]={value:w.value},b.set(w.rowIndex,D)}let I=[...u.flatMap((w,D)=>S.has(D)?[]:[{id:w.id,value:{...w.value,...b.get(D)??{}}}]),...y],v={table:p.field,operations:m,changedSubtableRows:b.size+S.size+y.length,deletedRows:S.size,snapshotRowIds:u.map(w=>w.id),postImageRows:I};P?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((w,D)=>S.has(D)?[w.id]:[]),payloadRows:I.map(w=>({...w.id===void 0?{}:{id:w.id},value:w.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((w,D)=>{let M=b.get(D);return M?{id:w.id,value:M}:{id:w.id}}),...y.map(w=>({value:w.value}))]})}let s=Dm(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:Wa(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function xc(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;Y(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Wi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return Y(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:Y(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:Y(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function Qa(e,t,n){return e.values.map(r=>({value:Pm(e,r,t,n)}))}function Pm(e,t,n,r){if(t.length!==e.fields.length)return Y(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?Za(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function Za(e){return e.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(e.fieldType)?[]:""}function Nm(e,t,n,r){return Gc(e.selector,t,n,r)}function Cm(e,t,n,r){return Gc(e.selector,t,n,r)}function Gc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>te(i,Vi(l,d),n)?[d]:[]),a=Om(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Lm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Om(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_rid"?null:e.right.type==="STRING"?e.right.value:e.right.type==="NUMBER"?e.right.raw??String(e.right.value):null}function Lm(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_idx"||e.right.type!=="NUMBER"?null:Number.isSafeInteger(e.right.value)&&e.right.value>=0?e.right.value:null}function _m(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):Y(`APPLY snapshot field ${t} is not a subtable value.`)}function es(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function Dm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Vc(r?.value);return t}function Vc(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 mr(e,t){if(Array.isArray(e)){e.forEach(r=>mr(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))mr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Yi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function yr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),vm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Wc(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function vm(e){let t=ts(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(ts(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");Hi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");Hi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=ts(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));Hi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");Hi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!ns(p.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(p=>!d.has(p)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function ts(e,t){let n=[...e],r=new Set;for(let i of n)i||re(`APPLY ${t} contains an empty row id.`),r.has(i)&&re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Hi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function ns(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((a,s)=>ns(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&ns(n[a],r[a]))}function Hc(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function Yc(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Hc(t.digits,"digits",1,30),r=Hc(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function jc(e){return e.sign===0?{integerDigits:0,fractionDigits:0}:{integerDigits:Math.max(e.coefficient.length-e.scale,0),fractionDigits:Math.max(e.scale,0)}}var Um=new Set(["CHECK_BOX","MULTI_SELECT"]),km=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Pe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Mm(e);if(i!==""&&!Fm(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=hr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:xm(t.fieldType),message:o}}if(t.required&&ji(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ji(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&pi(i,t.minValue)<0)return{ok:!1,code:"ERR_RANGE_MIN",message:`${t.code} \u306F ${t.minValue} \u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.maxValue!=null&&pi(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=jc(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!ji(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!ji(r)&&km.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function Mm(e){return e==null?"":qi(e)&&e.type==="NUMBER"?H(e):qi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Fm(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function hr(e,t){if(qi(e)){let r=ja(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if(Um.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function qi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(qi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ji(e){return e===""||Array.isArray(e)&&e.length===0}function xm(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var On=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function rs(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=hr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function is(e,t,n,r,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(y=>[y.code,y])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&rs(e,r,i);let R;for(let y of e){y.record??(y.record={});let m=d?[...y.preErrors]:[],h=[],g=[],S=y.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let I of r){if(!y.payload.has(I))continue;let v=y.payload.get(I),w=c.get(I).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(w)&&Array.isArray(v)&&v.every(N=>typeof N=="object"&&N!==null&&"code"in N);if(!S)continue;let M=Pe(v,c.get(I),a);M.ok?y.record[I]={value:D?v:M.value}:h.push({field:I,code:M.code,message:M.message})}if(l&&y.mode==="create")for(let I of i){if(I.inSubtable||y.payload.has(I.code))continue;if(Wt(I.defaultValue)){let w=Pe("",I,a);w.ok?I.required&&h.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:I.code,code:w.code,message:w.message})}else{let w=Pe(I.defaultValue,I,a);w.ok||h.push({field:I.code,code:w.code,message:`\u65E2\u5B9A\u5024: ${w.message}`})}}if(s.length>0){let I=y.evaluationRow??Object.fromEntries([...y.payload].map(([D,M])=>[D,ze(M)])),v=y.evaluationFieldTypes,w=D=>{let M=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(M)??v?.get(D.field)};try{for(let D of Fi(s,I,w))g.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){R??(R=D)}}let P=I=>I.map(v=>{let w={};for(let D of n)w[D]=ze(y.payload.get(D));return w.$err_statement=String(o),w.$err_operation=t,w.$err_row=String(y.rowNumber),w.$err_field=v.field,w.$err_code=v.code,w.$err_message=v.message,w.$err_value="",w.$err_subtable="",w.$err_subrow="",w.$err_subrow_id="",w}),b={rowNumber:y.rowNumber,preErrors:P(m),builtInErrors:P(h),checkErrors:P(g)};E.push(b);let L=[...b.preErrors,...b.builtInErrors,...b.checkErrors];L.length>0&&f.add(y.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function ze(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var os=["required","length","range","choice"];function as(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function ss(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function Km(e){return as(e).length>0}function Bm(e){return e.fieldType==="NUMBER"||Km(e)}function zi(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ls(e,t){let{topByCode:n,childrenByTable:r}=ss(t),i=Bm;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...r.entries()].some(([R,y])=>R!==l.subtableCode&&y.some(m=>m.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(d);if(p?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function gr(e,t){return Wt(e)?"":ze(hr(e,t))}var $m=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Ar=On;function Je(e,t=["$id"]){let n=ss(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!$m.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Ht(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Yt(e,t,n,r,i=1,o="UPDATE"){let a=Gm(e),s=[],l=new Set,d=[...t.payloadFields,...Ar],p=ze(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let y={};for(let m of t.payloadFields)y[m]=m==="$id"?p:ze(e[m]?.value);y.$err_statement=String(r),y.$err_operation=o,y.$err_row=String(i),y.$err_field=u.code,y.$err_code=E.code,y.$err_message=E.message,y.$err_value=gr(f,u.fieldType),y.$err_subtable=R?.subtable??"",y.$err_subrow=R?String(R.subrow):"",y.$err_subrow_id=R?.subrowId??"",s.push(y)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Pe(f,u,n);E.ok?a[u.code]={value:qc(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let y=0;y<E.length;y++){let m=E[y],h=R[y];for(let g of f){let S=m.value?.[g.code]?.value,P=Pe(S,g,n);P.ok?(h.value??(h.value={}),h.value[g.code]={value:qc(S,g.fieldType,P.value)}):c(g,S,P,zi(u,y,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function qc(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function Gm(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function Ji(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;zc(o,"dmlMaxRows"),zc(a,"dmlMaxSubtableRows");for(let g of n)Yi(g);let l=Bc(t,n,r,i),d=Je(r,t.assignments.map(g=>g.field)),p=l.some(g=>Ht(g.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((g,S)=>Yt(g.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=u.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let y=l.map((g,S)=>Wi(g,u[S].normalizedRecord)),m=y.flatMap(g=>yr(g).records),h=u.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return Jc({plans:y,records:m,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function zc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Jc(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Jc(n,t);return Object.freeze(e)}var us=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Xi(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Xc(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return Xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),Xc(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function Vm(e,t,n=Xi(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Ki(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(p=>Qa(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||us.has(c.fieldType)||(d[c.code]=s[c.code]??{value:Za(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Sr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Qc(r,"dmlMaxRows"),Qc(i,"dmlMaxSubtableRows");let a=e.metadata??Xi(t,n),s=Vm(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!us.has(S.fieldType)),d=Je(l,t.fields),p=s.some(S=>Ht(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(P=>P.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,P)=>S+P.tables.reduce((b,L)=>b+L.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let y=s.map((S,P)=>{let b=u[P].normalizedRecord,L={};for(let I of t.fields)L[I]=b[I];for(let I of S.tables){let v=b[I.table]?.value;L[I.table]={value:I.rows.map((w,D)=>({value:Object.fromEntries(Object.keys(w.value).map(M=>[M,v[D]?.value?.[M]??w.value[M]]))}))}}return{...S,postImage:b,record:L}}),m=y.map(S=>S.record),h=[];for(let S=0;S<m.length;S+=100)h.push({app:t.appId,records:m.slice(S,S+100)});let g=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Zc({applyBlocks:t.applyBlocks??[],candidates:y,records:m,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Xc(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||us.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Qc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function Zc(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Zc(n,t);return Object.freeze(e)}async function tp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;ep(i,"dmlMaxRows"),ep(o,"dmlMaxSubtableRows"),qm(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Wm(t,s.map(m=>m.sourceRowIndex)),p=await Sr({statement:d,fieldInfos:r,metadata:Xi(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let m of l){let h=m.targetId;u.has(h)&&cs(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),u.add(h),m.snapshot||cs(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(m.snapshot.$id?.value);g!==h&&cs(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=Hm(t,m.sourceRowIndex,h),P=S.applyBlocks?.length?pt(S,r):Ym(r);c.push(await Ji({statement:S,snapshots:[m.snapshot],fieldInfos:r,metadata:P,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=jm(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,y=E>i||R>o;if(!t.validateOnly){let m=[...p.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:m})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return ps({create:p,update:f,createBatches:p.batches,updateBatches:zm(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:y,create:p.guards,update:f.guards}})}function Wm(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Hm(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function Ym(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function jm(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return ps({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function qm(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function zm(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function ep(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function cs(e){throw new Error(`ArgumentError: ${e}`)}function ps(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))ps(n,t);return Object.freeze(e)}function Ir(e){return Ln("UPDATE",[ip(e)])}function ds(e){return Ln("INSERT",[rp(e)])}function fs(e){return Ln("UPSERT",[rp(e.create),ip(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Zi(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[Qi("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[Qi("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[Qi("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Qi("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function rp(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function ip(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:np(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:np(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function np(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:Tr(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Tr(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Tr(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Tr(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Tr(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Tr(e,t){return e==null||t===null?null:e+t}function Qi(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>Jm(f,n)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function Jm(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var Qe=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function op(e,t,n){yn("phase10c");let r=Wc(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function ap(e,t,n){yn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function sp(e,t,n){yn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});r.push(p.ids)}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var Xm=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Qm(e){if(!Xm.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function Zm(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Qm(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function Es(e,t){let n=Zm(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function ey(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function Rs(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return ey(i)?!0:Object.values(i).some(n)};return n(e)}function lp(e,t){let n=ne(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return eo(e.left);case"NULL_CHECK":return eo(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function eo(e){if(Array.isArray(e))return e.some(eo);if(e===null||typeof e!="object")return!1;let t=e;return t.type==="FIELD"?t.field!=="$id":t.type==="SELECT"?!1:Object.values(t).some(eo)}async function Ge(e,t,n,r,i){let o=await Ie(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function to(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:su(i),metrics:o}}var ke=["=","!=",">","<",">=","<="],ty=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),ny=new Set(ke),ry=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])]]),iy=new Map([["TODAY",new Set(ke)],["NOW",new Set(ke)],["LOGINUSER",new Set(["in","not in"])]]),oy=["=","!=","in","not in"],ay=new Map([["RECORD_NUMBER",new Set([...ke,"in","not in"])],["__ID__",new Set([...ke,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ke)],["UPDATED_TIME",new Set(ke)],["DATE",new Set(ke)],["TIME",new Set(ke)],["DATETIME",new Set(ke)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ke,"in","not in"])],["CALC",new Set([...ke,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(oy)]]),sy=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),pp=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),dp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function ly(e){return ay.get(e)??new Set}function Ne(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:br(e,t)}function br(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return uy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ys():dy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ys();case"GROUP":return br(e.expr,t);case"NOT":{let n=br(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Ep(n.reasons)?Nr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=br(e.left,t),r=br(e.right,t);return Ey(e.op,n,r)}}}function uy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return cy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&up(n))return cp(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?cp(e,t,p[0],r):no("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Pr(e))}if(t.type!=="FIELD")return ys();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Pr(e));let o=Pr(e);if(!fp(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!fy(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=ly(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||up(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function up(e){return e.type==="KINTONE_FUNC"&&Mt.has(e.name)}function cp(e,t,n,r){let i=Pr(e),o=n.name;if(!Mt.has(o)||t.type!=="FIELD")return no("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=ry.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?no("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):iy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:no("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function cy(e,t,n,r){let i=Pr(e),o=n.name;if(t.type!=="FIELD")return wr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?py(n)?ny.has(i)?!ty.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?wr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:wr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):wr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):wr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function py(e){if(!("args"in e)||!e.args)return!1;switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args.kind==="NONE";case"FROM_TODAY":return e.args.kind==="FROM_TODAY"&&Number.isSafeInteger(e.args.offset)&&e.args.offsetText===String(e.args.offset===0?0:e.args.offset)&&(e.args.unit==="DAYS"||e.args.unit==="WEEKS"||e.args.unit==="MONTHS"||e.args.unit==="YEARS");case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args.kind==="WEEK"&&(e.args.weekday===null||e.args.weekday==="SUNDAY"||e.args.weekday==="MONDAY"||e.args.weekday==="TUESDAY"||e.args.weekday==="WEDNESDAY"||e.args.weekday==="THURSDAY"||e.args.weekday==="FRIDAY"||e.args.weekday==="SATURDAY");case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args.kind==="MONTH"&&(e.args.day===null||e.args.day==="LAST"||Number.isInteger(e.args.day)&&e.args.day>=1&&e.args.day<=31);default:return!1}}function dy(e,t,n){let r=n(e);return r?fp(r.fieldType,t)?!pp.has(r.fieldType)&&!dp.has(r.fieldType)?_n("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:_n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):_n("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function fp(e,t){let n=sy.get(e);return n===void 0||n.has(t)}function fy(e,t){return pp.has(e)?!0:dp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Pr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function Ey(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Nr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Nr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Nr({capability:"LOCAL_ONLY",reasons:r})}function ys(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _n(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function no(e,t,n,r,i){return Nr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function wr(e,t,n,r,i){return Rp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Ep(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Ry(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Mt.has(t.functionName))}function Rp(e){if(e.capability==="EXACT_PUSHDOWN"||!Ep(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&J(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function my(e){if(e.capability==="EXACT_PUSHDOWN"||!Ry(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&Mt.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Nr(e){return my(Rp(e))}var yy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),hy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),gy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function vn(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?yp(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):yp(n[0],e.field)}function gs(e,t){if(e.left.type!=="FIELD")return Cr();let n=vn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Cr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ne(e,a=>{let s=vn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:X({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Cr();let o=wy(e,n,r);return o==="unsafe"?Cr():Object.freeze({relation:o,owner:n})}function hp(e,t){let n=ue(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=vn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ne(e,o=>{let a=vn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:X({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function gp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:Tp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Ay(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Iy(e,t)),fetchQueriesByAlias:new Map,...o})}function Ap(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,Un(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=Un({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!qt(lo(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function kn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!qt(lo(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||Sp(Ty(e))!==e.allKlikes.length))}function Ay(e,t){if(e===null)return mp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return mp(e);let r=Sy(e,t,n);if(r!==null)return r;let i=oo(e),o=[],a=new Set;for(let c of i){let u=hp(c,t);if(u.relation!=="function-leaf-exact")continue;let f={targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,relation:"exact"},E;try{E=Un(f,t)}catch{continue}let R=lo(E);qt(R,u.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:u.functionOccurrences,relation:u.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ao(e,a),l=Object.freeze(s===null?[]:[...ue(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=qt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function Sy(e,t,n){let r=ro(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Un(i,t)}catch{return null}if(!qt(lo(o),n))return null;let a=new Set;if(jt(e,a),Sp(o)!==a.size)return null;let s=Object.freeze(io(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function ro(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=hp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=gs(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=ro(e.left,t),r=ro(e.right,t);return n!==null&&r!==null&&uo(n,r)?n:null}case"GROUP":case"NOT":return ro(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function io(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...io(e.left),...io(e.right)];case"GROUP":case"NOT":return io(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function mp(e){let t=e===null?[]:ue(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function oo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...oo(e.left),...oo(e.right)]:[];case"GROUP":return oo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ao(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ao(e.left,t),r=ao(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=ao(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function lo(e){let t=[];for(let n of qn){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function qt(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function Sp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Ty(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Iy(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=vn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(so(i.right)){n.add("CROSS_TABLE_BINARY");return}gs(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Pp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!uo(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Un(e,t){return Or(e.predicate,e,t),G(e.predicate)}function Or(e,t,n){switch(e.type){case"LOGICAL":Or(e.left,t,n),Or(e.right,t,n);return;case"GROUP":Or(e.expr,t,n);return;case"NOT":Or(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||so(e.right))throw hs(t,"predicate contains a non-target or RHS field reference");let r=vn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw hs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw hs(t,"predicate shape is outside the Phase A serializer contract")}}function hs(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Dn(e,t){switch(e.type){case"BINARY":{let n=gs(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Dn(e.left,t),r=Dn(e.right,t);if(e.op==="AND")return Tp([...n,...r]);if(Pp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return uo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Ip(i.relation,o.relation)}]:[]}case"GROUP":return Dn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Tp(e){let t=[];for(let n of e){let r=t.findIndex(o=>uo(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:Ip(i.relation,n.relation)}}return t}function wy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return hy.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return by(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&wp(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||gy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?bp(e.right.value)?"superset":"unsafe":n==="TIME"?Py(e.right.value)?"superset":"unsafe":Ny(e.right.value)?"superset":"unsafe";if(yy.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function yp(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Cr(){return Object.freeze({relation:"unsafe"})}function uo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Ip(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function by(e){return e.type==="NUMBER"&&wp(e)&&e.value>0}function wp(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function bp(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Py(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Ny(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!bp(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Pp(e){let t=new Set;return jt(e,t),t.size>0}function so(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(so);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(so)}function As(e,t){let n=or(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function Cy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Oy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Lr(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=Cy(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!Oy(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var Ly=new Set(["RECORD_NUMBER","SINGLE_LINE_TEXT","NUMBER","CALC","DATE","DATETIME","TIME","CREATED_TIME","UPDATED_TIME","DROP_DOWN","RADIO_BUTTON","STATUS","LINK","CREATOR","MODIFIER"]);function _y(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,d=e.orderSemantics.get(l);if(!d){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(_y(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}Ly.has(d.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var co=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},po=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},fo=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function Np(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new fo(a).message}}return{records:n,cleanupWarning:o}}function Ss(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var Cp=["$id","$revision","\u30EC\u30B3\u30FC\u30C9\u756A\u53F7","\u4F5C\u6210\u8005","\u4F5C\u6210\u65E5\u6642","\u66F4\u65B0\u8005","\u66F4\u65B0\u65E5\u6642","\u30B9\u30C6\u30FC\u30BF\u30B9","\u4F5C\u696D\u8005"];function Ts(e){return e.startsWith("_")||e.startsWith("$")}var Dy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ws(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ws);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?Dy.test(t.field):Object.values(t).some(ws)}function vy(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return sr(e)||ws(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Uy=["_pid","_rid","_idx"];function Is(e){return[...new Set(e)]}function ky(e){switch(e.kind){case"APP":return Is([...e.fieldCodes,...Cp]);case"SUBTABLE":return Is([...e.childFieldCodes,...Uy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Is(e.columns)}}function Op(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:ky(t(r,i))}))}function My(e){if(e.startsWith("_p."))return{qualifier:null,fieldCode:e};let t=e.indexOf(".");return t<=0||t===e.length-1?{qualifier:null,fieldCode:e}:{qualifier:e.slice(0,t),fieldCode:e.slice(t+1)}}function Fy(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function xy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Ky(e,t,n){let r=My(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:Fy(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>xy(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=vy(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Lp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Ky(r.name,t,n):{kind:"EXPRESSION"})}}var By={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function _p(e,t){let n=By[e];if(n===void 0)throw new Error(`ArgumentError: getFields returned unknown fieldType "${e}" for field "${t}". getFields must return only the fields from /k/v1/app/form/fields.json; $id and $revision are synthesized by the engine and must not be added.`);return n}async function Dp(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>_p(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=_p(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function $y(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(vp(e,a,r.leftColumns),vp(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",y=c.get(R);y?y.push(E):c.set(R,[E])}let u={};for(let E of r.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",y=c.get(R)??[];if(y.length>0)for(let m of y)f.push({...m,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of r.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function vp(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function Gy(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function Bp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Dr(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function Vy(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,u)=>Hy(c,l,i?.items[u],n,o)).join("\0"),p=a.get(d);p?p.push(l):a.set(d,[l])}a.size===0&&t.length===0&&Bp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let p of t)p.type==="ARITH_KEY"?d[Ls(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));$p(d,l,n,r),s.push(d)}return s}function Wy(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Up(E,u),y=f.children.get(R);y||(y={children:new Map},f.children.set(R,y)),f=y}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Up(R,u[0]));for(let R of t.allItems){let y=E.get(R.canonicalId)??"";f[R.directKey]=y,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=y)}$p(f,u,n,r),Yu(f,c),o.push(f)}}return o}function Up(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function $p(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(Ps(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??Mn(i.expr);e[o]=String(Eo(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Dr(i.expr)){let o=i.alias??Dt(i.expr),a=_s(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=mo(i.expr,t,r);e[o]=String(de(a,e))}}function Hy(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Ro(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function Ps(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?Gp(n,o):void 0,c=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let y of a)f.set(y,(f.get(y)??0)+1);let E="",R=0;for(let[y,m]of f){if(m>R){E=y,R=m;continue}if(m!==R)continue;let h=$t(y,E,c);(h<0||h===0&&Ct(y,E)<0)&&(E=y)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let y=$t(R,E,c);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,y)=>R-y),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,y=0,m=0;for(let g of u){let S=g-E;R++;let P=S-y;y+=P/R,m+=P*(S-y)}let h=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function Yy(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 Eo(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Ps(e.func,e.distinct,e.arg,e.separator,t,n));let r=Eo(e.left,t,n),i=Eo(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Mn(e){return er(e)}function Gp(e,t){if(e.type==="FIELD_REF")return t?.(Yy(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Gp(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function jy(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function qy(e,t,n,r,i){if(e.length===0)return e;let o=zy(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function zy(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(eh(t,a,o))}function Ns(e,t,n,r,i,o){return t.length===0?e:Vp(e,t,n,r,i,o).rows.map(a=>a.row)}function Vp(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(Wp.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:Qy(p,d,o)}))})),l=(d,p)=>Jy(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function Jy(e,t,n,r){for(let i=0;i<n.length;i++){let o=Xy(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Xy(e,t,n){return $t(e.s,t.s,n.semantics)}var Wp=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Qy(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function Cs(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Mn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Dr(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(de(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Os(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>Zy(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=Vp(l,a.orderBy,n,r,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function Zy(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function yo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Ro(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Mn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Dr(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(de(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function eh(e,t,n={}){return e.map((r,i)=>{let o=Ro(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function ho(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=xp(Mp(E),a),y=Ro(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof y!="string")for(let[h,g]of y.entries)g!==null&&(m[h]=g);return m}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=rh(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:th(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:nh(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(xp(Mp(u),a)),parentWildcardKeys:Object.keys(u).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let h=Ro(m,u,y,R);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S),f===0&&p.push(g);break}case"FIELD":{let g=d?.[y]??m.alias??s.get(y)??m.field;E[g]=h,d===null&&f===0&&p.push(g);break}case"LITERAL_COL":{let g=d?.[y]??m.alias??`'${m.value}'`;E[g]=h,d===null&&f===0&&p.push(g);break}case"AGGREGATE":{let g=we(m.func,m.distinct,m.arg),S=d?.[y]??m.alias??g;E[S]=h,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let g=d?.[y]??m.alias??Mn(m.expr);E[g]=h,d===null&&f===0&&p.push(g);break}case"ARITH_COL":{let g=d?.[y]??m.alias??Ls(m.expr);E[g]=h,d===null&&f===0&&p.push(g);break}case"CASE_COL":{let g=d?.[y]??m.alias??"case";E[g]=h,d===null&&f===0&&p.push(g);break}case"GROUPING_COL":{let g=d?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[g]=h,d===null&&f===0&&p.push(g);break}case"STRFUNC_COL":{let g=d?.[y]??m.alias??Dt(m.expr);E[g]=h,d===null&&f===0&&p.push(g);break}case"SCALAR_VALUE_COL":{let g=d?.[y]??m.alias??et(m.expr);E[g]=h,d===null&&f===0&&p.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=d?.[y]??m.alias??"(subquery)";E[g]=h,d===null&&f===0&&p.push(g);break}case"WINDOW_COL":{let g=d?.[y]??m.alias;E[g]=h,d===null&&f===0&&p.push(g);break}}}return E}),columns:p}}function th(e,t){return e.map((n,r)=>Hp(n,r,t))}function nh(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=Hp(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Hp(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Mn(e.expr);case"ARITH_COL":return e.alias??Ls(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function rh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=kp(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=kp(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function kp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Mp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Ls(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?H(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?Mn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function ih(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Dr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Fp(t.result))||e.elseResult!==null&&Fp(e.elseResult):!1}function Fp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Dr(e){return e.args.some(t=>ih(t))}function oh(e,t,n){if(e.type==="AGG_REF"){let r=Ps(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Eo(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?_s(e,t,n):mo(e,t,n)}function mo(e,t,n){return e.type==="STRING_FUNC"?_s(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:mo(e.left,t,n),right:mo(e.right,t,n)}:e}function _s(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>oh(r,t,n))}}function xp(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function Kp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function bs(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function ah(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(Wp.has(n.expr.func)?"number":"string")));return t}function Ds(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:y,plainGroupByPlan:m}=e,h=ah(t.columns);for(let[v,w]of a??[])h.set(v,w);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let b=bs(Kp(E?.get(S),S),void 0,g);for(let v of t.joins){let w=v.table.alias,M=(n.get(w)??[]).map(_=>dt(_,w)),N=bs(Kp(E?.get(w),w),void 0,M);g=$y(g,M,v,{leftColumns:b,rightColumns:N}),b=bs(b,N,g)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;g=Gy(g,L,s,u,l);let I=ne(t);if(I.type==="GROUPING_SETS"){if(!y)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=Wy(g,y,t.columns,c,{maxGeneratedRows:5e4})}else(I.type==="PLAIN"||Bp(t.columns))&&(g=Vy(g,I.type==="PLAIN"?I.allItems:[],t.columns,c,I.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=jy(g,t.having,d,p),g=Os(g,t.columns,i,o,h),t.distinct&&(g=qy(g,t.columns,r,s,l)),g=Ns(g,t.orderBy,i,o,h,Cs(t.columns,r,s,l)),g=yo(g,t.limit,t.offset),ho(g,t.columns,r,s,f,l,R)}function Yp(e,t){let n=[];for(let r of e){let i=vs(r.$id?.value),o=sh(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,p]of Object.entries(r)){if(d===t)continue;let c=vs(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:vs(p?.value)};n.push(l)}}return n}function sh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function vs(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 jp(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function qp(e,t){let n=vr(e);for(let[r,i]of Object.entries(t))n[r]=vr(i);return n}function zp(e){let t=[...e.preErrors.map(i=>Us(i)),...e.postImageErrors.map(i=>Us(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Us(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=vr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Us(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function vr(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(vr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=vr(a,t);return i}function Xp(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&Be(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function Ms(e){return Xp(e,!0)}function go(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function Ve(e,t,n,r,i=!0,o=!0,a=r){let s=Ms(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:ue(e.where)}),go(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Ur(e,t,n,r,i=!0){e.left.type==="UNION"?Ur(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function Jp(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ur(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):Ur(e.query,`${t}.main`,n,!0,!1)}function Qp(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":Ur(e,t,n,r);return;case"WITH":Jp(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Jp(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ur(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Qp(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Ms(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),go(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Ms(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=Xp(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}go(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:go(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ao(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Fs(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function lh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&kn(t)}function uh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function ch(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return fn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function ks(e,t){let n=e.functionNames[0],r=fn(n)?at:Ft,i=ch(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Zp(e,t){let n=[];Qp(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=uh(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ks(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=_e(p),f=await t.select(p),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ao(E,i.relativeFunctionOccurrences),y,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let P=await t.prefilterDecomposition(p);P?.eligible===!0&&Fs(p,P)&&(y=P.plan,m=!0,R=!0)}let h;!R&&f.capability==="EXACT_PUSHDOWN"&&(h=Ai({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(y=h.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let P=await t.joinServerFunctionPlan(p);P!==null&&lh(p,P)&&(g=P,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...y?{prefilterPlan:y,phase2PrefilterEligible:m}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(P=>P.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ks(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Ao(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ks(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function xs(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:Ft,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function Ks(e,t,n={}){let r=Ne(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Mr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=ph(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!dh(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=Eh(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,p=n.containsFunctions??Ao,c=[];for(let g of a.leaves){let S=wo(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let P;try{P=d(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(P,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(g)}let u=fh(l.condition),f=new Set(c),E=To(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let y=c.map(g=>wo(g));if(!p(R,[...new Set(y)])||!Rh(R,y))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):Io(e.where,f);if(m!==null&&Mr(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let g of y)h.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:c,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function ph(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(wo(o)===null)return;if(Ne(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Mr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function wo(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function Mr(e){let t=[],n=r=>{if(r.type==="BINARY"&&wo(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function dh(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function fh(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function To(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=To(e.left,t,n),i=To(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=To(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var kr={type:"BOOLEAN",value:!0};function Io(e,t){if(e.type==="BINARY"&&t.has(e))return kr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Io(e.left,t)??kr,r=Io(e.right,t)??kr;return So(n)?So(r)?null:r:So(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Io(e.expr,t)??kr;return So(n)?kr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function So(e){return e.type==="BOOLEAN"&&e.value}function Eh(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function Rh(e,t){let n=new Map;for(let r of t){if(!qn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function ed(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function bo(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function mh(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function yh(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
4
4
  `)throw new K(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new K(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
5
5
  `){d==="\r"&&e[a+1]===`
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===`
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 hh(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 Po(e,t){let n=yh(mh(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}`)),hh(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 gh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Ah=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 td(e,t,n){if(!gh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Fr;return Ah.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 nd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function rd(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
- `){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
8
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let u="",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!=="\\"){u+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),y={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in y){u+=y[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let m=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(m)||ft("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(m,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 P=0;P<4;P++)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)),u+=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)):u+=String.fromCharCode(h)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)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 No(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Co(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=rd(nd(e)),n=0,r=(d,p=t[n])=>{throw new K(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[n];(p.kind!=="punct"||p.value!==d)&&r(`expected ${d}; found ${No(p)}`,p),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 p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${No(c)}`,c);let u=c.value;p.has(u)&&r(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${No(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${No(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,p)=>{if(!(d instanceof Map))throw new K(`JSON record ${p+1} must be an object.`)}),l}var Sh=new Set(["CHECK_BOX","MULTI_SELECT"]),id=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 Th(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Ih(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."),Th(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."),!Sh.has(t.fieldType)&&!id.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."),id.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Bs(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=Co(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 u of l.keys())o.has(u)||tt(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of n)l.has(u.code)&&(c.add(u.code),p[u.code]=Ih(l.get(u.code),u,d+1));a.push(p),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 $s(e,t,n,r,i,o){let a=Po(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((m,h)=>[m,h]));for(let m of r)if(!l.has(m))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),p=new Set(r);if(o&&p.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=[],u=[],f=m=>a.rows.filter(h=>h[m]!=="").length,E=m=>m.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":m.inSubtable||m.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":m.writable===!1?`non-writable ${m.fieldType} field`:`known export-only ${m.fieldType} field`;for(let[m,h]of a.columns.entries()){if(p.has(h)||h===o)continue;let g=d.get(h);if(g)c.push({column:h,reason:E(g),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)u.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let m of r){let h=d.get(m);if(!h)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let h=[],g={};for(let S of r){let P=m[l.get(S)];try{g[S]=td(P,d.get(S)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof Fr))throw b;g[S]=P,h.push({field:S,code:b.code,message:b.message})}}return R.push(h),g}),columns:[...r],columnMeta:new Map(r.map(m=>[m,{fieldType:d.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),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 od(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=Co(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 p=d+1;for(let E of l.keys())a.has(E)||xr(p,E,"unknown key (not declared in INTO).");let c=new Map,u=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 y=l.get(R);if(E.kind==="FIELD"){y instanceof Map&&xr(p,R,"object is not accepted for a top-level field."),c.set(R,y);continue}Array.isArray(y)||xr(p,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),h=y.map((g,S)=>{g instanceof Map||xr(p,R,`childRow=${S+1} must be an object.`);let P=g;for(let b of P.keys())m.has(b)||xr(p,b,`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:P}});u.set(R,h)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function ad(e,t,n,r,i,o){let a=Po(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((u,f)=>[u,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(u=>u.kind==="FIELD"),d=n.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(y=>[y.field,u[s.get(y.field)]])),subtables:new Map(d.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let y of l){let m=u[s.get(y.field)];if(m!==""&&m!==c.top.get(y.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${E}.`)}if(o){let y=u[s.get(o)];if(y!==""&&y!==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 y of d){let m=u[s.get(y.rowIdSourceHeader)],h=new Map(y.children.map(S=>[S,u[s.get(S)]]));if(m===""&&[...h.values()].every(S=>S===""))continue;let g=c.subtables.get(y.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:h})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var wh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),bh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ws(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function cd(e,t,n,r,i){let o=new Map(n.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of n)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)sd(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)sd(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>Ph(u,s,l,o,a,r,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function Ph(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&Vs(e.top.get(u.field),r.get(u.field),o,d,u.field,l,Gs(e,a,u.field));let p={};if(a==="INSERT")for(let u of r.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||ld(u,o,p,l,Gs(e,a,u.code));let c=new Map;for(let u of n){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let y=l.length,m={},h=i.get(u.subtableCode);for(let g of u.children){let S=h.get(g),P=Gs(e,a,g,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?Vs(R.values.get(g),S,o,m,g,l,P):ld(S,o,m,l,P)}l.length===y?(f.validChildRows++,E.push(m)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function sd(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&&bh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function ld(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;Vs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function Vs(e,t,n,r,i,o,a,s=!1){let l=Nh(e),d=Pe(l,t,n);d.ok?r[i]={value:Ch(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Nh(e){return ud(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:ud(t)?t.lexeme:t):e}function ud(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Ch(e,t){return wh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Gs(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 Hs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Ys(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Oh(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 Oh(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 js(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 pd(e,t){return js(e,t,"DROP")}function dd(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 fd(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 p=a?.record[l]?.value,c=Array.isArray(p)?p.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 Lh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Ed(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 Rd(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),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=Lh(d.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),y=s.subtables.get(f)??[],m=o.subtables.get(f)??[],h=0,g=0,S=0,P=y.map((b,L)=>{let I=m[L]??{};return b.rowId&&R.has(b.rowId)?(h++,{rowId:b.rowId,record:I}):(b.rowId&&((i.get(b.rowId)??[]).some(w=>w.parentId!==l||w.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),S++),g++,{record:I})});c.set(f,P),u.push({table:f,existingRows:E.length,inputRows:y.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:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var qs="#__import_source";function md(e){return{...e,from:{appId:0,alias:null,cteName:qs}}}function _h(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function zs(e,t){let n=e.map(_h),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 Dh="\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",tn=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"}},Ee=new WeakMap;function vd(e){return Ee.get(e)}var sn=new WeakMap,Ho=new WeakMap,yd=new WeakMap,vh=1,Uh=1;function Ud(e,t){if(t)return t;let n=yd.get(e);return n||(n=`client:${vh++}`,yd.set(e,n)),n}function Al(e){return`${e}\0inv:${Uh++}`}async function Sl(e,t,n={}){let r=Date.now(),i=Al(Ud(t,n.cacheContext));try{let o=SA(e,n.enableImport===!0),a=kd(),s=Fd(t,a),l={aborted:!1},d=Il(s,l,!Mh(o)||Rs(o)),p=await tl(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...xd(p,l),metrics:a};if(p.type==="SELECT"){let u=Ee.get(p);u&&Ee.set(c,u)}return c}finally{Fl(i)}}function kd(){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,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var Md=Symbol("limitMetricsSink");function Tl(e,t){let n=e[Md];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Fd(e,t){return{[Md]:t,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 hd=Symbol("searchAbortFailClosed");function Il(e,t,n){return n&&e[hd]?e:{...e,...n?{[hd]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function kh(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 Mh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function xd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Dh),{...e,warnings:[...n]}}async function gd(e,t,n){let r=await ei(e,t,n);return xs(r),r}async function ei(e,t,n){return Zp(e,{select:r=>Yr(r,t,n),dml:r=>Yd(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return Ks(r,i)},joinServerFunctionPlan:async r=>{let i=await qo(r,t,n),o=jo(r,i);return o===null?null:(kn(o.joinPlan)&&Ll.set(r,o),o.joinPlan)}})}async function tl(e,t,n,r){let i=await ei(e,t,r);e.type!=="EXPLAIN"&&xs(i);let o=rl(e);if(o!==null&&!Zg(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),mi("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await qh(e,t,r),e.type==="IMPORT")return mf(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 ml(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 Kl(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 Fh(e,t,n,r);case"SELECT":return vt(Eg(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return af(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return kl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return jg(e,t,n,r);case"INSERT_SELECT":return Vl(e,t,n,r);case"UPSERT":return dA(e,t,n,r);case"UPSERT_SELECT":return Yl(e,t,n,r);case"UPDATE":return ml(e,t,n,r);case"DELETE":return pA(e,t,n,r);case"REORDER":return hA(e,t,n,r);case"SHOW_APPS":return Sf(t);case"DESCRIBE":return Tf(e,t,r);case"EXPLAIN":return bA(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",Se):Se,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 Vd(e,t,n,r)}}var wl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],bl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Pl(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 Kd(e=!1){let t=e?bl:wl;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 Fh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Bd(e,t,n,r)}async function Bd(e,t,n,r){let i=await ee(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=ls(e,i),l=new Set(s.flatMap(O=>as(O.field))),d={present:os.filter(O=>l.has(O)),absent:os.filter(O=>!l.has(O))},p=e.checkGroups??[],c=Nn(p);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([O,F])=>[O,F.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=Pl(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(O=>O.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,y=O=>O.field==="$id"?X({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?X(o.get(O.field)):void 0),m=Ne(e.where,y);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);let h=new Map([...o].map(([O,F])=>[O,F.fieldType])),g=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:m.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:g,allowKlike:!1}),P=S===null?"":G(S),L=(await Ie(t.getRecords,e.appId,P,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:dt(O,null)})).filter(O=>e.where===null||te(e.where,O.flat,F=>u.get(F.field))),I=[],v=new Map,w=new Map,D=new Set,M=0,N=O=>{if(D.add(O.id),M+=1,e.summary){let z=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=w.get(z);U?U.$err_count=String(Number(U.$err_count)+1):w.set(z,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=v.get(F);j?(j.$err_count=String(Number(j.$err_count)+1),O.subrow!==void 0&&(j.$err_subrow=`${j.$err_subrow},${O.subrow}`,j.$err_subrow_id=`${j.$err_subrow_id},${O.subrowId??""}`)):v.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of L){for(let F of _){let j=O.record[F.field.code]?.value,z=Pe(j,F.field,R);z.ok||N({id:O.id,field:F.field.code,code:z.code,message:z.message,value:gr(j,F.field.fieldType)})}for(let[F,j]of A){let z=O.record[F]?.value;if(Array.isArray(z))for(let U=0;U<z.length;U++){let k=z[U];for(let $ of j){let be=k.value?.[$.field.code]?.value,V=Pe(be,$.field,R);if(!V.ok){let Te=zi(F,U,k);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:gr(be,$.field.fieldType),...Te})}}}}for(let F of Fi(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)I.push(...w.values());else for(let O of v.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),I.push(O)}let x={type:"SELECT",columns:[...e.summary?bl:wl],rows:I,rowCount:I.length,validateStats:{errorRecords:D.size,errorCount:M,constraintMetadata:d}};return Ee.set(x,Kd(e.summary===!0)),x}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])||!xh(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 xh(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||!_i(i.semantics,r.semantics))return!1}return!0}var Fn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function $d(e,t,n={}){let r=Gd(e,n.enableImport===!0),i=_a(r);if(r.forEach(u=>mi("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>Ea(u)||u.type==="UPSERT"&&Kh(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Es(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 u of i.statements){if(!u.isDml||u.tempTablesReferenced.length===0||u.statementType==="INSERT_SELECT"||u.statementType==="UPSERT_SELECT")continue;let f=r[u.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new Z(`ArgumentError: temp table references in ${u.statementType} are not supported yet.`,u.index)}let s=kd(),l=Fd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Al(Ud(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,y=null;for(let m=0;m<r.length;m++){let h=i.statements[m],g={index:m,type:h.statementType};if(y){E.push({...g,status:"skipped",skippedReason:y}),R.add(m);continue}let S=h.dependsOn.find(P=>R.has(P));if(S!==void 0){let P=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${P}`}),R.add(m);continue}if(p!==null&&Date.now()>=p){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(m),y="timeout";continue}try{let P=p!==null?p-Date.now():null,b=a.confirm,L=b?{...a,confirm:(M,N,_)=>b(M,N,{statementIndex:m,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,I={aborted:!1},v=Il(l,I,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||Rs(r[m])),w=kh(v),D=await Gh(Bh(r[m],h,w.client,L,c,u,f),P,w.closeActive);D.result&&(D.result=xd(D.result,I)),E.push({...g,status:"success",...D})}catch(P){E.push({...g,status:"error",error:Vh(P),...P instanceof zr?{result:P.diagnostic}:{}}),R.add(m),P instanceof Fn?y="timeout":P instanceof Kn?y="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{Fl(c)}}function Kh(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 Bh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=ko(e,a);if($e(l),await gd(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 Wd(l.expr.query,n,r,i,o),p=l.expr.query.columns[0],c=p?.type==="ARITH_COL"||p?.type==="ARITH_AGG_COL"||p?.type==="WINDOW_COL"||p?.type==="AGGREGATE"&&(p.func==="COUNT"||p.func==="SUM"||p.func==="AVG"||p.func==="STDDEV_POP"||p.func==="STDDEV_SAMP"||p.func==="VAR_POP"||p.func==="VAR_SAMP"||p.func==="MEDIAN");if(p?.type==="AGGREGATE"&&p.func==="MODE"){let f=(await Bo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let u=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(u)?{type:"number",value:u,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Ad(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=Ad(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=ko(e,a);if(mn("phase15b",s),mi("phase15b",s),$e(s),await gd(s,n,i),s.type==="VALIDATE"){let l=await Bd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,Ee.get(l)??Kd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await mf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await Kl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await El(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 $h(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Ee.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 tl(s,n,r,i)};if(s.type==="ASSERT")return await Vd(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 kl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await Vl(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Yl(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await ml(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await tl(s,n,r,i)}}async function $h(e,t,n,r,i){return e.type==="WITH"?kl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function Gh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Fn;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 Fn)})()},t)})])}catch(a){throw a instanceof Fn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Vh(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)??Js(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:Wh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Js(r),message:r}}else{let n=String(e);t={code:Js(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Js(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function Wh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Gd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Ad(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:H(e)};case"KINTONE_FUNC":return{type:"string",value:Sc(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(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 ko(e,t){return nl(e,t,!1)}function nl(e,t,n){if(Array.isArray(e))return e.map(r=>nl(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,nl(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=Hh(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 Hh(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 rl(e){if(Array.isArray(e)){for(let t of e){let n=rl(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=rl(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 Vd(e,t,n,r,i){let o=await Oo(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 Oo(e.low,t,n,r,i),d=await Oo(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 Oo(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 Oo(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return H(e);case"STRING":return e.value;case"ARITH":return String(il(e));case"SCALAR_SUBQUERY":try{return await Wd(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function Wd(e,t,n,r,i){let{query:o,probed:a}=Yh(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 Yh(e){return ne(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 il(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=il(e.left),n=il(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(u=>u.table)],a=i||Ze(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await ee(u,t,n);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;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 u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(y=>f.get(y)?.fieldType==="STATUS"))return;let R=await xl(u,t,n);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return Pn(X({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(u.appId)?.get(ge(u,f));if(!R)return;let y=R.semantics??X(R),m=R.fieldType==="STATUS"&&p.has(u.appId)?{...y,optionOrder:p.get(u.appId)}:y;return Pn(m,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Ce(R)===u.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Do(E,u.field)!==void 0))return f.length>1?B("string"):void 0}}function Nl(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 Hd(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=vl(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=nn(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 Mo(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Yd(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 ee(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 X({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?X(a):void 0)})}async function xn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Yd(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Q(`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 Yo(e,t,r,i),Xh(e))return s=eg(e),o&&Ee.set(s,await Bo(e,s.columns,t,r,i,a)),s;let l=await Cl(e,t,r,i);await If(e,t,n,r,i);let d=Rg(e,await Yr(e,t,r,i));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let p=_e(e),c,u;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=Ks(e,g);S.eligible&&Fs(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=G(e.where)}catch{g=null}u=Ai({select:e,selectMode:p,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ue(e.where)})??void 0,u&&(c=u.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?p:"FULL_SCAN",E=await qr(e,t,r,i),R=Mo(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:pe(e.where)}):null;await ng(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let y=jd(e,n,R),h=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Il(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await tg(e,h,y.effectiveOptions,r,R,E):s=await hg(e,h,y.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){qd(y,g)}return o&&Ee.set(s,await Bo(e,s.columns,t,r,i,a)),s}async function Cl(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 p=await ee(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)};let c=p.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:p.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Op(e,(d,p)=>o[p]),s=e.groupBy,l=Lp(s,e.columns,a);return jh(e,s,l),l}function jh(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 p=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${p}`)}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 qh(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 Yo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function zh(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await ee(p,t,n);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=ge(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=r?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,u.field)!==null).length,R=i.some(m=>l(m,u.field)),y=Ce(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&y?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(y=>Ce(y)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function Yo(e,t,n,r){jr.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await zh(e,t,n,r),s=Ju(e,a,zu);s&&jr.set(e,s)}function Jh(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 jd(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 qd(e,t){throw e.reasons.size>0&&t instanceof Oe?new Oe(Jh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function Sd(e,t){try{return await t()}catch(n){qd(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Xh(e){return e.from.appId===0&&e.from.cteName===qe}function Fo(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"?Fo(e.left)||Fo(e.right):e.type==="STRING_FUNC"?Ol(e):!1}function Qh(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"?Ol(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"?Fo(n):Br(n))):!1}function Ol(e){return e.args.some(t=>Qh(t))}function Zh(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(Fo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Ol(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 eg(e){if(e.joins.length>0||e.where||ne(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.");Zh(e);let t=Os([{}],e.columns),{rows:n,columns:r}=ho(t,e.columns),i=yo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function tg(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Zd(e):e,s=hi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Dl(e,t,r),p=Ul(e,d),c=e.columns.some(I=>I.type==="CASE_COL")?await $n(e,t,r,void 0,Nl(e)):void 0,u=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,y=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&m!==null&&m<=u&&!pe(e.where)?m: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 Np({client:t,app:s.app,fields:s.fields,query:Ss(e),offset:e.offset??0,limit:e.limit});g=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(y)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?G(e.where):"";g=await Ie(t.getRecords,s.app,I,l,{parallel:R,maxRecords:u,stopAfter:h,onLimit:E,onTruncate:v=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${v} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${v} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Tl(t,e.from.appId)}})}let S=g.map(I=>dt(I,null));y||(S=Ns(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Cs(e.columns,void 0,p.row,c)),S=yo(S,e.limit,e.offset));let{rows:P,columns:b}=ho(S,e.columns,void 0,p.row,void 0,c),L=await Ml(e,P,b,t,r);return{type:"SELECT",rows:P,columns:L,rowCount:P.length,warnings:[...f]}}async function ng(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=hi(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(u=>!Ts(u));if(l.length===0)continue;let d=await ee(a,n,r);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Td(e){return e.cteName??`APP${e.appId}`}function rg(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function ig(e,t){return Ts(t)||e.validCodes.has(t)}function Xs(e,t){return e.table.cteName!==null?e.validCodes.has(t):ig(e,t)}function og(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 ag(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=Ce(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===qe)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.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 ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:Td(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===qe)return;let u=await ee(p.appId,t,r);s.set(p,{table:p,label:Td(p),validCodes:new Set(u.map(f=>f.code)),authoritative:u.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of rg(p.table))l.set(c,p);for(let p of e.joins)for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let u=l.get(c.tableAlias);if(u&&u.table.cteName!==null&&!u.schemaUnavailable&&!Xs(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Mu(e);for(let[p,c]of d.bySource){let u=s.get(p);if(!u||u.schemaUnavailable||!u.authoritative)continue;let f=[...c].filter(E=>!Xs(u,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${u.label})`)}for(let p of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Xs(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let u=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${u})`)}}async function _o(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await _o(e.left,t,n,r,i),await _o(e.right,t,n,r,i);return}await ag(e,t,n,r);for(let o of og(e))await _o(o,t,n,r,i)}}function zd(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 Ll=new WeakMap;function jo(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=gp(e.where,r),o=Ap(i,r),a=new Map,s=new Map;for(let[c,u]of o.fetchQueriesByAlias)s.set(c,u);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,Un(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function qo(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,zd(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,p]=await Promise.all([Ae(s,t,n),Ig(s,t,n)]),c=sg(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await Jo(s,t,n);if(u.enable&&u.states&&u.states.length>0){let f=new Set(u.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,d,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function sg(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"&&xo(e.left.expr,t),e.right.type==="CASE_VALUE"&&xo(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 xo(e,t){for(let n of e.branches)Et(n.condition,t)}function lg(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&xo(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 _l(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Dl(e,t,n){let r=lg(e);if(r.length===0)return new Map;let i=new Set,o=_l(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 Ae(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 Xd(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 Ko(e,t){if(e.type==="AGG_REF"){Xd(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Ko(e.left,t),Ko(e.right,t))}function ol(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Ko(n,t):$r(n,t)}function $r(e,t){if(e.type==="STRING_FUNC"){ol(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"?ol(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&$r(r,t)}}function ug(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Xd(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Ko(n.expr,t):n.type==="STRFUNC_COL"?ol(n.expr,t):n.type==="SCALAR_VALUE_COL"&&$r(n.expr,t);return t}var cg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function pg(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":cg.has(e.fieldType)?"string":void 0}async function Qd(e,t,n,r){let i=ug(e.columns);if(i.length===0)return;let o=new Set,a=_l(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 ee(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(y=>E.get(y)?.fieldType==="STATUS"))return;let R=await xl(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??X(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 y=p.find(m=>Ce(m)===f.tableAlias);if(!y)return;if(y.cteName!==null)return r?.get(y.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(y.appId)?.get(ge(y,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(ge(e.from,f.field))}else{let y=p.flatMap(m=>{if(m.cteName!==null){let g=r?.get(m.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let h=s.get(m.appId)?.get(ge(m,f.field));return h?[c(h,m.appId)]:[]});return y.length!==1?void 0:y[0]}if(!E)return;let R=f.tableAlias!==null?p.find(y=>Ce(y)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function ge(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Do(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??X(e);return{sortKind:pg(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function Zd(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 q(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function ef(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:X({fieldType:"__ID__"})};if(e==="_rid")return q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return q("number")}var dg=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?q("number"):q("string")}return dg.has(e.func)?q("number"):q("string")}function Bn(e,t){return e.type==="STRING"?q("string"):e.type==="ARRAY"?ef():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?q("number"):e.type==="STRING_FUNC"?nn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function zo(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&&_i(n(r.semantics),n(t.semantics)))?e.every(i=>_i(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?ef("KSQL_MIXED_UNSUPPORTED"):it()}function vl(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 q("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return q("string");if(e.type==="STRING_FUNC")return nn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),zo(n)}function fg(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 Bo(e,t,n,r,i,o=!1){let a=new Map;fg(e)&&await Promise.all(_l(e).map(async R=>{if(a.has(R.appId))return;let y=await ee(R.appId,n,r);a.set(R.appId,new Map(y.map(m=>[m.code,m])))}));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 m=s.find(g=>Ce(g)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let h=a.get(m.appId)?.get(ge(m,R.field));return h?nt(h,m.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 m=a.get(e.from.appId)?.get(ge(e.from,R.field));return m?nt(m,e.from.appId):Jt(R.field)}let y=s.flatMap(m=>{if(m.cteName!==null){let S=i?.get(m.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(m.appId)?.get(ge(m,R.field)),g=h?nt(h,m.appId):Jt(R.field);return g?[g]:[]});return y.length===1?y[0]:void 0},p=R=>{if(!l)return;let y=s.filter(m=>{if(R.tableAlias!==null&&Ce(m)!==R.tableAlias)return!1;let h=ge(m,R.field);return a.get(m.appId)?.has(h)===!0||Jt(R.field)!==void 0});return y.length===1?y[0].appId:void 0},c=(R,y)=>{let m=p(y);return R&&m!==void 0?{...R,publicSourceApp:m}:R},u=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 y=Ye(R),m=c(d(y),y);m&&u.set(R,m)}return u}if(f)for(let R of t){let y=Ye(R),m=c(d(y),y);m&&u.set(R,m)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,y)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[y];if(!m)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=q("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=q("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(h=vl(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")h=q("number");else if(R.type==="GROUPING_COL")h=q("number");else if(R.type==="LITERAL_COL")h=q("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?h=nn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?h=q("number"):g.type==="FIELD"?h=d(g):h=q("string")}else if(R.type==="STRFUNC_COL")h=nn(R.expr);else if(R.type==="WINDOW_COL")h=q("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=zo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=it());h&&u.set(m,h)}),u}function tf(e,t){let n=Ee.get(e),r=Ee.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 p=zo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=p;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Ul(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(p=>Ce(p)===s.tableAlias);return!d||d.cteName!==null?void 0:Do(d,s.field)??t.get(d.appId)?.get(ge(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Do(e.from,s.field)??t.get(e.from.appId)?.get(ge(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let p=Do(d,s.field)??t.get(d.appId)?.get(ge(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var nf=new WeakSet,rf=new WeakMap;function Eg(e){return nf.add(e),e}function Rg(e,t){return rf.set(e,t),t}function of(e,t){if(t.capability!=="EXACT_PUSHDOWN"||e.columns.length!==1)return!1;let n=e.columns[0];return n?.type!=="AGGREGATE"||n.func!=="COUNT"||n.distinct||n.arg.type!=="WILDCARD"?!1:!e.distinct&&ne(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function mg(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function yg(e,t){let n=e.columns[0];if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":G(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new tn;if(!mg(i.totalCount))return null;let o=n.alias??"COUNT(*)";return{type:"SELECT",rows:[{[o]:i.totalCount}],columns:[o],rowCount:1,warnings:[]}}async function hg(e,t,n,r,i,o=!0,a,s,l){let d=rf.get(e);if(nf.has(e)&&d!==void 0&&of(e,d)){let V=await yg(e,t);if(V!==null)return V}let p=n.maxRecords??1e4,c=new Set,u=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,r,i),Qr(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([qo(e,t,r),Dl(e,t,r),Qd(e,t,r,i)]),y=Ul(e,E),m=await $n(e,t,r,i,Ze(e.having)||Nl(e)),h=Hd(e,m),g=Ll.get(e);if(g&&!kn(g.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=g??jo(e,f)??Tn(e,f);Ia(S);let P="joinPlan"in S?S:null,b=P&&kn(P.joinPlan)?P:null,L=t,I=S.mainCondition,v=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let w=s?s.prefilterWhere:b?null:I,D=b?.queriesByAlias.get(e.from.alias)??"",M=await bf(e.columns,t,n,r,i),N=Rt(e.where),_=N?Promise.resolve([]):Gr(e,e.from,L,p,u,!0,n.onLimitReached??"error",c,w,b?!1:o,l,D),A=[],C=[];for(let V of e.joins){if(N){A.push({join:V,promise:Promise.resolve([])});continue}let Te=V.table.alias?b?.queriesByAlias.get(V.table.alias)??"":"",ui=b?null:V.table.alias?v.get(V.table.alias)??null:null;ui!==null||Te!==""?A.push({join:V,promise:Gr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,ui,!0,l,Te)}):C.push(V)}let x=a?Promise.resolve(a):qr(e,t,r,i);x.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:V,promise:Te}of A)F.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let ui=await pf(e,V,F,L,p,u,n.onLimitReached??"error",c,null,l,"")??await Gr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(V.table.alias,ui)}));let{optionOrders:j,sortKinds:z,semantics:U}=await x,{rows:k,columns:$}=Ds({tables:F,stmt:e,scalarCache:M,optionOrders:j,sortKinds:z,orderSemantics:U,fieldTypeResolver:y.row,fieldSemanticsResolver:m,havingFieldTypeResolver:y.having,havingFieldSemanticsResolver:h,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:jr.get(e),plainGroupByPlan:l}),be=await Ml(e,k,$,t,r);return{type:"SELECT",rows:k,columns:be,rowCount:k.length,warnings:[...c]}}async function af(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?af(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,p=s.rows.map(E=>{let R={};return l.forEach((y,m)=>{R[y]=E[d[m]??y]??""}),R}),c=[...a.rows,...p],u=e.all?c:sf(c,l),f={type:"SELECT",rows:u,columns:l,rowCount:u.length};return i&&Ee.set(f,tf(a,s)),f}function sf(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 kl(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 Sf(t):s.query.type==="DESCRIBE"?l=await Tf(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:Ee.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 _o(e,t,r,i),e.type==="UNION"){let[d,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,u=p.columns,f=p.rows.map(m=>{let h={};return c.forEach((g,S)=>{h[g]=m[u[S]??g]??""}),h}),E=[...d.rows,...f],R=e.all?E:sf(E,c),y={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Ee.set(y,tf(d,p)),y}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 gg(e,t,n,r,i);return o&&Ee.set(l,await Bo(e,l.columns,t,i,r)),l}async function gg(e,t,n,r,i){await Yo(e,t,i,r);let o=jr.get(e),a=await Cl(e,t,i,r),s=new Set,l=k=>{if(k.alias!==null||k.cteName===null)return k;let $=Ce(k);return s.add($),{...k,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(k=>({...k,table:l(k.table)}))};let d=new Set;for(let k of[e.from,...e.joins.map($=>$.table)]){let $=Ce(k);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=k=>{let $=r.get(k);if(!$)throw new Error(`ArgumentError: materialized source ${k} is not available.`);return $};for(let k of[e.from,...e.joins.map($=>$.table)])k.cteName!==null&&p(k.cteName);let c=n.maxRecords??1e4,u=new Set,f=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,i,r),Qr(e.having,t,n,i,r),If(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),y=Mo(e)?(e.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:pe(e.where)}):null,m=jd(e,n,y),h=m.effectiveOptions,[g,S,P]=await Promise.all([qo(e,t,i),Dl(e,t,i),Qd(e,t,i,r)]),b=Ul(e,S),L=await $n(e,t,i,r,Ze(e.having)||Nl(e)),I=Hd(e,L),v=jo(e,g)??Tn(e,g);Ia(v);let w=t,D=await bf(e.columns,t,h,i,r),M=Promise.resolve(R);M.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let k=p(e.from.cteName);N.set(e.from.alias,k.rows.map(Id)),_.set(e.from.alias,k.columns)}else{let k=await Sd(m,()=>Gr(e,e.from,w,c,f,!0,h.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,k)}let A=e.joins.map(k=>Sd(m,async()=>{if(k.table.cteName!=null){let $=p(k.table.cteName);N.set(k.table.alias,$.rows.map(Id)),_.set(k.table.alias,$.columns)}else{let $=k.table.alias?v.joinConditions.get(k.table.alias)??null:null,V=await pf(e,k,N,w,c,f,h.onLimitReached??"error",u,$,a)??await Gr(e,k.table,w,c,f,!1,h.onLimitReached??"error",u,$,!0,a);N.set(k.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await M,F=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:z}=Ds({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:x,orderSemantics:O,fieldTypeResolver:b.row,fieldSemanticsResolver:L,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:I,aggregateSortKindResolver:P,appliedKlikes:v.appliedKlikes,sourceColumns:F,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Ml(e,j,z,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function Ml(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 ee(e.from.appId,r,i);return Dp(o,e.from.subtableCode,()=>Jo(e.from.appId,r,i))}function Id(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,p,c=""){let u=Kt(e,t,p),f=m=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${m} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Tl(n,t.appId)};if(!t.subtableCode){let m=o&&d?Uu(e,t.appId).query:"",h=[l!==null?G(l):"",c].filter(b=>b!==""),g=h.length>1?h.map(b=>`(${b})`).join(" and "):h[0]??"",S=m&&g?`(${m}) and (${g})`:m||g;return(await Ge(n.getRecords,t.appId,S,u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let y=(await Ge(n.getRecords,t.appId,"",u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Yp(y,t.subtableCode)}var lf=50;function Ag(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function al(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Ag(n):n))}function ti(e,t){let n=e.raw.get(al(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(rn(t,e.numericKey))}async function ni(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(y=>o.get(y)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(y,m,h)=>{let g=y.get(m);(g===void 0||h>g)&&y.set(m,h)},c=(y,m)=>{p(d.raw,al(y),m),l.some(Boolean)&&p(d.normalized,rn(y,l),m)},u=new Set,f=[],E=new Set;for(let y of n){let m=al(y);E.has(m)||(E.add(m),y.some(h=>h==="")?f.push(y):u.add(y[0]))}let R=["$id",...t];for(let y of Gn([...u],lf)){let m=`${t[0]} in (${y.map($o).join(",")})`,h=await Ie(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(P=>uf(g[P]?.value)),S)}}for(let y of f){let m=t.map((g,S)=>`${g} = ${$o(y[S])}`).join(" and "),h=await Ie(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(y,Sg(h))}return d}function Sg(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 uf(e){return typeof e=="string"?e:e==null?"":String(e)}function $o(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 cf=50,Tg=6,wd=cf*Tg;async function pf(e,t,n,r,i,o,a,s,l=null,d,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,u=t.on.right.tableAlias;if(!c||!u)return null;let f,E,R;if(c===t.table.alias&&u!==t.table.alias)f=u,E=t.on.right.field,R=t.on.left.field;else if(u===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let y=n.get(f);if(!y)return null;let m=new Set;for(let I of y){let v=I[E]?.value,w=uf(v).trim();w.length>0&&m.add(w)}let h=[...m];if(h.length===0)return[];if(h.length>wd)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 ${wd} \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`),Tl(r,t.table.appId)},P=Gn(h,cf),b=[],L=new Set;for(let I of P){let v=`${R} in (${I.map($o).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),M=await Ge(r.getRecords,t.table.appId,D,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of M.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),b.push(N))}}return b}var sl=new Map,ll=new Map,ul=new Map,cl=new Map,pl=new Map,dl=new Map;function Fl(e){sl.delete(e),ll.delete(e),ul.delete(e),cl.delete(e),pl.delete(e),dl.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 ee(e,t,n){let r=Vn(cl,n,e);if(r)return r;let i=t.getFields(e);return Wn(cl,n,e,i),i}async function ot(e,t,n){let r=Vn(dl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(dl,n,e,i),i}async function Jo(e,t,n){let r=Vn(pl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(pl,n,e,i),i}async function xl(e,t,n){let r=await Jo(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ae(e,t,n){let r=Vn(sl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(sl,n,e,o),o}async function fl(e,t,n){let r=Vn(ll,n,e);if(r)return r;let i=await ee(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(ll,n,e,o),o}async function Ig(e,t,n){let r=await fl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function bd(e,t,n){let r=Vn(ul,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(ul,n,e,o),o}function wg(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 bg(e,t,n,r){let i=wg(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 u=await ee(c,t,n);return[c,new Map(u.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(ge(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(ge(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let y=r?.get(f.cteName),m=y?.columns.includes(c.field)?y.columnMeta?.get(c.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(ge(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=q("number");else if(c.type==="GROUPING_COL")u=q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=q("string");else if(c.type==="STRFUNC_COL")u=nn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=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)),u=zo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=vl(c.arg,l)):u=c.func==="GROUP_CONCAT"?q("string"):q("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(Ye(c))?.semantics;if(!u){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,X({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Jo(u.source.appId,t,n);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}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([Pg(e,t,n),Ng(e,t,n),bg(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Pg(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 fl(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 fl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function Ng(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 bd(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 bd(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function df(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 Cg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Og(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||Cg.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 ee(e,n,r);return Og(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 on(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??"",p=Pe(d,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function Lg(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",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return aA(e,a,o)}async function _g(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await ff(e,t,n,r,i);return lA(e,a,o)}async function ff(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(y=>[y.code,y.fieldType])),s=gf(e),l=new Set;for(let y of s){let m=rn(y,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(m))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(m)}let d=await ni(e.appId,e.keyFields,s,t,n,a),p=s.map(y=>ti(d,y)),c=new Map,u=[...new Set(p.filter(y=>y!==void 0))],f=["$id","$revision",...o.filter(y=>!y.inSubtable&&y.fieldType!=="FILE").map(y=>y.code)];for(let y of Gn(u,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${y.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of m.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,h)}}let E=p.map((y,m)=>({sourceRowIndex:m,...y===void 0?{}:{targetId:y,snapshot:c.get(y)}})),R=await tp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Dg(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",Se),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=ds(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Xo(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await ap(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function vg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await ff(e,t,n,r,1),o=fs(i);if(n.confirm){let s=Xo(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await sp(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 Ug(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 Xo(e,t=!0){let n=e.branches.find(u=>u.branch==="insert"),r=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=Ug(n?Lo(n):[],r?Lo(r):[]),a=kg(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+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:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.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(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let u=Lo(n),f=Lo(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:u.reduce((E,R)=>E+R.appendRows,0),tables:u},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 Lo(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 kg(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 Kl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Lg(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return _g(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await hf(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Bl(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 Bl(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(_=>_.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,c=await je(e.appId,p,t,r);e.type==="UPDATE"&&await xn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=jp(E),y=(await Mg(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),m=y.filter(_=>_.mode==="update"),h=e.type==="UPDATE"?Kg:e.type.startsWith("UPSERT")?_=>Bg(_,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=m.length>0&&g!==void 0,P=new Map;if(S){rs(m,p,c);let _=await g({appId:e.appId,candidates:m,fields:R}),A=new Map;for(let C of m){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let x=_.get(C.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=qp(x,C.record??{});A.set(C.rowNumber,O)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of m){let x=A.get(C.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);P.set(C.rowNumber,Yt(x,E,f,o,C.rowNumber,l))}}let b=is(y,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:L,invalidRows:I,invalidRowNumbers:v}=b;if(S){let _=new Map(b.candidateResults.map(A=>[A.rowNumber,A]));L=[],v=new Set;for(let A of y){let C=_.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...F),F.length>0&&v.add(A.rowNumber);continue}let x=P.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=zp({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:C.preErrors,postImageErrors:x.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let F of O.invalidRowNumbers)v.add(F)}I=v.size}let w=[...d,...On],D={type:"VALIDATION",operation:l,validatedRows:y.length,validRows:y.length-I,invalidRows:I,errorCount:L.length,columns:w,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},M=new Map;for(let _ of d){if(_==="$id"){M.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&M.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)M.set(_,q(N.has(_)?"number":"string"));return sn.set(D,M),{result:D,candidates:y,invalidRowNumbers:v,columnMeta:M}}async function El(e,t,n,r,i,o){let a=await Bl(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 le(E,d.length)}let p={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 y=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(y.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}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,...p}}let c=d.filter(E=>E.mode==="create"),u=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(y=>y.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function Mg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return xg(e,n,r,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")Pd(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),an(e,u),l=e.values.map(S=>S.map((P,b)=>P.type==="CASE_VALUE"?Lt(P.expr,{},a.get(e.fields[b])?.fieldType):P));else{let S=await Gl.materialize(e,n,r,i,o,[...a.values()]),P=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!P&&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(P&&new Set(S.columns).size!==S.columns.length)throw fe("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");Pd(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let b=S.columnMeta;u=new Map(S.columns.map(L=>{let I=b?.get(L),v=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,v]})),an(e,u),l=S.rows.map(L=>S.columns.map(I=>L[I]??""))}let f=l.map((S,P)=>({rowNumber:P+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,L)=>p&&!p[P]?.has(b)?[]:[[b,S[L]]])),preErrors:[...c?.[P]??[]],record:{},evaluationRow:d?.[P]??Object.fromEntries(e.fields.map((b,L)=>[b,ze(S[L])])),evaluationFieldTypes:u}));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,P])=>[S,P.fieldType])),R=f.map(S=>e.keyFields.map(P=>ze(S.payload.get(P)))),y=e.keyFields.map(S=>E.get(S)==="NUMBER"),m=new Map;for(let S of R){let P=rn(S,y);m.set(P,(m.get(P)??0)+1)}let h=Ho.has(e);if(h&&[...m.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,P)=>{let b=R[P],L=ti(g,b);S.mode=L===void 0?"create":"update",L!==void 0&&(S.targetId=L),e.keyFields.forEach((I,v)=>{b[v]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(m.get(rn(b,y))??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 $l(e){return e.checkGroups?Nn(e.checkGroups):[]}function Pd(e,t){let n=new Set(t);for(let r of $l(e)){if(r.tableAlias!==null)throw fe(`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 fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Fg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function an(e,t){if(e.checkGroups)for(let n of Tc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Fg.has(i??""))throw fe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function xg(e,t,n,r,i,o){if(e.from)return Gg(e,e.from,t,n,r,i,o);await wf(e.assignments,t,n,r);let a=await Ae(e.appId,t,r),s=Ef(e,a);an(e,Rl(a,e.appId));let l,d=new Map,p=new Map;if(Bi(e)){let c=$a(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=vo(f.records),d=p,l=Va(e,f.records,a).flatMap(E=>E.records)}else{let c=dr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=vo(f.records),d=p,l=fr(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=vo(u.records),l=fr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await to(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=fr(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+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:p.get(c.id),evaluationRow:$g(d.get(c.id),e.appId),evaluationFieldTypes:Rl(a,e.appId)}))}function vo(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 Kg(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 Bg(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,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,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 Ef(e,t){if(e.from)return[];let n=new Set;for(let r of $l(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw fe(`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 fe(`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 Rl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Gg(e,t,n,r,i,o,a){let s=await Df(e,t,n,i,o);an(e,s.evaluationTypes);let l=await Rf(e,t,n,r,i,o,a),d=await Ae(e.appId,n,i),p=Ha(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?vo(l.map(f=>f.target)):new Map;return p.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:u.get(f.id),evaluationRow:$A(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Vg=lf,Wg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Rf(e,t,n,r,i,o,a){let s=await Hg(e,t,n,i),l=await Df(e,t,n,i,o),d=[...new Set(e.assignments.filter(P=>P.value.type==="SOURCE_FIELD").map(P=>P.value.type==="SOURCE_FIELD"?P.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await Yg(t,p,d,n,r,i,o),u=new Map,f=new Map;for(let P of c){if(!Object.prototype.hasOwnProperty.call(P,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=Nd(P[t.joinKeyField],s,"source");if(u.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);u.set(b,P),f.set(b,String(P[t.joinKeyField]).trim())}if(u.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...cA(e),...l.targetFields,...a??[]])],y=t.targetFilter===null?"":dr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],h=new Set,g=0;for(let P of Gn([...f.values()],Vg)){let b=`${t.targetJoinField} in (${P.map($o).join(",")})`,L=y?`(${b}) and (${y})`:b,I=await Ge(n.getRecords,e.appId,L,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 v of I.records){let w=v.$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),m.push(v))}}let S=[];for(let P of m){let b=P[t.targetJoinField]?.value,L=Nd(b,s,"target");if(L===null)continue;let I=u.get(L);I!==void 0&&S.push({target:P,source:I})}return S}async function Hg(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(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 Yg(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ae(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 p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(Wg.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>dt(p,null))}function Nd(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 Bl(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 le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+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(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+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})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.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:p,updatedCount:d.length}}async function jg(e,t,n,r){if(e.applyBlocks?.length)return Dg(e,t,n,r);if(e.checkGroups?.length)return ri(e,t,n,r);if(e.subtableCode)return fA(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 Ae(e.appId,t,r),s=Ki(e,a);on(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function qg(){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 mf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=ed(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(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode));if(e.replaceSubtables.some(k=>!U.has(k)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let k of e.targets.filter($=>$.kind==="SUBTABLE"))if(!k.rowIdSourceHeader||!e.replaceSubtables.includes(k.subtableCode))throw new Error(`ArgumentError: CSV subtable ${k.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,u=await ee(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=u.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await bo(o,new Map),y=e.source.kind==="JSON"?od(e.source,R,c,n.maxRecords??1e4):ad(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=cd(y,c,u,E,m);if(e.source.kind==="CSV")return zg(e,y,h,u,t,n,i);Ws(h,e.rejectLimit);let g=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Ys(h.errors,g),P=[...g,...Hs],b=h.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-b,invalid:b,mutationCandidates:h.parents.filter(U=>U.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:m,validatedRows:h.parents.length,validRows:h.parents.length-b,invalidRows:b,errorCount:S.length,columns:P,errors:S,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,P,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return I;if(dd(y),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,P,S,n.tempTableMaxRows??Fe,new Map)}let v=h.parents.filter(U=>U.valid),w=new Map(u.map(U=>[U.code,U.fieldType])),D=v.map(()=>{});if(e.keyFields){for(let V of e.keyFields)if(!e.fields.includes(V))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${V}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(V=>w.get(V)==="NUMBER"),k=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(k.has(Te))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");k.add(Te)}let be=await ni(e.appId,e.keyFields,$,t,n,w);$.forEach((V,Te)=>{D[Te]=ti(be,V)})}let M=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),N=new Map,_=D.filter(U=>U!==void 0);for(let U of Gn([...new Set(_)],100)){let k=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...M]});for(let $ of k.records){let be=Number($.$id?.value),V=Number($.$revision?.value);Number.isFinite(be)&&N.set(be,{id:be,...Number.isFinite(V)?{revision:V}:{},record:$})}}let A=fd(v,D,N),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(k=>k.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 le(e.keyFields?"UPDATE":"INSERT",A.length)}let x=U=>new Map(Object.entries(U).map(([k,$])=>[k,$.value])),O=U=>pd(x(U.top),new Map([...U.subtables].map(([k,$])=>[k,$.map(be=>({values:x(be)}))]))),F=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),z=[];for(let U=0;U<F.length;U+=100){let k=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});z.push(k.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(k=>({id:k.targetId,...k.revision===void 0?{}:{revision:k.revision},record:O(k)}))});return e.keyFields?{type:"UPSERT",insertedCount:z.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:z,insertedCount:z.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 Jg(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:qg(),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};Ho.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 Kl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,sn.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",El(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?Yl(s,t,n,r,i):Vl(s,t,n,r,i));return d(p)}async function zg(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Ed(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=zs(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(r.filter(N=>!N.inSubtable&&N.fieldType==="SUBTABLE").map(N=>N.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let N of c){let _=Number(N.$id?.value),A=Number(N.$revision?.value);if(Number.isFinite(_)){u.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:N});for(let C of p){let x=N[C]?.value;if(Array.isArray(x)){for(let O of x)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:C}),f.set(O.id,F)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let x of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[_].top});let C=E[_];return C!==void 0&&!u.has(C)&&A.push({operation:"UPDATE",parentRow:N.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...N,valid:A.length===0,errors:A}}),y=Rd(t.records,R,E,u,f),m=y.flatMap(N=>[...N.errors]),h=new Set(y.filter(N=>!N.valid).map(N=>N.parentRow)),g={...n,parents:R,errors:m,invalidParentRows:h};Ws(g,e.rejectLimit);let S=y.filter(N=>N.valid),P=y.flatMap(N=>N.tables),b=(N,_)=>P.filter(A=>A.table===N).reduce((A,C)=>A+Number(C[_]),0),L=Object.fromEntries(d.map(N=>[N,{existingRows:b(N,"existingRows"),inputRows:b(N,"inputRows"),updateRows:b(N,"updateRows"),addRows:b(N,"addRows"),deleteRows:b(N,"deleteRows"),rowIdNotFound:b(N,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(N=>N.tables.some(_=>_.deleteRows>0)),totalDeleteRows:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.deleteRows,0),rowIdNotFound:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.rowIdNotFound,0),invalidParents:h.size,parents:S.map(N=>({parentRow:N.parentRow,mode:"UPDATE",targetId:N.targetId,tables:N.tables}))},v=[...new Set(e.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children))],w=Ys(m,v),D=[...v,...Hs];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,D,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:D,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:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let N=m[0];throw new Error(`DmlValidationError: ${N.code} ${N.message} (row=${N.parentRow}, field=${N.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,D,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 le("UPDATE",S.length)}let M=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=js(M(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:M(x.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:N.targetId,...N.revision===void 0?{}:{revision:N.revision},record:_}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function Jg(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 bo(t,new Map),d=$s(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=zs(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let v=f.slice(I,I+100),w=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let D of w.records){let M=D.$id?.value;typeof M=="string"&&M!==""&&u.add(M.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"])),y=d.rows.map((I,v)=>{let w=c.normalized[v],D=[...d.importRowErrors?.[v]??[],...c.errors[v]];return w!==null&&!u.has(w)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...w!==null&&u.has(w)?{targetId:Number(w)}:{},payload:new Map([[e.recordNumberSourceHeader,p[v]],...e.fields.map(M=>[M,I[M]??""])]),preErrors:D,record:{},evaluationRow:I,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],h=is(y,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),g=[...m,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:y.length,validRows:y.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 P=y.filter(I=>!h.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(P.length,"UPDATE"))throw new le("UPDATE",P.length);let b=P.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<b.length;I+=100)await n.putRecords({app:e.appId,records:b.slice(I,I+100)});let L={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function Xg(e,t,n,r,i,o){let a=Ho.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:Ee.get(R)}}let s=await bo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Bs(a.source,s,p,l):$s(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=md(a.source.projection),f=new Map(i??[]);f.set(qs,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Ee.get(E)}}var Gl={materialize:Xg};function yf(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 Vl(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 Gl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(yf(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 le("INSERT",l.length);let p=await Ae(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((y,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(y))return;let h=f[d[m]]??"";R[y]={value:df(h,p.get(y))}}),R});c.forEach(f=>on([f],e.fields.filter(E=>E in f),o,a));let u=[];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});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function ml(e,t,n,r,i){if(e.applyBlocks?.length)return hf(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(y=>y.field),t,r);await yt(e.appId,e.assignments.map(y=>y.field),E,t,r);let R=await Ae(e.appId,t,r);return Ef(e,R),an(e,Rl(R,e.appId)),await xn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ri(e,t,n,r,i);if(e.subtableCode)return await xn(e,t,r),EA(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 xn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return uA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await wf(e.assignments,t,n,r);let d=await Ae(e.appId,t,r);if(Bi(e)){let E=$a(e),y=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=Va(e,y,d);if(on(m.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(y.length,"UPDATE"))throw new le("UPDATE",y.length);for(let h of m)await t.putRecords(h);return{type:"UPDATE",updatedCount:y.length}}let p=dr(e),u=(await to(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=fr(e,u,d);if(on(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new le("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function hf(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 Qg(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=Gi(e,o),l=Xa(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 p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Yi(d.records[0]);let c=Kc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Je(o,e.assignments.map(P=>P.field)),f=Ht(c.postImage,u)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,u,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),y=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),m=c.parentRows>R||c.changedSubtableRows>y;if(e.validateOnly){let P=Ir({plans:[c],records:yr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:y,wouldExceed:m}}),b={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(P.branches[0]),guards:Xr(P.branches[0]),deletedRows:{total:c.tables.reduce((L,I)=>L+I.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:P};return sn.set(b,Qo(E.columns,o,e.appId)),b}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>y)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${y}).`);let h=Wi(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:y,wouldExceed:m}});if(n.confirm){let P=Xo(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:P,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function Qg(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",ht),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),s=await ee(e.appId,t,r),l=pt(e,s),d;if(Go(e))d=await nA(e,t,n,s,r);else{let f=Gi(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 p=await Ji({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return sA(e,p,s);Tu("phase15b",e);let c=Ir(p);if(n.confirm){let f=Xo(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",p.guards.parentRows)}let u=await op(p,t,c);return{...u,diagnostic:Ue(c,u)}}function Go(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||pe(e.where))}function Zg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Go(t)&&pe(t.where)}var eA=`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(`
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
- `),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);})();
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 tA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${eA}`)}async function nA(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=As(e.where,{fieldTypes:s,fieldOptions:l});tA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(Gi(e,r));for(let E of rA(e.where))c.add(E);let u=await iA(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>te(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function rA(e){return Pl(e)}async function iA(e,t,n,r,i){let s=[...oA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await xl(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Pn(X({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let u=c.semantics??X(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return Pn(f,e,c.code)}}}function oA(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 aA(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(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=ds(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 sn.set(d,Qo(o,n,e.appId)),d}function sA(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,p)=>d+(p.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,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return sn.set(l,Qo(a,n,e.appId)),l}function lA(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=fs(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Jr(d),u=Jr(p),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,...u],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:u,guards:Xr(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((y,m)=>y+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,Qo([...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,Se=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 Qo(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:X({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,q(i.has(a)?"number":"string"))}return o}async function uA(e,t,n,r,i,o){let a=await Rf(e,t,n,r,i,o),s=await Ae(e.appId,n,i),l=Ha(e,a,s),d=e.assignments.map(u=>u.field),p=await ee(e.appId,n,i),c=await yt(e.appId,d,p,n,i);if(on(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let u of l)await n.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function cA(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 pA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return RA(e,t,n,r);let i=_c(e),a=(await to(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 le("DELETE",a.length);let s=Dc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function dA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return vg(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 Ae(e.appId,t,r),d=gf(e),p=await ni(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((y,m)=>{let h=u[m];h.type==="CASE_VALUE"?E[y]={value:Lt(h.expr,{},l.get(y))}:E[y]={value:ct(h,l.get(y))}});let R=ti(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),on([...a,...s.map(u=>u.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await n.confirm(u,"UPDATE"))throw new le("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function gf(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"?H(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Wl(e,t,n,r){if(t.length===0)return;let i=await Ae(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 fA(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=Zo(a),l=new Map;for(let p of e.values){let c=Cd(p[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,y)=>{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:Cd(p[y])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...ii(u,i),...c];d.push(Af(e.appId,p,oi(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function EA(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 u of e.assignments)u.value.type==="CASE_VALUE"&&xo(u.value.expr,o);let a=await Wl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Hl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.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=p.get(u.parentId);f||(f=new Map,p.set(u.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:$i(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=Zo(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let y=ii(E,i).map(m=>{let h=m.id??"";if(!h)return m;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(mA(e.appId,u,oi(E),i,y))}return{type:"UPDATE",updatedCount:d.length}}async function RA(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 Wl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Hl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=Zo(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=ii(E,i),y=new Set(f),m=R.filter((h,g)=>!y.has(g));await t.putRecords(Af(e.appId,u,oi(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function Zo(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Hl(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={...Vi(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=yl(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 Af(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function mA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function yA(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 Cd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function yl(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 hA(e,t,n,r){let i=[];Et(e.where,i);let o=await Wl(e.appId,i,t,r),a=await ee(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??X(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}),p=Hl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&te(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let u=Zo(d);for(let f of c){let E=u.get(f);if(!E)continue;let y=ii(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:gA(E,e.subtableCode,h,g)}));y.sort((h,g)=>AA(h.flat,g.flat,e.by,l));let m=y.map(h=>h.row.id??"");await t.putRecords(yA(e.appId,f,oi(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:c.size}}function gA(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}`]=yl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=yl(a?.value);return i}function AA(e,t,n,r){for(let i of n){let o=Od(i.key,e),a=Od(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"?nn(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 Od(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Yl(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 Gl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(yf(s),d.length!==e.fields.length){let m=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${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await Ae(e.appId,t,r),f=l.map((m,h)=>{let g={};return e.fields.forEach((S,P)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let b=m[d[P]]??"";g[S]={value:df(b,u.get(S))}}),g});f.forEach(m=>on([m],e.fields.filter(h=>h in m),o,a));let E=f.map(m=>e.keyFields.map(h=>String(m[h]?.value??"")));if(Ho.has(e)){let m=e.keyFields.map(g=>u.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=rn(g,m);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,u);if(f.forEach((m,h)=>{let g=ti(R,E[h]);g!==void 0?c.push({id:g,record:m}):p.push(m)}),n.confirm&&p.length+c.length>0){let m=p.length+c.length;if(!await n.confirm(m,"UPDATE"))throw new le("UPDATE",m)}let y=[];for(let m=0;m<p.length;m+=100){let h=await t.postRecords({app:e.appId,records:p.slice(m,m+100)});y.push(h.ids)}for(let m=0;m<c.length;m+=100)await t.putRecords({app:e.appId,records:c.slice(m,m+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:c.length}}async function Sf(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 Tf(e,t,n){let r=await ee(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 SA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return mn("phase15b",r),$e(r),r}catch(n){throw n instanceof ye||n instanceof T,n}}async function Qr(e,t,n,r,i){let o=[];Uo(e,t,n,r,o,i),await Promise.all(o)}async function If(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 Uo(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":Uo(e.left,t,n,r,i,o),Uo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Uo(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 wf(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 bf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=Wr(p.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,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var Pf=new WeakMap,Nf=new WeakMap,Cf=new WeakMap;async function Of(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async y=>(o.add(y),t.getFields(y)),getProcessStatuses:async y=>(a.add(y),t.getProcessStatuses(y)),getNumberPrecision:async y=>(s.add(y),t.getNumberPrecision(y))},d=new Map,p=new Map,c=new Map,u=new Set,f=i??await ei(e,l,n),E=y=>f.nodes.find(m=>m.source===y||JSON.stringify(m.source)===JSON.stringify(y)),R=async y=>{if(y===null||typeof y!="object"||u.has(y))return;if(u.add(y),Array.isArray(y)){await Promise.all(y.map(R));return}let m=y;if(m.type==="SELECT"){let h=y;await Yo(h,l,n);let g=[h.from,...h.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ne(h).type==="PLAIN"&&!g){let w=await Cl(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 b=await Yr(h,l,n),L=E(h);if(b.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(b)}).`);d.set(h,b);let v=Ll.get(h)??jo(h,await qo(h,l,n));if(v&&Pf.set(h,v),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 D of w.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Mo(h)&&!g&&L?.allowed!==!1){let D=b.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN";p.set(h,(h.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:h,staticMode:D,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:pe(h.where)}))}}}else if(m.type==="VALIDATE"){let h=y;o.add(h.appId);let g=await ee(h.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),P=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),b=ls(h,g),L=Nn(h.checkGroups??[]),I=Pl(h.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!P.has(A.field))throw fe(`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)&&P.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)&&!P.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${h.appId}.`);if(A!=="$id"&&!S.has(A)&&P.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 v=new Map([...S].map(([A,C])=>[A,C.fieldType]));v.set("$id","RECORD_NUMBER"),an(h,v);let w=Ne(h.where,A=>A.field==="$id"?X({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?X(S.get(A.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(w)}).`);let D=new Map([...S].map(([A,C])=>[A,C.fieldType])),M=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=h.where===null?null:w.capability==="EXACT_PUSHDOWN"?h.where:An(h.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:M,allowKlike:!1}),_=b.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(h.appId),await ot(h.appId,l,n)),Nf.set(h,{targetFields:b.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...b.map(A=>A.subtableCode??A.field.code),...I,...L.map(A=>A.field)])],subtables:new Map([...new Set(b.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,b.filter(C=>C.subtableCode===A).length])),capability:w,prefilter:N,numberPrecision:_})}else if(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(y.appId),m.type==="UPDATE"&&y.applyBlocks?.length){let g=y,S=await ee(g.appId,l,n);if(pt(g,S),Go(g)){let P=S.filter(L=>!L.inSubtable),b=As(g.where,{fieldTypes:new Map(P.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(P.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});Cf.set(g,b)}}let h=y;(h.type!=="UPDATE"||!Go(h))&&E(h)?.allowed!==!1&&await xn(h,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let y=wt(e),m=await Yr(y,l,n),h=E(y);if(m.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);if(d.set(y,m),Mo(y)&&h?.allowed!==!1){let g=await qr(y,l,n);p.set(y,(y.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:y,staticMode:m.capability==="EXACT_PUSHDOWN"?_e(y):"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:pe(y.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function hl(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 TA(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 Ld(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)} ${TA(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 gl(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=J(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?IA(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=Zs(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Qs(d)}: ${d}`,` ${el(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(J)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!J(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=Zs(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Ld(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${Qs(l)}: ${l}`,` ${el(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${_d(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=Zs(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Ld(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${Qs(l)}: ${l}`,` ${el(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${_d(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!J(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 IA(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,p=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||p)&&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 Qs(e){return J(e)?"relative date function":"kintone function"}function Zs(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 el(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function _d(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Lf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Se){let d=Al(r);try{let p=Gd(e,a),c=_a(p);Es(p,n);let u=new Map,f=[];for(let E=0;E<p.length;E++){let R=p[E],y=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:ko(R.expr,u)}:R:ko(R,u);$e(y);let m=await ei(y,t,d),h=await Of(y,t,d,i,m),g=m.hasServerOnlyWhereFunction&&!m.allowed?gl(m):[...gl(m),..._f(wA(y,c.statements[E],h.capabilities,h.orderPlans,s,l),o)],S=hl(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")&&u.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(P=>({type:"string",value:P.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:p.length,statements:f}}finally{Fl(d)}}function wA(e,t,n,r,i=100,o=Se){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=Vo(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 p=Vo(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...Kr(l.query,p,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ea(e,void 0,n,r,i,o):Kr(e,t,n,r)}function Vo(e){if(Array.isArray(e))return e.some(Vo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Vo)}return!1}function Kr(e,t,n,r){if(t.tempTablesReferenced.length===0)return ea(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 bA(e,t,n,r,i,o=100,a=Se,s){let l=s??await ei(e.query,t,n),d=await Of(e.query,t,n,r,l),p=gl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...hl(d),...p]:[...hl(d),...p,..._f(ea(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function _f(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 ea(e,t,n,r,i=100,o=Se,a=1e4,s){if(e.type==="UNION")return NA(e,n,r,s);if(e.type==="WITH")return CA(e,n,r,s);if(e.type==="INSERT")return _A(e,t,i,o);if(e.type==="INSERT_SELECT")return DA(e,t,n,r,s);if(e.type==="UPSERT")return MA(e,t,i,o);if(e.type==="UPSERT_SELECT")return FA(e,t,n,r,s);if(e.type==="UPDATE")return vA(e,t,n,r,i,o,a);if(e.type==="DELETE")return kA(e,t);if(e.type==="REORDER")return xA(e,t);if(e.type==="VALIDATE")return PA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=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",...p.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(p=>p.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 PA(e,t){let n=Nf.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)":G(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?bl:wl).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,o=!0){let a=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&of(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=OA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(h=>h.code));let u=[],f=lp(e,jr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${p}`),f&&(u.push(` grouping source: ${f.source}`),u.push(` grouping sets: ${f.expandedSetCount} (limit: ${f.setLimit})`),u.push(` grouping items: ${f.groupingItemCount} (limit: ${f.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${f.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let E=ne(e);if(E.type==="PLAIN"){let h=E.allItems;if(l)l.items.forEach((g,S)=>{let P=h[S];P?.type==="FIELD_NAME"&&g.kind==="PHYSICAL"&&u.push(` group key ${P.name}: PHYSICAL (source=${g.sourceIndex}, field=${g.fieldCode})`)});else if([e.from,...e.joins.map(g=>g.table)].some(g=>g.cteName!==null))for(let g of h)g.type==="FIELD_NAME"&&u.push(` group key ${g.name}: DEFERRED (materialized schema unavailable)`)}if(d){let h=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${h}${h?" ":""}limit 1`),u.push(" fields: $id"),u.push(" fetch API: GET records.json (totalCount=true)"),u.push(" REST execution: single GET"),u.push(" record limit: maxRecords/onLimitReached not applied"),u.push(" fallback: full record scan when totalCount is missing or invalid"),u.push(" search abort: fail-closed (SearchAbortedError)"),u}s?(u.push(` order plan: ${s.kind}`),s.reasonCodes.length>0&&u.push(` order reason: ${s.reasonCodes.join(", ")}`),s.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):s.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: ${s.scanRows}`))):f&&u.push(" order plan: CANONICAL_LOCAL");let R=s&&!s.requiresCompleteInput?{...e,orderBy:[]}:e,y=gt(R);s?.requiresCompleteInput&&y.add("LOCAL_ORDER");let m=Rt(e.where);if(y.size>0&&(!m||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...y].join(", ")}`),u.push(" onLimit=truncate: disabled")),m)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(p==="FULL_SCAN"&&c.length>0&&u.push(` reason: ${c.join(", ")}`),p==="SIMPLE"){let h=hi(s?.kind==="CANONICAL_REST_TOP_N"?Zd(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let g=s?.kind==="KORDER_CURSOR"?Ss(e):h.query;u.push(` kintone query: ${g||"(\u306A\u3057)"}`),u.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=Pf.get(e),g=h??Tn(e);if(e.joins.length>0)if(h){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)"),h.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Xt(h.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let N of h.joinPlan.rejections)u.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(_=>_.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${N}`)}let S=Kt(e,e.from,l),P=e.from.alias?` AS ${e.from.alias}`:"",b=g.mainCondition,L=zd(e),I=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,w=v||(b!==null?G(b):I||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),u.push(` kintone query: ${w}`);let D=h?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),M=h?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||M?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!h&&L!==null&&u.push(` pushdown candidate: ${G(L)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${S.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":S.join(", ")}`);for(let N of e.joins){let _=Kt(e,N.table,l),A=N.table.alias?` AS ${N.table.alias}`:"",C=N.type==="INNER"?"JOIN":`${N.type} JOIN`,x=N.table.alias?g.joinConditions.get(N.table.alias)??null:null,O=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?ir(e.where,{tableAlias:N.table.alias}):null,F=N.table.alias?h?.queriesByAlias.get(N.table.alias):void 0,j=F||(x!==null?G(x):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let z=h?.joinPlan.items.find(k=>k.targetAlias===N.table.alias),U=h?.joinPlan.serverFunctionConsumptions.find(k=>k.targetAlias===N.table.alias);z||U?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${z?.relation??"exact"}`)):!h&&O!==null&&u.push(` pushdown candidate: ${G(O)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return u.push(...LA(e,n,r,i)),u}function NA(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,!1))}),a}function CA(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,!1)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...ea(e.query,"[main]",t,n,100,Se,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function OA(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=ne(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 LA(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,!1))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1));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,!1)));return e.having&&a(e.having),i}function _A(e,t,n=ht,r=Se){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,...jl(Zi(e,n,r))]:a}function DA(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,!1)),o}function vA(e,t,n,r,i=100,o=Se,a=1e4){if(e.applyBlocks?.length)return UA(e,t,i,o,a);let s=Nc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Bi(e),p=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 u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=BA(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(` ${GA(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,void 0,!1)));return c}function UA(e,t,n,r,i){let o=Zi(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"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=Cf.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.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: ${p.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",...jl(o)]}function kA(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 MA(e,t,n=ht,r=Se){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,...jl(Zi(e,n,r))]:a}function jl(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 FA(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,!1)),o}function xA(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(KA).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 KA(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 G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function BA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Wo(n,t),n.type==="STRING_FUNC"&&Wo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Hr(n,t);return[...t]}function Wo(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"&&(Wo(e.left,t),Wo(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 Df(e,t,n,r,i){let o=$l(e),a=await Ae(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ae(t.appId,n,r),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw fe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw fe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw fe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],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 GA(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} = ${vf(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 vf(e){return`${Dd(e.left)} ${e.op} ${Dd(e.right)}`}function Dd(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"?H(e):e.type==="ARITH"?`(${vf(e)})`:"..."}var le=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 ce=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 ql(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 ce("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new ce("PARSE_ERROR",e,t)}function Uf(){let e=new tn;return new ce("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 ln(e){return e instanceof ce?e:e instanceof ye||e instanceof T?new ce("PARSE_ERROR",ai(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new ce("SEARCH_ABORTED",ai(e),e):e instanceof Oe||e?.name==="FetchAllLimitError"?new ce("FETCH_LIMIT_EXCEEDED",ai(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ce("CLIENT_ERROR",e.message,e.cause):VA(e)?new ce("CLIENT_ERROR",ai(e),e):new ce("EXECUTION_ERROR",ai(e),e)}function ta(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return ql(n,e.statementIndex,r.type)}return n}var WA=2,na=5,HA=3e4,YA=10*6e4+3e4,ra=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??WA;if(!Number.isSafeInteger(r)||r<1||r>na)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${na}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??HA,this.quarantineMs=n.quarantineMs??YA}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 co(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>na)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${na}.`)}};function jA(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function qA(e,t=r=>new Promise(i=>setTimeout(i,r)),n=jA){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 zA(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 kf(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 zA(qA(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Mf(e){return Ff(e,XA(e))}function Ff(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=QA(o.options),s=ZA(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ia(o.minValue),maxValue:ia(o.maxValue),minLength:ia(o.minLength),maxLength:ia(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!JA.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...Ff(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var JA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function XA(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 ia(e){return e==null||e===""?void 0:e}function QA(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 ZA(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function xf(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 eS="Filter aborted because of too many search results";function Kf(e){return e?.includes(eS)===!0}var Bf="/k/v1/records.json",oa="/k/v1/records/cursor.json",tS=4096,nS=2,zl=e=>kintone.api.url(e,!0);function rS(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(Bf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=tS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:zl(Bf),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
+ `));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 iS(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 oS(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(zl(e),t,n)}catch(r){throw si(r)}}function aS(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Jl(e={}){let t=e.cursorMaxActive??nS;aS(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=rS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await iS(l);let d=await l.json();return Kf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw si(s)}},async openCursor(a){let s=zl(oa),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 ra(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(),p;try{p=await n.runCreate(()=>un(oa,"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 po(R))}let c=p.id,u=kf(Number(p.totalCount),{get:()=>un(oa,"GET",{id:c}),delete:()=>un(oa,"DELETE",{id:c}),isAlreadyReleasedError:oS,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return Mf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return Yc(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:xf(s.states)}}}}var $f=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 sS(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 Uf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>p()),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,p){return $f.has(d)?sS(d):Reflect.get(l,d,p)},has(l,d){return $f.has(d)?!1:Reflect.has(l,d)}})}function lS(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=lS(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 Gf=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Vf=new Set([...Gf,"onLimitReached"]),uS=new Set([...Vf,"variables","tempTableMaxRows"]);function Wf(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function aa(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Hf(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 cS(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 Yf(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&&aa(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&aa(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(aa(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 Xl(e,t){Wf(e);let n=t==="run"?Vf:Gf;Hf(e.client);let r=Yf(e,n,t==="run"?"runQuery":"explainQuery");return{client:e.client,executeOptions:r}}function jf(e){Wf(e),Hf(e.client),e.variables!==void 0&&cS(e.variables),e.tempTableMaxRows!==void 0&&aa(e.tempTableMaxRows,"tempTableMaxRows");let t=Yf(e,uS,"runBatch");return{client:e.client,executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function sa(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0,limitReached:e?.limitReached??!1,limitReachedApps:e?[...e.limitReachedApps].sort((t,n)=>t-n):[]}}function pS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function dS(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 la(e,t=e.metrics){let n=vd(e);return{type:"query",rows:e.rows.map(pS),columns:e.columns.map(r=>dS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:sa(t)}}function qf(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function zf(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function Ql(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 Jf(e){if(e instanceof oe)return Hn(e.message,e);let t=ln(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function fS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return qf(e,{import:!0})}catch(t){let n=Jf(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 Xf(e){if(fi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function Qf(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return zf(e,{import:!0})}catch(t){throw Jf(t)}}function ES(e){let t=Xf(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!dn(t))throw Ke(`${n} statements are not read-only`);if(Ql(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!du(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Zf(e){let t=Xf(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!dn(n))throw Ke(`${n.type} statements are not read-only`);if(Ql(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 eE(e){let t=fS(e);return ES(t),t}function tE(e){let t=Qf(e);return t.forEach(Zf),t}function nE(e){let t=e.trim(),n=Qf(t);n.forEach(Zf);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 RS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new ce("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return ql(n,e.index,e.type)}async function Zl(e,t){let n=[];try{let r=jf(t);n=tE(e);let i=await jn(r.client,l=>$d(e,Yn(l),{...r.executeOptions,captureColumnMeta:!0})),o=i.statements.find(l=>l.status==="error");if(o!==void 0)throw RS(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(la(l.result,i.metrics))),d});return{type:"batch",batch:!0,statementCount:i.statementCount,statements:s,results:a,warnings:[]}}catch(r){throw ta(r,n)}}function rE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function eu(e,t){try{let n=Xl(t,"run"),i=eE(e).type==="VALIDATE"?{...n.executeOptions,onLimitReached:"error"}:n.executeOptions,o=await jn(n.client,a=>Sl(e,Yn(a),{...i,captureColumnMeta:!0}));return rE(o),la(o)}catch(n){throw ln(n)}}async function tu(e,t){let n=[];try{let r=Xl(t,"explain"),i=nE(e);if(n=i.statements,i.legacySql!==void 0){let s=await jn(r.client,d=>Sl(i.legacySql,Yn(d),r.executeOptions));rE(s);let l=s.rows.map(d=>String(d.plan??""));return{type:"explain",lines:l,text:l.join(`
13
+ `),metrics:sa(s.metrics)}}let o=await jn(r.client,s=>Lf(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:sa()}}catch(r){throw ta(r,n)}}var nu="3.32.0";var iE=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function mS(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return iE(e,t)?e[t]:void 0}})}function yS(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 oE(e,t,n,r=console){let i;if(e.ksql===void 0){i=mS();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(yS(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(iE(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 hS={version:nu,createReadonlyKintoneClient:Jl,explainQuery:tu,KsqlEngineError:ce,runBatch:Zl,runQuery:eu};oE(window,nu,hS);})();