@rex0220/kintone-sql-tools 3.49.0 → 3.51.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,16 +1,17 @@
1
- async function be(e,t,n,r,i={}){let o=i.pageSize??qE,a=Math.max(1,i.parallel??XE),s=i.maxRecords??JE,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 c=d??s,u=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,g=0,m=_u(n,R),y=await Lu(e,t,m,u,o,g);if(Ou(y,i),p.push(...y.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 Pe(E)}if(y.records.length<o)return p;for(g+=o,g>=La&&(R=Du(y.records),g=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 Pe(E)}let S=c-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),w=[];for(let N=0;N<I;N++){let _=g+N*o;if(_>=La)break;w.push(_)}let C=_u(n,R),b=await Promise.all(w.map(N=>Lu(e,t,C,u,o,N)));for(let N of b)Ou(N,i);let D=!1;for(let N of b){if(p.push(...N.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 Pe(E)}if(N.records.length<o){D=!0;break}}if(D)break;if(g+=o*w.length,g>=La){let N=b[b.length-1];R=Du(N.records),g=0}}return p}function Ou(e,t){e.searchAborted&&t.onSearchAborted?.()}function vu(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 qE=500,XE=1,JE=1e4,La=1e4;async function Lu(e,t,n,r,i,o){let a=QE(n,i,o);return e({app:t,query:a,fields:r})}function _u(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 QE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Du(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 Pe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var ZE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function eR(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 _e(e){let t=ZE.exec(e.trim());if(t===null)return null;let n=eR(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 tR(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 Uu(e){let t=_e(e);return t===null?null:tR(t)}function nR(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 bi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=nR(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Pi(e,t){let n=_e(e),r=_e(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return bi(n,r)}var Xe="__NO_FROM__";function _a(e){return e.windowKind!=="AGGREGATE"}function he(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Uu(t)??t}function ku(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 rR(e){return`${e.tableAlias??""}\0${e.field}`}function re(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=rR(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 Mu(e){return re(e).type!=="NONE"}function Fu(e,t){let n=re(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 c={...l,field:s};return r.set(c.canonicalId,c),c},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(c=>c.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 Oi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function St(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function iR(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 Da(e){return St(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function gn(e){return!Da(e)&&(iR(e.type)||St(e.type))}function xu(e){return gn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Ku=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ae(e,t){for(let n of t)e.add(n)}function Ni(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"&&Ku.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=>Ni(i,t)):Ni(r,t))}function Ci(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"&&!Ku.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>Ci(i,t)):Ci(r,t))}function At(e){let t=new Set;if(St(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ae(t,Rn(e));break;case"UNION":Ae(t,Gu(e));break;case"WITH":for(let n of e.ctes)Ae(t,At(n.query));Ae(t,At(e.query));break;case"CREATE_TEMP_TABLE":Ae(t,At(e.query));break;default:break}return Ni(e)&&t.add("STATISTICAL_AGGREGATE"),Ci(e)&&t.add("AGGREGATE"),t}function Bu(e){return At(e).size>0}function Gu(e){let t=e.left.type==="SELECT"?Rn(e.left):Gu(e.left);return Ae(t,Rn(e.right)),e.all||t.add("DISTINCT"),t}function Rn(e){let t=new Set,n=re(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ae(t,Rn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ae(t,En(i.condition));return Ae(t,En(e.where)),Ae(t,En(e.having)),Ni(e)&&t.add("STATISTICAL_AGGREGATE"),Ci(e)&&t.add("AGGREGATE"),t}function En(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")&&Ae(t,Rn(e.right.query));break;case"LOGICAL":Ae(t,En(e.left)),Ae(t,En(e.right));break;case"NOT":case"GROUP":Ae(t,En(e.expr));break;case"EXISTS":Ae(t,Rn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function $u(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Vu(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 Li=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Kt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Zn=new Set([...Kt,...Li]),Bt="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",lt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return Li.has(e)}function yn(e){return Kt.has(e)}function Ve(e){return Zn.has(e)}var oR=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})}),ka=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})}),er="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${er} scope does not support ${e}`)}function aR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function sR(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 An(e,t){return aR(e,()=>lR(t,oR[e]))}function lR(e,t){let n=sR(e);if(n===null)return;if(n.type==="UPSERT"){cR(n,t);return}let r=n.applyBlocks;if(va(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){pR(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"),dR(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`);Yu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)_i(i,"APPEND targets");hn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Wu(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")}hn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Wu(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 uR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ju(e,t){if(Yu(e),e.targetKind==="MULTI_VALUE"){if(!uR.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 va(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${er} scope allows only one block for table ${n.field}`);t.add(n.field)}}function cR(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??[];va(n),va(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),zu(n,"UPSERT ON INSERT"),Hu(r,{...t,idxSelectors:!1,expectRows:!1})}function zu(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)_i(i,"APPEND targets");hn(r.values,"APPEND values")}}function pR(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"),zu(t,"INSERT")}function ut(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 Di(e,t){let n=ka[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Ma(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${mn(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 ${mn(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 ${mn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!ut(t.where))throw new Error(`UnsupportedError: APPLY ${mn(e)} execution does not support multiple-parent APPLY`)}function Ma(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 qu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ut(t.where))&&!ka[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} public multiple-parent write is not connected`)}function Sn(e){if(!ka[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} internal prepared write is not available`)}function mn(e){return`Phase ${e.slice(5)}`}function dR(e,t){ut(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"),Ua(e,t))}function Ua(e,t){if(Array.isArray(e)){for(let o of e)Ua(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))Ua(o,t)}function Wu(e,t){hn(e,"child row selectors",t)}function hn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)hn(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}`),_i(l,t,n)}if(i==="FIELD_REF"&&_i(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))hn(s,t,n)}function _i(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 tr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=fR(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:tr(e.left),right:tr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:tr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function fR(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 Xu(e){return e.includes("%")||e.includes("_")}function nr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function It(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Tt(e){if(e===null)return!1;if(nr(e))return!0;switch(e.type){case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function fe(e){if(e===null)return!1;if(It(e))return!0;switch(e.type){case"LOGICAL":return fe(e.left)||fe(e.right);case"NOT":case"GROUP":return fe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return ER(e);case"NULL_CHECK":return gR(e);case"LOGICAL":return yR(e);case"NOT":return mR(e);case"GROUP":return hR(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 ER(e){if(nr(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=Qu(e.left),n=RR(e.op),r=AR(e.right,e.op);return`${t} ${n} ${r}`}function RR(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 gR(e){let t=Qu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function yR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=Ju(e.left)?`(${t})`:t,o=Ju(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function mR(e){return V(tr(e.expr))}function hR(e){return`(${V(e.expr)})`}function Qu(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==="AGG_FIELD")throw new ie("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\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 CR(e.field)}function AR(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 Zu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return ec(e);case"IN_LIST":return PR(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 Zu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ec(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return SR(e)}function SR(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?rr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!wR(e.args.offset,e.args.offsetText)||!TR.has(e.args.unit)?rr():`${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&&!IR.has(e.args.weekday)?rr():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"||!bR(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var TR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),IR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function wR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function bR(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function rr(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function PR(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 NR(e.values),`(${e.values.map(r=>r.type==="STRING"?Zu(r):r.type==="NUMBER"?H(r):ec(r)).join(",")})`}function NR(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 CR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Ju(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function vi(e){return`'${e.replace(/'/g,"''")}'`}function Tn(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 xa(e);let n=`${Tn(e.left)}${e.op}${Tn(e.right)}`;return t?n:`(${n})`}function tc(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return xa(e.expr);if(e.type==="AGG_FIELD")return Je(e.expr);if(e.type==="ARITH_FIELD")return Tn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Fa(e.expr)}function rc(e){switch(e.type){case"STRING":return vi(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=>vi(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(rc).join(",")})`;case"ARITH_VALUE":return Tn(e.expr);case"CASE_VALUE":return Fa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function ir(e){switch(e.type){case"BINARY":return`${tc(e.left)} ${e.op.replace("_"," ")} ${rc(e.right)}`;case"NULL_CHECK":return`${tc(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${ir(e.left)} ${e.op} ${ir(e.right)})`;case"NOT":return`NOT (${ir(e.expr)})`;case"GROUP":return`(${ir(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function nc(e){return e.type==="ARRAY"?`[${e.elements.map(t=>vi(t.value)).join(",")}]`:e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Je(e):e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e):Gt(e)}function Fa(e){let t=e.branches.map(r=>`WHEN ${ir(r.condition)} THEN ${nc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${nc(e.elseResult)}`;return`CASE ${t}${n} END`}function OR(e){return e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?Je(e):Gt(e)}function xa(e){return`${e.func}(${e.args.map(OR).join(",")})`}function Gt(e){switch(e.type){case"STRING":return vi(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 xa(e);case"CASE_WHEN":return Fa(e);case"SCALAR_ARITH":return`(${Gt(e.left)}${e.op}${Gt(e.right)})`;case"CONCAT_OP":return`(${Gt(e.left)}||${Gt(e.right)})`}}function LR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e,!0):Gt(e)}function ae(e,t,n){let r=LR(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Je(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${Je(e.left)}${e.op}${Je(e.right)}`}var ic=Symbol("ksql.groupingRowMeta"),oc=new WeakMap;function ac(e,t){return Object.defineProperty(e,ic,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function _R(e){return e[ic]}function DR(e){return _R(e)?.includedCanonicalIds}function sc(e,t){oc.set(e,t)}function In(e,t){let n=DR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=oc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var uc=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 Mi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Ba(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 Fi(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Fi(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=>Fi(r,t))}}function or(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>or(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")&&!(r==="FIELD"&&n.aggregateRef!==void 0)){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(Ba(n.field));return}Object.values(n).forEach(i=>or(i,t))}}function ve(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ve);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(ve)}function vR(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"||e.type==="CASE_COL"?ve(e):!1}function UR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function lc(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 kR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Mi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Mi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);sc(e,r.canonicalId)}function Ka(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Mi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function MR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Ba(e.name)];let t=[];return or(e,t),t}function Ga(e){let t=re(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),Fi(e.columns,r),Fi(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 cc(e,t,n=()=>{}){Ga(e);let r=re(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&De(c,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Fu(e,t),a=new Set,s=[];for(let c of o.allItems){let u=c;if(!u.physical)throw new Error(`ArgumentError: B65 grouping item ${Mi(c.field)} must resolve to a physical APP field.`);a.has(u.canonicalId)||(a.add(u.canonicalId),s.push(u))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)kR(c,t,a);let l=UR(e.columns);for(let c of e.columns){if(c.type==="GROUPING_COL"||c.type==="AGGREGATE"||c.type==="ARITH_AGG_COL"||c.type==="LITERAL_COL"||c.type==="VARIABLE_COL"||c.type==="SCALAR_SUBQUERY_COL")continue;let u=[];c.type==="FIELD"?u.push(Ba(c.field)):or(c,u);for(let p of u)Ka(p,t,a,"SELECT")}if(e.having){let c=[];or(e.having,c);for(let u of c)u.tableAlias===null&&l.has(u.field)||lc(u)||Ka(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of MR(c.key))u.tableAlias===null&&l.has(u.field)||lc(u)||Ka(u,t,a,"ORDER BY");let d=new Set;for(let c of s)d.add(c.directKey),c.unqualifiedBridgeKey!==null&&d.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!vR(c))continue;let u="alias"in c?c.alias:null;if(u!==null&&d.has(u))throw new Error(`ArgumentError: B65 aggregate alias ${u} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function FR(e){return e.some(t=>t.type==="WINDOW_COL")}function Ue(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||re(e).type!=="NONE"||e.distinct||FR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&ve(t.expr)||t.type==="STRFUNC_COL"&&Rc(t.expr)||t.type==="SCALAR_VALUE_COL"&&sr(t.expr))||wt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function wt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return pc(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||nr(e);case"NULL_CHECK":return pc(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function pc(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Ki(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(xR).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:KR(e.columns),totalCount:!1}}function Ec(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!wt(e.where)&&n.push(V(e.where)),{app:t,query:n.join(" "),fields:[]}}function $t(e,t,n){let i=yc(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 xR(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 KR(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(Bi(r.field)):r.type==="ARITH_COL"?ar(r.expr,n):r.type==="STRFUNC_COL"?$a(r.expr,n):r.type==="SCALAR_VALUE_COL"&&wn(r.expr,n);return[...new Set(n)]}function BR(e,t){ar(e.left,t),ar(e.right,t)}function ar(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(Bi(e.field)):e.type==="ARITH"?BR(e,t):e.type==="STRING_FUNC"&&$a(e,t)}function Bi(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function $a(e,t){for(let n of e.args)GR(n,t)}function GR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){xi(e,t);return}wn(e,t)}function wn(e,t){if(e.type==="FIELD"){t.push(Bi(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"){wn(e.left,t),wn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)dc(n.result,t);e.elseResult&&dc(e.elseResult,t)}}function dc(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){xi(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){ar(e,t);return}wn(e,t)}}function xi(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&$R(e.arg,t);return}e.type==="AGG_ARITH"&&(xi(e.left,t),xi(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Bi(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function $R(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ar(e,t):wn(e,t)}function Rc(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:sr(t))}function sr(e){return e.type==="STRING_FUNC"?Rc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>fc(t.result))||e.elseResult!==null&&fc(e.elseResult):!1}function fc(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:sr(e)}function gc(e,t){let n=new Set,r=yc(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function yc(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,d=new Map;for(let h of o)h.alias&&d.set(h.alias,h),h.cteName!==null?d.set(h.cteName,h):h.subtableCode||(d.set(`APP${h.appId}`,h),d.set(`app${h.appId}`,h));let c=VR(e.columns),u=h=>{let P=a.get(h);P&&(P.allFields=!0,P.fields.clear())},p=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},E=(h,P)=>{let M=a.get(h);if(!(!M||M.allFields)){if(h.subtableCode){if(P.startsWith("_p.")){let O=P.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}P&&M.fields.add(P)}},R=(h,P="select",M)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let K=h.slice(0,-2);if(!K){p();return}if(K==="_p"){f();return}let j=d.get(K);if(j){u(j);return}return}if(P==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let K=r[M.sourceIndex];K&&(n||K.cteName===null)&&E(K,M.fieldCode)}return}if((P==="orderBy"||P==="having"||P==="groupBy")&&c.has(h)||(P==="orderBy"||P==="having"||P==="groupBy")&&WR(h))return;let O=h.indexOf(".");if(O>0){let K=h.slice(0,O),j=h.slice(O+1);if(K==="_p"){l&&E(l,`_p.${j}`);return}let q=d.get(K);if(q){E(q,j);return}if(n)return}n?n.unqualified.add(h):s&&E(s,h)},g=(h,P,M="select")=>{if(P){if(P==="_p"){l&&E(l,`_p.${h}`);return}let O=d.get(P);if(O){E(O,h);return}if(n)return}R(h,M)},m=(h,P="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){R(h.field,P);return}if(h.type==="ARITH"){m(h.left,P),m(h.right,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}},y=(h,P="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&w(h.arg,P);return}h.type==="AGG_ARITH"&&(y(h.left,P),y(h.right,P)),h.type==="AGG_GROUP_KEY"&&g(h.field,h.tableAlias??null,P)},S=(h,P="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){y(h,P);return}I(h,P)},A=(h,P="select")=>{for(let M of h.args)S(M,P)},I=(h,P="select")=>{if(h.type==="FIELD"){g(h.field,h.tableAlias,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,P),I(h.right,P);return}h.type==="CASE_WHEN"&&b(h,P)},w=(h,P="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){m(h,P);return}I(h,P)},C=(h,P="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){y(h,P);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){m(h,P);return}I(h,P)}},b=(h,P="select")=>{for(let M of h.branches)_(M.condition,P),C(M.result,P);h.elseResult&&C(h.elseResult,P)},D=(h,P="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){y(h.aggregateRef,P);return}g(h.field,h.tableAlias,P);return}if(h.type==="FUNC_FIELD"){A(h.expr,P);return}if(h.type==="AGG_FIELD"){y(h.expr,P);return}if(h.type==="ARITH_FIELD"){m(h.expr,P);return}h.type!=="GROUPING_FIELD"&&b(h.expr,P)},N=(h,P="select")=>{if(h.type==="ARITH_VALUE"){m(h.expr,P);return}if(h.type==="CASE_VALUE"){b(h.expr,P);return}},_=(h,P="where")=>{if(h)switch(h.type){case"BINARY":D(h.left,P),N(h.right,P);return;case"NULL_CHECK":D(h.field,P);return;case"LOGICAL":_(h.left,P),_(h.right,P);return;case"NOT":case"GROUP":_(h.expr,P);return;case"EXISTS":case"BOOLEAN":return}},U=(h,P)=>{if(h.type==="FIELD_NAME"){R(h.name,"groupBy",P);return}if(h.type==="ARITH_KEY"){m(h.expr,"groupBy");return}A(h.expr,"groupBy")},L=(h,P="orderBy")=>{if(h.type==="FIELD_NAME"){R(h.name,P);return}if(h.type==="ARITH_KEY"){m(h.expr,P);return}h.type!=="GROUPING_KEY"&&A(h.expr,P)};for(let h of e.columns)switch(h.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&w(h.arg,"select");break;case"ARITH_AGG_COL":y(h.expr,"select");break;case"ARITH_COL":m(h.expr,"select");break;case"CASE_COL":b(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":I(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":h.windowKind==="AGGREGATE"&&h.arg.type!=="WILDCARD"&&w(h.arg,"select");for(let P of h.partitionBy)g(P.field,P.tableAlias,"select");for(let P of h.orderBy)L(P.key,"select");break}for(let h of e.joins)g(h.on.left.field,h.on.left.tableAlias,"where"),g(h.on.right.field,h.on.right.tableAlias,"where");_(e.where,"where");let v=re(e);if(v.type==="PLAIN")v.allItems.forEach((h,P)=>U(h,t?.items[P]));else if(v.type==="GROUPING_SETS")for(let h of v.allItems)g(h.field,h.tableAlias,"select");_(e.having,"having");for(let h of e.orderBy)L(h.key);return a}function VR(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(ae(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 WR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function bt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Ue(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||Mu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Pt(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:mc(e.left,t)};case"NULL_CHECK":return{...e,field:mc(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 mc(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function bn(e,t={}){return lr(e,n=>HR(n,t))}function ur(e,t={}){return lr(e,n=>hc(n,t)||Ac(n,t))}function lr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=lr(e.left,t),r=lr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return lr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function HR(e,t){return YR(e,t)||qR(e,t)?!0:hc(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":zR(e,t)}function YR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Va(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var jR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function zR(e,t){if(!Ac(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||!jR.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 qR(e,t){return!XR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function XR(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 hc(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Va(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 Ac(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Va(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 Va(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function cr(e,t={}){let n=e!==null&&t.extractCondition!==!1?bn(e,t):null,r=new Set;Pn(n,r);let i=new Set;return Pn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Nn(e,t={}){let r={allowKlike:e.joins.every(c=>c.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=cr(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 c of e.joins){if(!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let u=bn(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});u!==null&&l.set(c.table.alias,u)}let d=new Set(a.appliedKlikes);for(let c of l.values())Pn(c,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Wa(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Pn(e,t){if(e!==null){if(It(e)){t.add(e);return}switch(e.type){case"LOGICAL":Pn(e.left,t),Pn(e.right,t);return;case"NOT":case"GROUP":Pn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function $i(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=de(t.where);if(l.length===0||!ZR(l,a)||o===null||!Sc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:QR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},c={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return JR(c,e,l),c}function JR(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(!Sc(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function de(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"&&Ve(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function QR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Ve(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Ve(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 ZR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Sc(e,t){let n=new Map;for(let r of t){if(!Ve(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 se=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Tc(e){Ic(e)}function Ya(e){if(Wa(e).length>0)throw new se("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 Ic(e){switch(e.type){case"SELECT":Cn(e);return;case"UNION":za(e);return;case"WITH":wc(e);return;case"EXPLAIN":Ic(e.query);return;case"CREATE_TEMP_TABLE":ja(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Vt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ut(e.where)&&fe(e.where)){Ha(e.where),Vt(e);return}if(Nt(e)&&e.subtableCode)throw new se("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&&fe(e.where)&&!ng(e,e.where)){Ha(e.where),Vt(e);return}if(Nt(e))throw new se("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(Nt(e)&&e.subtableCode)throw new se("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&&fe(e.where)){Ha(e.where),Vt(e);return}if(Nt(e))throw new se("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(Nt(e))throw new se("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Nt(e))throw new se("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Nt(e))throw new se("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(Nt(e))throw new se("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 Ha(e){Wi(e,t=>{if(!It(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new se("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 se("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 ja(e){e.type==="SELECT"?Cn(e):e.type==="UNION"?za(e):wc(e)}function za(e){ja(e.left),Cn(e.right)}function wc(e){if(bt(e)){Cn(Pt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Cn(t.query):t.query.type==="UNION"&&za(t.query);ja(e.query)}function Cn(e){if(tg(e),fe(e.where)&&!(Ue(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Nn(e,{allowUnresolvedVariables:!0});if(Wa(n).length===0){Vt(e);return}if(eg(e)){Vt(e);return}throw new se("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")}Vt(e)}function eg(e){return e.where!==null&&de(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 tg(e){Wi(e,t=>{if(!It(t))return;if(!Vi(e.where,t))throw new se("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 se("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 se("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 Vt(e){Hi(e,t=>{t.type==="SELECT"&&Cn(t)},!0)}function Nt(e){let t=!1;return Hi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ng(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 Vi(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Vi(e.left,t)||Vi(e.right,t);case"NOT":case"GROUP":return Vi(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Wi(e,t){if(Array.isArray(e)){for(let r of e)Wi(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&&rg(r)||Wi(r,t)}function Hi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Hi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Hi(i,t)}function rg(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var pr=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function bc(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(ig(t))throw new pr;return;default:return}}function ig(e){let t=!1;return Yi(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||og(n.where)&&(t=!0)}),t}function og(e){let t=!1;return Yi(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Yi(e,t){if(Array.isArray(e)){for(let r of e)Yi(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Yi(r,t)}function Ct(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 ji(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return Ct(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Ct(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return Ct(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Ct(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Ct(e,t,3,3);case"REGEXP_REPLACE":return Ct(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Ct(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Ct(e,t,0,0)}}function We(e){ag(e),bc(e),Tc(e)}function ag(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;ji(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var zi=16,Pc=64,Q=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function dr(e,t,n){if(Array.isArray(e)){for(let r of e)dr(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))dr(a,t,n)}}var sg=new Set(["=","!=","<>",">","<",">=","<="]);function qa(e,t,n=!1){if(Array.isArray(e)){for(let r of e)qa(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",d=n&&i==="BINARY"&&a==="right"&&l&&sg.has(String(r.op));qa(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function lg(e){let t=e.type==="EXPLAIN"?e.query:e;return St(t.type)||t.type==="VALIDATE"}function Xa(e){if(Array.isArray(e)){for(let t of e)Xa(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Ga(e);for(let n of Object.values(t))Xa(n)}}function Ja(e){if(e.length===0)throw new Q("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Xa(u)}catch(f){throw f instanceof Error?new Q(f.message,p):f}try{An("phase15b",u),We(u)}catch(f){throw f instanceof se||f instanceof pr?new Q(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Q(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new Q(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Q(`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((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let C=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Q(C,p)}let E=Oi(u),R=[],g=[],m=new Set,y=new Set,S=new Set,A=[];qa(u,A);let I=new Set;for(let C of A){let b=o.get(C.name);if(b===void 0)throw new Q(`ParseError: variable @${C.name} is not defined before statement ${p+1}.`,p);if(b.kind==="scalar"&&C.kind==="array-in-list")throw new Q(`ParseError: scalar variable @${C.name} cannot be used as IN @${C.name}; use IN (@${C.name}) instead.`,p);if(b.kind==="array"&&C.kind!=="array-in-list")throw new Q(`ParseError: array variable @${C.name} can only be used as IN @${C.name}.`,p);if(b.relativeDate&&lg(u))throw new Q(`ArgumentError: RELATIVE_DATE variable @${C.name} cannot be used in DML or VALIDATE statements.`,p);if(b.relativeDate&&!C.relativeDateAllowed)throw new Q(`ArgumentError: RELATIVE_DATE variable @${C.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(C.name)||(b.referencedBy.push(p),I.add(C.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new Q(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Pc)throw new Q(`ParseError: batch exceeds ${Pc} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?dr(u.query,m,y):u.type==="DROP_TEMP_TABLE"||dr(u,m,y);let w=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let C=new Set,b=new Set;dr(u.select,C,b),w=C.size>0&&b.size===0}for(let C of m){let b=t.get(C);if(b===void 0)throw new Q(`ParseError: temp table ${C} is not defined in this batch.`,p);S.add(b)}if(f){let C=u.type==="VALIDATE"?u.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"]:u.type==="IMPORT"&&u.targets?.some(N=>N.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(N=>N.field)]:"fields"in u?u.fields:[],b=JSON.stringify(C),D=t.get(f);if(D===void 0){if(t.set(f,p),n.set(f,b),r.push(f),R.push(f),t.size>zi)throw new Q(`ParseError: batch exceeds ${zi} temp tables.`,p)}else{if(n.get(f)!==b)throw new Q(`ParseError: validation error table ${f} has a different payload schema.`,p);S.add(D)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new Q(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),R.push(u.name),t.size>zi)throw new Q(`ParseError: batch exceeds ${zi} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let C=t.get(u.name);if(C===void 0)throw new Q(`ParseError: temp table ${u.name} is not defined in this batch.`,p);S.add(C),g.push(u.name),t.delete(u.name)}i.push({index:p,statementType:E,isDml:Da(u),isReadOnly:gn(u),hasWhere:$u(u),insertValuesCount:Vu(u),appIds:[...y].sort((C,b)=>C-b),tempTablesCreated:R,tempTablesReferenced:[...m],tempTablesDropped:g,dependsOn:[...S].sort((C,b)=>C-b),tempOnlySource:w,targetAppId:St(E)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:Bu(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),d=i.some(u=>u.requiresCompleteInput),c=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:c,warnings:c.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var qi=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"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["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 Se=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"}},Ot=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(On(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Qa(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Se(`\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 Se("\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 Se("\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&&On(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&On(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&On(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||!On(this.input[this.pos]))throw new Se("\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&&On(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&&Nc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=qi.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(!Qa(n))throw new Se("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Nc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Se(`@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 Se("\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 Se("\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
+ async function be(e,t,n,r,i={}){let o=i.pageSize??ZE,a=Math.max(1,i.parallel??eR),s=i.maxRecords??tR,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 c=d??s,u=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,g=0,m=Uu(n,R),y=await vu(e,t,m,u,o,g);if(Du(y,i),p.push(...y.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 Pe(E)}if(y.records.length<o)return p;for(g+=o,g>=_a&&(R=ku(y.records),g=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 Pe(E)}let S=c-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),w=[];for(let N=0;N<I;N++){let _=g+N*o;if(_>=_a)break;w.push(_)}let C=Uu(n,R),b=await Promise.all(w.map(N=>vu(e,t,C,u,o,N)));for(let N of b)Du(N,i);let D=!1;for(let N of b){if(p.push(...N.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 Pe(E)}if(N.records.length<o){D=!0;break}}if(D)break;if(g+=o*w.length,g>=_a){let N=b[b.length-1];R=ku(N.records),g=0}}return p}function Du(e,t){e.searchAborted&&t.onSearchAborted?.()}function Mu(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 ZE=500,eR=1,tR=1e4,_a=1e4;async function vu(e,t,n,r,i,o){let a=nR(n,i,o);return e({app:t,query:a,fields:r})}function Uu(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 nR(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function ku(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 Pe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var rR=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function iR(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 _e(e){let t=rR.exec(e.trim());if(t===null)return null;let n=iR(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 oR(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 Fu(e){let t=_e(e);return t===null?null:oR(t)}function aR(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 bi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=aR(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Pi(e,t){let n=_e(e),r=_e(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return bi(n,r)}var Xe="__NO_FROM__";function Da(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function Ni(e){return e.windowKind==="AGGREGATE"}function va(e){return e.windowKind==="VALUE"}function he(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Fu(t)??t}function xu(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 sR(e){return`${e.tableAlias??""}\0${e.field}`}function re(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=sR(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 Ku(e){return re(e).type!=="NONE"}function Bu(e,t){let n=re(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 c={...l,field:s};return r.set(c.canonicalId,c),c},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(c=>c.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 Li(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Tt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function lR(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 Tt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function yn(e){return!Ua(e)&&(lR(e.type)||Tt(e.type))}function Gu(e){return yn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var $u=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ae(e,t){for(let n of t)e.add(n)}function Ci(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"&&$u.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=>Ci(i,t)):Ci(r,t))}function Oi(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"&&!$u.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>Oi(i,t)):Oi(r,t))}function St(e){let t=new Set;if(Tt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ae(t,gn(e));break;case"UNION":Ae(t,Wu(e));break;case"WITH":for(let n of e.ctes)Ae(t,St(n.query));Ae(t,St(e.query));break;case"CREATE_TEMP_TABLE":Ae(t,St(e.query));break;default:break}return Ci(e)&&t.add("STATISTICAL_AGGREGATE"),Oi(e)&&t.add("AGGREGATE"),t}function Vu(e){return St(e).size>0}function Wu(e){let t=e.left.type==="SELECT"?gn(e.left):Wu(e.left);return Ae(t,gn(e.right)),e.all||t.add("DISTINCT"),t}function gn(e){let t=new Set,n=re(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ae(t,gn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ae(t,Rn(i.condition));return Ae(t,Rn(e.where)),Ae(t,Rn(e.having)),Ci(e)&&t.add("STATISTICAL_AGGREGATE"),Oi(e)&&t.add("AGGREGATE"),t}function Rn(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")&&Ae(t,gn(e.right.query));break;case"LOGICAL":Ae(t,Rn(e.left)),Ae(t,Rn(e.right));break;case"NOT":case"GROUP":Ae(t,Rn(e.expr));break;case"EXISTS":Ae(t,gn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Hu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Yu(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 _i=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Kt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Zn=new Set([...Kt,..._i]),Bt="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",lt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return _i.has(e)}function mn(e){return Kt.has(e)}function Ve(e){return Zn.has(e)}var uR=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})}),er="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${er} scope does not support ${e}`)}function cR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function pR(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 Sn(e,t){return cR(e,()=>dR(t,uR[e]))}function dR(e,t){let n=pR(e);if(n===null)return;if(n.type==="UPSERT"){ER(n,t);return}let r=n.applyBlocks;if(ka(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){RR(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"),gR(i.where,t.multipleParents),zu(r,t)}function zu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);qu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Di(i,"APPEND targets");An(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&ju(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")}An(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&ju(r.selector.where,t.idxSelectors)}}}}function qu(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 fR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Xu(e,t){if(qu(e),e.targetKind==="MULTI_VALUE"){if(!fR.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 ka(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${er} scope allows only one block for table ${n.field}`);t.add(n.field)}}function ER(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??[];ka(n),ka(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Ju(n,"UPSERT ON INSERT"),zu(r,{...t,idxSelectors:!1,expectRows:!1})}function Ju(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)Di(i,"APPEND targets");An(r.values,"APPEND values")}}function RR(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"),Ju(t,"INSERT")}function ut(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 vi(e,t){let n=Fa[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&xa(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${hn(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 ${hn(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 ${hn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!ut(t.where))throw new Error(`UnsupportedError: APPLY ${hn(e)} execution does not support multiple-parent APPLY`)}function xa(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 Qu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ut(t.where))&&!Fa[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${hn(e)} public multiple-parent write is not connected`)}function Tn(e){if(!Fa[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${hn(e)} internal prepared write is not available`)}function hn(e){return`Phase ${e.slice(5)}`}function gR(e,t){ut(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"),Ma(e,t))}function Ma(e,t){if(Array.isArray(e)){for(let o of e)Ma(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))Ma(o,t)}function ju(e,t){An(e,"child row selectors",t)}function An(e,t,n=!1){if(Array.isArray(e)){for(let s of e)An(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}`),Di(l,t,n)}if(i==="FIELD_REF"&&Di(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))An(s,t,n)}function Di(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 tr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=yR(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:tr(e.left),right:tr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:tr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function yR(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 Zu(e){return e.includes("%")||e.includes("_")}function nr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function wt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function It(e){if(e===null)return!1;if(nr(e))return!0;switch(e.type){case"LOGICAL":return It(e.left)||It(e.right);case"NOT":case"GROUP":return It(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ee(e){if(e===null)return!1;if(wt(e))return!0;switch(e.type){case"LOGICAL":return Ee(e.left)||Ee(e.right);case"NOT":case"GROUP":return Ee(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return mR(e);case"NULL_CHECK":return AR(e);case"LOGICAL":return SR(e);case"NOT":return TR(e);case"GROUP":return IR(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 mR(e){if(nr(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=tc(e.left),n=hR(e.op),r=wR(e.right,e.op);return`${t} ${n} ${r}`}function hR(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 AR(e){let t=tc(e.field);return e.not?`${t} != ""`:`${t} = ""`}function SR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=ec(e.left)?`(${t})`:t,o=ec(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function TR(e){return V(tr(e.expr))}function IR(e){return`(${V(e.expr)})`}function tc(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==="AGG_FIELD")throw new ie("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\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 DR(e.field)}function wR(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 nc(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return rc(e);case"IN_LIST":return LR(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 nc(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function rc(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return bR(e)}function bR(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?rr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!CR(e.args.offset,e.args.offsetText)||!PR.has(e.args.unit)?rr():`${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&&!NR.has(e.args.weekday)?rr():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"||!OR(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var PR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),NR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function CR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function OR(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function rr(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function LR(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 _R(e.values),`(${e.values.map(r=>r.type==="STRING"?nc(r):r.type==="NUMBER"?H(r):rc(r)).join(",")})`}function _R(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 DR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function ec(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ui(e){return`'${e.replace(/'/g,"''")}'`}function In(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 Ba(e);let n=`${In(e.left)}${e.op}${In(e.right)}`;return t?n:`(${n})`}function ic(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ba(e.expr);if(e.type==="AGG_FIELD")return Je(e.expr);if(e.type==="ARITH_FIELD")return In(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ka(e.expr)}function ac(e){switch(e.type){case"STRING":return Ui(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=>Ui(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(ac).join(",")})`;case"ARITH_VALUE":return In(e.expr);case"CASE_VALUE":return Ka(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function ir(e){switch(e.type){case"BINARY":return`${ic(e.left)} ${e.op.replace("_"," ")} ${ac(e.right)}`;case"NULL_CHECK":return`${ic(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${ir(e.left)} ${e.op} ${ir(e.right)})`;case"NOT":return`NOT (${ir(e.expr)})`;case"GROUP":return`(${ir(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function oc(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ui(t.value)).join(",")}]`:e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Je(e):e.type==="FIELD_REF"||e.type==="ARITH"?In(e):Gt(e)}function Ka(e){let t=e.branches.map(r=>`WHEN ${ir(r.condition)} THEN ${oc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${oc(e.elseResult)}`;return`CASE ${t}${n} END`}function vR(e){return e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?Je(e):Gt(e)}function Ba(e){return`${e.func}(${e.args.map(vR).join(",")})`}function Gt(e){switch(e.type){case"STRING":return Ui(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 Ba(e);case"CASE_WHEN":return Ka(e);case"SCALAR_ARITH":return`(${Gt(e.left)}${e.op}${Gt(e.right)})`;case"CONCAT_OP":return`(${Gt(e.left)}||${Gt(e.right)})`}}function UR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?In(e,!0):Gt(e)}function ae(e,t,n){let r=UR(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Je(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?ae(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${Je(e.left)}${e.op}${Je(e.right)}`}var sc=Symbol("ksql.groupingRowMeta"),lc=new WeakMap;function uc(e,t){return Object.defineProperty(e,sc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function kR(e){return e[sc]}function MR(e){return kR(e)?.includedCanonicalIds}function cc(e,t){lc.set(e,t)}function wn(e,t){let n=MR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=lc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var dc=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 Fi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function $a(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 xi(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>xi(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=>xi(r,t))}}function or(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>or(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")&&!(r==="FIELD"&&n.aggregateRef!==void 0)){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($a(n.field));return}Object.values(n).forEach(i=>or(i,t))}}function ve(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ve);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(ve)}function FR(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"||e.type==="CASE_COL"?ve(e):!1}function xR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function pc(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 KR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Fi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Fi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);cc(e,r.canonicalId)}function Ga(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Fi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function BR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[$a(e.name)];let t=[];return or(e,t),t}function Va(e){let t=re(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),xi(e.columns,r),xi(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 fc(e,t,n=()=>{}){Va(e);let r=re(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&De(c,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Bu(e,t),a=new Set,s=[];for(let c of o.allItems){let u=c;if(!u.physical)throw new Error(`ArgumentError: B65 grouping item ${Fi(c.field)} must resolve to a physical APP field.`);a.has(u.canonicalId)||(a.add(u.canonicalId),s.push(u))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)KR(c,t,a);let l=xR(e.columns);for(let c of e.columns){if(c.type==="GROUPING_COL"||c.type==="AGGREGATE"||c.type==="ARITH_AGG_COL"||c.type==="LITERAL_COL"||c.type==="VARIABLE_COL"||c.type==="SCALAR_SUBQUERY_COL")continue;let u=[];c.type==="FIELD"?u.push($a(c.field)):or(c,u);for(let p of u)Ga(p,t,a,"SELECT")}if(e.having){let c=[];or(e.having,c);for(let u of c)u.tableAlias===null&&l.has(u.field)||pc(u)||Ga(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of BR(c.key))u.tableAlias===null&&l.has(u.field)||pc(u)||Ga(u,t,a,"ORDER BY");let d=new Set;for(let c of s)d.add(c.directKey),c.unqualifiedBridgeKey!==null&&d.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!FR(c))continue;let u="alias"in c?c.alias:null;if(u!==null&&d.has(u))throw new Error(`ArgumentError: B65 aggregate alias ${u} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function GR(e){return e.some(t=>t.type==="WINDOW_COL")}function Ue(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||re(e).type!=="NONE"||e.distinct||GR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&ve(t.expr)||t.type==="STRFUNC_COL"&&mc(t.expr)||t.type==="SCALAR_VALUE_COL"&&sr(t.expr))||bt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function bt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Ec(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||nr(e);case"NULL_CHECK":return Ec(e.field);case"LOGICAL":return bt(e.left)||bt(e.right);case"NOT":case"GROUP":return bt(e.expr);case"EXISTS":return!0}}function Ec(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Bi(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($R).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:VR(e.columns),totalCount:!1}}function yc(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!bt(e.where)&&n.push(V(e.where)),{app:t,query:n.join(" "),fields:[]}}function $t(e,t,n){let i=Ac(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 $R(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 VR(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(Gi(r.field)):r.type==="ARITH_COL"?ar(r.expr,n):r.type==="STRFUNC_COL"?Wa(r.expr,n):r.type==="SCALAR_VALUE_COL"&&bn(r.expr,n);return[...new Set(n)]}function WR(e,t){ar(e.left,t),ar(e.right,t)}function ar(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(Gi(e.field)):e.type==="ARITH"?WR(e,t):e.type==="STRING_FUNC"&&Wa(e,t)}function Gi(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Wa(e,t){for(let n of e.args)HR(n,t)}function HR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Ki(e,t);return}bn(e,t)}function bn(e,t){if(e.type==="FIELD"){t.push(Gi(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Wa(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){bn(e.left,t),bn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Rc(n.result,t);e.elseResult&&Rc(e.elseResult,t)}}function Rc(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ki(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){ar(e,t);return}bn(e,t)}}function Ki(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&YR(e.arg,t);return}e.type==="AGG_ARITH"&&(Ki(e.left,t),Ki(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Gi(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function YR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ar(e,t):bn(e,t)}function mc(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:sr(t))}function sr(e){return e.type==="STRING_FUNC"?mc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>gc(t.result))||e.elseResult!==null&&gc(e.elseResult):!1}function gc(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:sr(e)}function hc(e,t){let n=new Set,r=Ac(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Ac(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,d=new Map;for(let h of o)h.alias&&d.set(h.alias,h),h.cteName!==null?d.set(h.cteName,h):h.subtableCode||(d.set(`APP${h.appId}`,h),d.set(`app${h.appId}`,h));let c=jR(e.columns),u=h=>{let P=a.get(h);P&&(P.allFields=!0,P.fields.clear())},p=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},E=(h,P)=>{let M=a.get(h);if(!(!M||M.allFields)){if(h.subtableCode){if(P.startsWith("_p.")){let O=P.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}P&&M.fields.add(P)}},R=(h,P="select",M)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let K=h.slice(0,-2);if(!K){p();return}if(K==="_p"){f();return}let j=d.get(K);if(j){u(j);return}return}if(P==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let K=r[M.sourceIndex];K&&(n||K.cteName===null)&&E(K,M.fieldCode)}return}if((P==="orderBy"||P==="having"||P==="groupBy")&&c.has(h)||(P==="orderBy"||P==="having"||P==="groupBy")&&zR(h))return;let O=h.indexOf(".");if(O>0){let K=h.slice(0,O),j=h.slice(O+1);if(K==="_p"){l&&E(l,`_p.${j}`);return}let q=d.get(K);if(q){E(q,j);return}if(n)return}n?n.unqualified.add(h):s&&E(s,h)},g=(h,P,M="select")=>{if(P){if(P==="_p"){l&&E(l,`_p.${h}`);return}let O=d.get(P);if(O){E(O,h);return}if(n)return}R(h,M)},m=(h,P="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){R(h.field,P);return}if(h.type==="ARITH"){m(h.left,P),m(h.right,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}},y=(h,P="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&w(h.arg,P);return}h.type==="AGG_ARITH"&&(y(h.left,P),y(h.right,P)),h.type==="AGG_GROUP_KEY"&&g(h.field,h.tableAlias??null,P)},S=(h,P="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){y(h,P);return}I(h,P)},A=(h,P="select")=>{for(let M of h.args)S(M,P)},I=(h,P="select")=>{if(h.type==="FIELD"){g(h.field,h.tableAlias,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,P),I(h.right,P);return}h.type==="CASE_WHEN"&&b(h,P)},w=(h,P="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){m(h,P);return}I(h,P)},C=(h,P="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){y(h,P);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){m(h,P);return}I(h,P)}},b=(h,P="select")=>{for(let M of h.branches)_(M.condition,P),C(M.result,P);h.elseResult&&C(h.elseResult,P)},D=(h,P="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){y(h.aggregateRef,P);return}g(h.field,h.tableAlias,P);return}if(h.type==="FUNC_FIELD"){A(h.expr,P);return}if(h.type==="AGG_FIELD"){y(h.expr,P);return}if(h.type==="ARITH_FIELD"){m(h.expr,P);return}h.type!=="GROUPING_FIELD"&&b(h.expr,P)},N=(h,P="select")=>{if(h.type==="ARITH_VALUE"){m(h.expr,P);return}if(h.type==="CASE_VALUE"){b(h.expr,P);return}},_=(h,P="where")=>{if(h)switch(h.type){case"BINARY":D(h.left,P),N(h.right,P);return;case"NULL_CHECK":D(h.field,P);return;case"LOGICAL":_(h.left,P),_(h.right,P);return;case"NOT":case"GROUP":_(h.expr,P);return;case"EXISTS":case"BOOLEAN":return}},U=(h,P)=>{if(h.type==="FIELD_NAME"){R(h.name,"groupBy",P);return}if(h.type==="ARITH_KEY"){m(h.expr,"groupBy");return}A(h.expr,"groupBy")},L=(h,P="orderBy")=>{if(h.type==="FIELD_NAME"){R(h.name,P);return}if(h.type==="ARITH_KEY"){m(h.expr,P);return}h.type!=="GROUPING_KEY"&&A(h.expr,P)};for(let h of e.columns)switch(h.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&w(h.arg,"select");break;case"ARITH_AGG_COL":y(h.expr,"select");break;case"ARITH_COL":m(h.expr,"select");break;case"CASE_COL":b(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":I(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&w(h.arg,"select");for(let P of h.partitionBy)g(P.field,P.tableAlias,"select");for(let P of h.orderBy)L(P.key,"select");break}for(let h of e.joins)g(h.on.left.field,h.on.left.tableAlias,"where"),g(h.on.right.field,h.on.right.tableAlias,"where");_(e.where,"where");let v=re(e);if(v.type==="PLAIN")v.allItems.forEach((h,P)=>U(h,t?.items[P]));else if(v.type==="GROUPING_SETS")for(let h of v.allItems)g(h.field,h.tableAlias,"select");_(e.having,"having");for(let h of e.orderBy)L(h.key);return a}function jR(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(ae(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 zR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Pt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Ue(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||Ku(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Nt(e){let t=e.ctes[0].query,n=e.query,r=$i(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 $i(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Sc(e.left,t)};case"NULL_CHECK":return{...e,field:Sc(e.field,t)};case"LOGICAL":return{...e,left:$i(e.left,t),right:$i(e.right,t)};case"NOT":case"GROUP":return{...e,expr:$i(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Sc(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function Pn(e,t={}){return lr(e,n=>qR(n,t))}function ur(e,t={}){return lr(e,n=>Tc(n,t)||Ic(n,t))}function lr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=lr(e.left,t),r=lr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return lr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function qR(e,t){return XR(e,t)||ZR(e,t)?!0:Tc(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":QR(e,t)}function XR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Ha(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var JR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function QR(e,t){if(!Ic(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||!JR.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 ZR(e,t){return!eg(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function eg(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 Tc(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ha(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 Ic(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ha(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 Ha(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function cr(e,t={}){let n=e!==null&&t.extractCondition!==!1?Pn(e,t):null,r=new Set;Nn(n,r);let i=new Set;return Nn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Cn(e,t={}){let r={allowKlike:e.joins.every(c=>c.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=cr(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 c of e.joins){if(!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let u=Pn(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});u!==null&&l.set(c.table.alias,u)}let d=new Set(a.appliedKlikes);for(let c of l.values())Nn(c,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Ya(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Nn(e,t){if(e!==null){if(wt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Nn(e.left,t),Nn(e.right,t);return;case"NOT":case"GROUP":Nn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Vi(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=fe(t.where);if(l.length===0||!rg(l,a)||o===null||!wc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ng(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},c={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return tg(c,e,l),c}function tg(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(!wc(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function fe(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"&&Ve(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function ng(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Ve(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Ve(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 rg(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function wc(e,t){let n=new Map;for(let r of t){if(!Ve(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 se=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function bc(e){Pc(e)}function za(e){if(Ya(e).length>0)throw new se("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 Pc(e){switch(e.type){case"SELECT":On(e);return;case"UNION":Xa(e);return;case"WITH":Nc(e);return;case"EXPLAIN":Pc(e.query);return;case"CREATE_TEMP_TABLE":qa(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Vt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ut(e.where)&&Ee(e.where)){ja(e.where),Vt(e);return}if(Ct(e)&&e.subtableCode)throw new se("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&&Ee(e.where)&&!ag(e,e.where)){ja(e.where),Vt(e);return}if(Ct(e))throw new se("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(Ct(e)&&e.subtableCode)throw new se("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&&Ee(e.where)){ja(e.where),Vt(e);return}if(Ct(e))throw new se("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(Ct(e))throw new se("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Ct(e))throw new se("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Ct(e))throw new se("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(Ct(e))throw new se("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 ja(e){Hi(e,t=>{if(!wt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new se("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 se("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 qa(e){e.type==="SELECT"?On(e):e.type==="UNION"?Xa(e):Nc(e)}function Xa(e){qa(e.left),On(e.right)}function Nc(e){if(Pt(e)){On(Nt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?On(t.query):t.query.type==="UNION"&&Xa(t.query);qa(e.query)}function On(e){if(og(e),Ee(e.where)&&!(Ue(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Cn(e,{allowUnresolvedVariables:!0});if(Ya(n).length===0){Vt(e);return}if(ig(e)){Vt(e);return}throw new se("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")}Vt(e)}function ig(e){return e.where!==null&&fe(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 og(e){Hi(e,t=>{if(!wt(t))return;if(!Wi(e.where,t))throw new se("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 se("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 se("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 Vt(e){Yi(e,t=>{t.type==="SELECT"&&On(t)},!0)}function Ct(e){let t=!1;return Yi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ag(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 Wi(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Wi(e.left,t)||Wi(e.right,t);case"NOT":case"GROUP":return Wi(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Hi(e,t){if(Array.isArray(e)){for(let r of e)Hi(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&&sg(r)||Hi(r,t)}function Yi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Yi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Yi(i,t)}function sg(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var pr=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function Cc(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(lg(t))throw new pr;return;default:return}}function lg(e){let t=!1;return ji(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||ug(n.where)&&(t=!0)}),t}function ug(e){let t=!1;return ji(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function ji(e,t){if(Array.isArray(e)){for(let r of e)ji(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))ji(r,t)}function Ot(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 zi(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return Ot(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Ot(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return Ot(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Ot(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Ot(e,t,3,3);case"REGEXP_REPLACE":return Ot(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Ot(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Ot(e,t,0,0)}}function We(e){cg(e),Cc(e),bc(e)}function cg(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;zi(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var qi=16,Oc=64,Q=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function dr(e,t,n){if(Array.isArray(e)){for(let r of e)dr(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))dr(a,t,n)}}var pg=new Set(["=","!=","<>",">","<",">=","<="]);function Ja(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Ja(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",d=n&&i==="BINARY"&&a==="right"&&l&&pg.has(String(r.op));Ja(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function dg(e){let t=e.type==="EXPLAIN"?e.query:e;return Tt(t.type)||t.type==="VALIDATE"}function Qa(e){if(Array.isArray(e)){for(let t of e)Qa(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Va(e);for(let n of Object.values(t))Qa(n)}}function Za(e){if(e.length===0)throw new Q("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Qa(u)}catch(f){throw f instanceof Error?new Q(f.message,p):f}try{Sn("phase15b",u),We(u)}catch(f){throw f instanceof se||f instanceof pr?new Q(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Q(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new Q(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Q(`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((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let C=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Q(C,p)}let E=Li(u),R=[],g=[],m=new Set,y=new Set,S=new Set,A=[];Ja(u,A);let I=new Set;for(let C of A){let b=o.get(C.name);if(b===void 0)throw new Q(`ParseError: variable @${C.name} is not defined before statement ${p+1}.`,p);if(b.kind==="scalar"&&C.kind==="array-in-list")throw new Q(`ParseError: scalar variable @${C.name} cannot be used as IN @${C.name}; use IN (@${C.name}) instead.`,p);if(b.kind==="array"&&C.kind!=="array-in-list")throw new Q(`ParseError: array variable @${C.name} can only be used as IN @${C.name}.`,p);if(b.relativeDate&&dg(u))throw new Q(`ArgumentError: RELATIVE_DATE variable @${C.name} cannot be used in DML or VALIDATE statements.`,p);if(b.relativeDate&&!C.relativeDateAllowed)throw new Q(`ArgumentError: RELATIVE_DATE variable @${C.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(C.name)||(b.referencedBy.push(p),I.add(C.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new Q(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Oc)throw new Q(`ParseError: batch exceeds ${Oc} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?dr(u.query,m,y):u.type==="DROP_TEMP_TABLE"||dr(u,m,y);let w=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let C=new Set,b=new Set;dr(u.select,C,b),w=C.size>0&&b.size===0}for(let C of m){let b=t.get(C);if(b===void 0)throw new Q(`ParseError: temp table ${C} is not defined in this batch.`,p);S.add(b)}if(f){let C=u.type==="VALIDATE"?u.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"]:u.type==="IMPORT"&&u.targets?.some(N=>N.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(N=>N.field)]:"fields"in u?u.fields:[],b=JSON.stringify(C),D=t.get(f);if(D===void 0){if(t.set(f,p),n.set(f,b),r.push(f),R.push(f),t.size>qi)throw new Q(`ParseError: batch exceeds ${qi} temp tables.`,p)}else{if(n.get(f)!==b)throw new Q(`ParseError: validation error table ${f} has a different payload schema.`,p);S.add(D)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new Q(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),R.push(u.name),t.size>qi)throw new Q(`ParseError: batch exceeds ${qi} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let C=t.get(u.name);if(C===void 0)throw new Q(`ParseError: temp table ${u.name} is not defined in this batch.`,p);S.add(C),g.push(u.name),t.delete(u.name)}i.push({index:p,statementType:E,isDml:Ua(u),isReadOnly:yn(u),hasWhere:Hu(u),insertValuesCount:Yu(u),appIds:[...y].sort((C,b)=>C-b),tempTablesCreated:R,tempTablesReferenced:[...m],tempTablesDropped:g,dependsOn:[...S].sort((C,b)=>C-b),tempOnlySource:w,targetAppId:Tt(E)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:Vu(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),d=i.some(u=>u.requiresCompleteInput),c=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:c,warnings:c.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var Xi=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"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["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 Se=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"}},Lt=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(Ln(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(es(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Se(`\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 Se("\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 Se("\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&&Ln(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Ln(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Ln(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||!Ln(this.input[this.pos]))throw new Se("\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&&Ln(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&&Lc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Xi.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(!es(n))throw new Se("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Lc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Se(`@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 Se("\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 Se("\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 Se("\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 Qa(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||ug(t)}function Nc(e){let t=e.codePointAt(0);return Qa(e)||t>=48&&t<=57}function On(e){let t=e.codePointAt(0);return t>=48&&t<=57}function ug(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Oc=20,Za=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"}),Dc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),fr=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"}),HI=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),cg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),pg=new Set(cg);function dg(e){return pg.has(e)}var vc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Er=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Lc(e){return Er[e]!==void 0}var fg=Object.freeze([...Li]),Eg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Rg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function gg(e){return Eg.has(e)}function yg(e){return Rg.has(e)}function mg(e){return Number.isInteger(e)&&e>=1&&e<=31}var YI=Object.freeze(Array.from(new Set([...Object.keys(Za),...Dc,...Object.keys(fr),...Object.keys(vc),...Object.keys(Er),...fg,"IF"]))),hg=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","PRIMARY_ORGANIZATION","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 Ag(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!hg.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.rawMessage=n;this.token=r;this.name="ParseError"}},_c=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
- `),Lt=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.aggregateGroupKeyTokens=new WeakMap;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>Oc)throw new T(`batch exceeds ${Oc} 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"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.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:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Er[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}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=Er[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==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\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)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}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}=ct(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}=ct(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 w=this.parseIdentifier();if(s.has(w))throw new T(`IMPORT target ${w} is declared more than once.`,this.prev());if(s.add(w),this.peek().kind==="("){this.advance();let C=this.parseIdentList();if(this.expect(")"),new Set(C).size!==C.length)throw new T(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let b;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()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:C,...b?{rowIdSourceHeader:b}:{}})}else a.push(w),o.push({kind:"FIELD",field:w});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(),c,u=!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 w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());c=w==="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(),u=!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(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)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!==Xe||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(w=>w.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(),!u)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 g,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))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"&&(g=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(w=>w.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(w=>w.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)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(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(y);for(let C of S){if(!C.rowIdSourceHeader)throw new T(`CSV subtable ${C.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(C.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${C.subtableCode}.`,this.prev())}for(let C of w)if(!S.some(b=>b.subtableCode===C))throw new T(`REPLACE SUBTABLES target ${C} is not declared in INTO.`,this.prev())}}else if(y)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(g)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 A=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:c,hasHeader:u,mappingMode:E,ignoreUnknownColumns:R,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...y?{replaceSubtables:y}:{},...g?{keyFields:g}:{},...A,...I}}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}=ct(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 u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}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 u=this.peek();if(u.kind!=="IDENT"||!u.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",u);d=this.parseTableName()}let c={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(c,t),c}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&&Ag(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:Xe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,c=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")&&(c=this.parseWhereExpr("HAVING"))}let u="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());u="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(m=>m.type==="WINDOW_COL"),g=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||g))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&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,c,l,d),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:c,orderMode:u,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 this.withAliasDisplay({type:"GROUPING_COL",ref:o,alias:a?.alias??null},a)}if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(_c,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:o,alias:a?.alias??null},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());let a=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:a.alias},a)}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 this.withAliasDisplay({type:"CASE_COL",expr:o,alias:a?.alias??null},a)}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:o,alias:a?.alias??null},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 this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:o,alias:a?.alias??null},a)}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(o);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:s,alias:l?.alias??null},l)}let a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a?.alias??null},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 this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:o,alias:a?.alias??null},a)}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:o,alias:a?.alias??null},a)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:o,alias:a?.alias??null},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 this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:r,alias:i?.alias??null},i)}tryWindowFunc(){return vc[this.peek().kind]??null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(fr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}r.kind==="("?t++:r.kind===")"&&t--}return!1}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 this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(_c,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}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):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1: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"?this.nodeHasAggregate(t):!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"?he(`-${H(n)}`):{type:"AGG_ARITH",left:he("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return he(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}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())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),fr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=c=>{if(Array.isArray(c)){c.forEach(a);return}if(c===null||typeof c!="object")return;let u=c;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(c);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let d=new Set(r.filter(c=>c.type==="FIELD_NAME").map(c=>c.name));for(let c of o){let u=this.aggregateGroupKeyDisplay(c);if(!d.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(c)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}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 he(`${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:he("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),he(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 he(`+${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"?he(`-${H(n)}`):{type:"ARITH",left:he("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),he(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(t);this.expect(",");let i=this.parseCaseResult(t);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(t);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(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=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",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Za[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Za[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Dc.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){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=Sg(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 fr[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(!dg(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}=ct(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.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());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 this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:ae(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}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(!gg(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(!yg(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(!mg(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(Lc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Er[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(he(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(he(`${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 if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,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=ku(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){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}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 i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ct(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=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 u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:c,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let c=this.parseInsertRow(i.length);this.expect(")"),o.push(c)}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}=ct(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 u=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:u,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(),c=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,...c}}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(he(`${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(he(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}=ct(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(),c=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&&(c.validateOnly||c.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 u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...d,...c}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...d,...c}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...d,...c}}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}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}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((c,u)=>{let p=this.matchUpdateFromJoin(c,n,r);p!==null&&a.push({index:u,...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 c=0;c<o.length;c++){if(c!==s.index&&this.nodeContainsQualifiedField(o[c],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(c!==s.index&&this.nodeContainsForeignQualifier(o[c],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((c,u)=>u!==s.index).reduce((c,u)=>c===null?u:{type:"LOGICAL",op:"AND",left:c,right:u},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(Lc(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}=ct(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}=ct(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"||qi.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),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 Sg(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 ct(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 Tg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ig=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Z(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":Ig.has(e.fieldType)?t="option":Tg.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 x(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Ln(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Xi(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 _t(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 wg(e,t){return e<t?-1:e>t?1:0}function Uc(e){if(e==="")return{band:0};let t=_e(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 bg(e,t){let n=Uc(e),r=Uc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?bi(n.value,r.value):n.band===5&&r.band===5?_t(n.value,r.value):0}function kc(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 Pg(e,t,n){let r=kc(e,n),i=kc(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=_t(r.normalizedId,i.normalizedId);return o!==0?o:_t(r.display,i.display)}function Ng(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 Mc(e,t){let n=t.optionOrder??new Map,i=[...new Set(Ng(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(Fc),i}function Fc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:_t(e.label,t.label)}function Cg(e,t,n){let r=Mc(e,n),i=Mc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Fc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function Dt(e,t,n){switch(n.compareMode){case"string":return _t(e,t);case"number":return bg(e,t);case"recordNumber":return Pg(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Cg(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Wt(e,t,n,r=x("string")){let i=Dt(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 xc(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=_e(o),l=_e(a),d=s!==null&&l!==null?bi(s,l):wg(Number(o),Number(a));if(d!==0)return d}return _t(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function le(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(Ne(t,e.field));if(e.type==="STRING_FUNC")return Number(ue(e,t));let n=le(e.left,t),r=le(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 Ee(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ne(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 ue(e,t,n,r);case"CASE_WHEN":return Ce(e,t,n,r);case"CONCAT_OP":return ue({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Ee(e.left,t,n,r)),o=Number(Ee(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 vt(e,t,n,r){switch(e.type){case"CASE_WHEN":return $c(e,t,n,r);case"SCALAR_ARITH":{let i=vt(e.left,t,n,r),o=vt(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=vt(e.left,t,n,r),o=vt(e.right,t,n,r);return`${i??""}${o??""}`}default:return Ee(e,t,n,r)}}function Ji(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 Og(e){return e>=55296&&e<=56319}function Lg(e){return e>=56320&&e<=57343}function Zi(e,t){return t>0&&t<e.length&&Og(e.charCodeAt(t-1))&&Lg(e.charCodeAt(t))}function Kc(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 ts(e,t){let n=Math.min(Math.max(0,t),e.length);return Zi(e,n)&&(n-=1),e.slice(0,n)}function _g(e,t){let n=Math.max(0,e.length-t);return Zi(e,n)&&(n+=1),e.slice(n)}function Dg(e,t,n){let r=Kc(t,e.length),i=Kc(n,e.length);return i<=r?"":(Zi(e,r)&&(r+=1),Zi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function vg(e,t){let n=e.repeat(Math.ceil(t/e.length));return ts(n,t)}var Ug=200,Rr=new Map;function kg(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 es(e,t,n=!1){let r=kg(t)+(n?"g":""),i=`${e}\0${r}`,o=Rr.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(Rr.size>=Ug){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function Mg(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Fg(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 xg(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 c=Number(s+l);if(c>=1&&c<=n.length){i+=n[c-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 Kg(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),c=a.slice(0,d);return xg(n,o,c,l?s:void 0)})}function ue(e,t,n,r){ji(e.func,e.args);let i=e.args.map(o=>jg(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 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 Dg(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ts(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":_g(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return ts(o,a);let s=i[2]??" ";if(s==="")return o;let l=vg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return xc(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 es(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Mg(i[2]);let o=Fg(i[4]),a=es(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Kg(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return es(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{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 Ji("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Ji("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Ji("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return Ji("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 Hg(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 Qi(i[0])?String(ns(i[0])+1):"";case"QUARTER":return Qi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return Qi(i[0])?String(Gc(i[0])):"";case"DATE_FORMAT":return Gg(i[0]??"",i[1]??"");case"DATEDIFF":return $g(i[0]??"",i[1]??"");case"DATE_ADD":return Vg(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return Wg(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 gr(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 eo(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 Qi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=eo(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 ns(e){return eo(e).getUTCDay()}function Bc(e){let t=eo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Bg(e){return Bc(e).getUTCFullYear()}function Gc(e){let t=Bc(e),n=t.getUTCFullYear(),r=eo(`${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 Gg(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=gr(e),l=Qi(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(ns(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][ns(e)]:"";case"%v":return l?String(Gc(e)).padStart(2,"0"):"";case"%G":return l?String(Bg(e)).padStart(4,"0"):"";default:return d}})}function $g(e,t){if(e.length<10||t.length<10)return"0";let n=gr(e),r=gr(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 Vg(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}=gr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),d=String(a.getUTCMonth()+1).padStart(2,"0"),c=String(a.getUTCDate()).padStart(2,"0");return`${l}-${d}-${c}`}function Wg(e){if(!e||e.length<10)return e;let{y:t,mo:n}=gr(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 Hg(e,t){if(/^-?\d+$/.test(t.trim()))return Yg(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,c=i.toFixed(d),[u,p=""]=c.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,E=p?`${f}.${p}`:f;return n?E+"%":E}function Yg(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 jg(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(yr(e,t)):e.type==="NUMBER"?H(e):String(Ee(e,t,n,r))}function yr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[ae(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(yr(e.left,t)),r=Number(yr(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 Ne(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 zg(e,t,n,r,i);case"NULL_CHECK":return ey(e,t);case"LOGICAL":return ty(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 zg(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=Xc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Xg(e.left,a,i);return qg(e.op,o,e.right,t,a,n,s,i)}function qg(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(Zg(n.values),d=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?H(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let c=Qg(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=rs(n,r,o);return qc(t,d)}if(e==="NOT_LIKE"){let d=rs(n,r,o);return!qc(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=rs(n,r,o,s);return Wt(e,t,l,a)}var Vc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Xg(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?Z({fieldType:t}):x("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return x("number");if(e.type==="FUNC_FIELD")return x(Vc.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 x("number");if(o.type==="STRING_FUNC")return x(Vc.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)??x("string")}return x("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?x("number"):x("string")}var Wc=new Set(["CHECK_BOX","MULTI_SELECT"]),Hc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Jg=new Set(["CREATOR","MODIFIER"]);function Qg(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=x("number");return[...t].some(a=>Wt("=",e,a,o))}let i;if(Wc.has(n)||Hc.has(n)||Jg.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Wc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Hc.has(n)?!Array.isArray(i)||!i.every(Yc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Yc(i)?t.has(i.code):r()}function Yc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Zg(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}: ${lt}`)}function ey(e,t){let n=Xc(e.field,t);return e.not?n!=="":n===""}function ty(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 Xc(e,t,n,r){if(e.type==="FUNC_FIELD")return ue(e.expr,t);if(e.type==="AGG_FIELD")return String(yr(e.expr,t));if(e.type==="ARITH_FIELD")return String(le(e.expr,t));if(e.type==="CASE_FIELD")return Ce(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 Ne(t,i)}function rs(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 ny(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"?Ne(t,e.expr.field):e.expr.type==="STRING_FUNC"?ue(e.expr,t):String(le(e.expr,t));case"CASE_VALUE":return Ce(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ce(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return zc(i.result,t,n,r);return e.elseResult!==null?zc(e.elseResult,t,n,r):""}function $c(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return jc(i.result,t,n,r);return e.elseResult===null?null:jc(e.elseResult,t,n,r)}function jc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[ae(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Je(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?le(e,t):vt(e,t,n,r)}function zc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[ae(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Je(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(le(e,t)):String(Ee(e,t,n,r))}function Jc(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":case"PRIMARY_ORGANIZATION":return""}}function ny(e){throw J(e)?new Error(`${e}: ${Bt}`):yn(e)?new Error(`${e}: ${lt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var to=new Map,ry=200;function qc(e,t){if(!Xu(t))return e.includes(t);let n=to.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"),to.size>=ry&&to.clear(),to.set(t,n)}return n.test(e)}function _n(e){return Zc(e)}function Qc(e){return Zc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Zc(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 Re("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 Re("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 Re(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function no(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=Ee(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function is(e){if(Tt(e))throw new ee("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 iy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),oy=new Set(["CHECK_BOX","MULTI_SELECT"]);function oo(e,t=new Map){let n=e.values.map(r=>ay(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function ay(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Ut(a.expr,{},n.get(i))}:r[i]={value:pt(a,n.get(i))}}),r}function hr(e){is(e.where);let t=dp(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=sy(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function sy(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:pt(i,t.get(r))});return n}function rp(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 ao(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 os(e){is(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?ip(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Dn(n,t):n.type==="STRING_FUNC"?as(n,t):n.type==="CASE_VALUE"&&op(n.expr,t);return dp(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function ip(e,t){mr(e.left,t),mr(e.right,t)}function mr(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"?ip(e,t):e.type==="STRING_FUNC"&&as(e,t)}function as(e,t){for(let n of e.args)ly(n,t)}function ly(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){io(e,t);return}Dn(e,t)}function Dn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){as(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Dn(e.left,t),Dn(e.right,t);return}e.type==="CASE_WHEN"&&op(e,t)}function io(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&uy(e.arg,t);return}e.type==="AGG_ARITH"&&(io(e.left,t),io(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function uy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):Dn(e,t)}function ep(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){io(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){mr(e,t);return}Dn(e,t)}}function op(e,t){for(let n of e.branches)ro(n.condition,t),ep(n.result,t);e.elseResult!==null&&ep(e.elseResult,t)}function ro(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&mr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ro(e.left,t),ro(e.right,t);break;case"NOT":case"GROUP":ro(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function ss(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=ap(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:ls(d,a,n.get(l),i)};return{id:o,record:s}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function ls(e,t,n,r){if(e.type==="ARITH")return String(r?cs(e,r):le(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ee(e,t));if(e.type==="STRING_FUNC")return ue(e,t);if(e.type==="CASE_VALUE")return Ut(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ee("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return pt(e,n)}function so(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(le(e,t));if(e.type==="CASE_VALUE")return Ce(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 cy=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function us(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 ee("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=ap(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(cy.has(u??""))throw new ee(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \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,c.field))throw new ee(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let p=o[c.field];if(typeof p!="string")throw new ee(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${c.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&p!==""&&!Number.isFinite(Number(p)))throw new ee(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${p}`);l[d]={value:pt({type:"STRING",value:p},u)}}else{if(c.type==="STRING_FUNC")throw new ee("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");c.type==="ARITH"?l[d]={value:String(cs(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[d]={value:String(Ee(c,s))}:c.type==="CASE_VALUE"?l[d]={value:Ut(c.expr,s,u)}:l[d]={value:pt(c,u)}}}return{id:a,record:l}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function ap(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function cs(e,t){let n=tp(e.left,t),r=tp(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ee("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ee("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function tp(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 cs(e,t);if(e.type==="STRING_FUNC")throw new ee("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 ee(`\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 sp(e){return is(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function lp(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function up(e){return iy.has(e??"")}function py(e){return oy.has(e??"")}function dy(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 fy(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function cp(e,t){return up(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):py(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?dy(e):t==="DATE"?fy(e):e}function pp(e,t){return up(t)?e.map(n=>({code:n})):e}function np(e,t,n){if(e.type==="ARRAY")return pp(e.elements.map(r=>r.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?cp(e.value,n):e.type==="STRING_FUNC"?ue(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(le(e,t)):String(Ee(e,t))}function dp(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(_n(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Ut(e,t,n){for(let r of e.branches)if(ne(r.condition,t))return np(r.result,t,n);return e.elseResult!==null?np(e.elseResult,t,n):""}function pt(e,t){let n=ps(e,t);if(!n.ok)throw new ee(n.message);return n.value}function ps(e,t){try{return{ok:!0,value:Ey(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Ey(e,t){switch(e.type){case"VARIABLE":throw new ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return cp(e.value,t);case"NUMBER":return H(e);case"ARRAY":return pp(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ee(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ee("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ee("\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 ee("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 ee("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ee("\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 Sr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ee=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ds=new Set(["CHECK_BOX","MULTI_SELECT"]),Ry=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function fp(e,t,n){let r=gy(n.fieldType,e.field),i=yy(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let y=m.value;y!==""&&(m.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let m of s)l.has(m)&&Tr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),c=a.filter(m=>!o.has(m)),u=[...d,...c],p=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let y=m.kind==="ADD"?f:E,S=!y.has(m.value);return y.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&S&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),g=ds.has(r)?u:u.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:g,addedValues:c.length,removedValues:p,changedValues:c.length+p}}function gy(e,t){return ds.has(e)||Ry.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function yy(e,t,n){if(!Array.isArray(e))return Tr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ds.has(t)?typeof i!="string"?Tr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Tr(`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 Rs(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 dt(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)fs(s.field,null,r),my(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(u=>u.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.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(ju(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,c=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,d),a.set(s.field,c);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)fs(p.field,s.field,r,c),Es(p.value,s.field,r,c);u.selector.kind==="WHERE"&&Es(u.selector.where,s.field,r,c)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),fs(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Es(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function my(e,t){Ir(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 fs(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 Es(e,t,n,r){Ir(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 lo(e,t){let n=dt(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)Ir(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function uo(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=hp(i?.value);return n}function Rp(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??dt(t,r),o=ms(n.$id?.value,"APPLY snapshot $id"),a=Rs(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),yp(t,n,i,o)}function gp(e,t,n,r=dt(e,n)){let i=new Set;return t.map(o=>{let a=ms(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),yp(e,o,r,a)})}function yp(e,t,n,r){let i=ms(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let N=n.targetMultiValueFields.get(c.field);N||Y(`APPLY multi-value metadata for ${c.field} is missing.`),a.push(fp(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=wy(t,c.field),f=new Set;for(let N of p)N.id||Y(`APPLY snapshot for ${c.field} contains a row without _rid.`),f.has(N.id)&&Y(`APPLY snapshot for ${c.field} contains duplicate _rid ${N.id}.`),f.add(N.id);let E=N=>N.field==="_rid"?"SINGLE_LINE_TEXT":N.field==="_idx"?"NUMBER":u.get(N.field)?.fieldType,R=[],g=[],m=[],y=new Set,S=new Set,A=new Set,I=c.operations.some(N=>N.kind==="REMOVE");for(let[N,_]of c.operations.entries()){if(_.kind==="APPEND"){let L=gs(_,u,c.field);m.push({kind:"APPEND",addedRows:L.length}),g.push(...L);continue}if(_.kind==="REMOVE"){let L=Sy(_,p,E,c.field);_.expectRows&&Ep(_.expectRows,L.length,r,c.field,N,_.kind),m.push({kind:"REMOVE",removedRows:L.length});for(let v of L){let h=p[v].id;S.has(v)&&Y(`APPLY row ${h} is selected by both PATCH and REMOVE.`),A.has(v)&&Y(`APPLY removes row ${h} more than once.`),A.add(v)}continue}if(_.kind!=="PATCH")continue;let U=Ay(_,p,E,c.field);_.expectRows&&Ep(_.expectRows,U.length,r,c.field,N,_.kind),m.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let L of U){let v=p[L];A.has(L)&&Y(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),S.add(L);let h=uo(v,L);for(let P of _.assignments){let M=`${v.id}\0${P.field}`;y.has(M)&&Y(`APPLY patches cell ${v.id}.${P.field} more than once.`),y.add(M),R.push({rowIndex:L,field:P.field,value:so(P.value,h,E)})}}}let w=new Map;for(let N of R){let _=w.get(N.rowIndex)??{};_[N.field]={value:N.value},w.set(N.rowIndex,_)}let b=[...p.flatMap((N,_)=>A.has(_)?[]:[{id:N.id,value:{...N.value,...w.get(_)??{}}}]),...g],D={table:c.field,operations:m,changedSubtableRows:w.size+A.size+g.length,deletedRows:A.size,snapshotRowIds:p.map(N=>N.id),postImageRows:b};I?o.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:p.flatMap((N,_)=>A.has(_)?[N.id]:[]),payloadRows:b.map(N=>({...N.id===void 0?{}:{id:N.id},value:N.value}))}):o.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...p.map((N,_)=>{let U=w.get(_);return U?{id:N.id,value:U}:{id:N.id}}),...g.map(N=>({value:N.value}))]})}let s=by(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:ls(c.value,s,u,t)}}let d={...t};Object.assign(d,l);for(let c of o)d[c.table]={value:c.postImageRows};for(let c of a)d[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((c,u)=>c+u.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function Ep(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 co(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 c=a[d];return c?.value?l.id===void 0?{value:c.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,c.value[u]]))}: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 gs(e,t,n){return e.values.map(r=>({value:hy(e,r,t,n)}))}function hy(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?ys(a):s.type==="CASE_VALUE"?Ut(s.expr,{},a.fieldType):pt(s,a.fieldType)}}return o}function ys(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 Ay(e,t,n,r){return mp(e.selector,t,n,r)}function Sy(e,t,n,r){return mp(e.selector,t,n,r)}function mp(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,uo(l,d),n)?[d]:[]),a=Ty(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Iy(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Ty(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 Iy(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 wy(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 ms(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function by(e){let t={};for(let[n,r]of Object.entries(e))t[n]=hp(r?.value);return t}function hp(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 Ir(e,t){if(Array.isArray(e)){e.forEach(r=>Ir(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))Ir(r,t)}function oe(e){throw new Error(`ArgumentError: ${e}`)}function fo(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?oe("APPLY snapshot $revision must be a positive integer."):t}function wr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return oe("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return oe("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)&&oe(`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)&&oe(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&oe(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),Py(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Ap(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 oe("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 Py(e){let t=hs(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(c=>c.id===void 0?[]:[c.id]);for(let c of e.payloadRows)c.id===void 0&&c.value===void 0&&oe(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(hs(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&oe(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let c=e.payloadRows.slice(0,t.length).map(p=>p.id??"");po(t,c,`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)&&oe(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");po(t,u,`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)&&oe(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(c=>c.kind==="REMOVE")||oe(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=hs(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&oe(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&oe(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(c=>c.id===void 0?[]:[c.id]),o=new Set(r),a=new Set(i);for(let c of r)a.has(c)&&oe(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${c}.`);let s=t.filter(c=>!o.has(c));po(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(c=>c.id??"");po(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(c=>c.id!==void 0)||e.postImageRows.slice(i.length).some(c=>c.id!==void 0))&&oe(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(c=>c.value===void 0)&&oe(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((c,u)=>!As(c.value,e.postImageRows[u]?.value))&&oe(`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(c=>!d.has(c)))&&oe(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function hs(e,t){let n=[...e],r=new Set;for(let i of n)i||oe(`APPLY ${t} contains an empty row id.`),r.has(i)&&oe(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function po(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&oe(n)}function As(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)=>As(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)&&As(n[a],r[a]))}function Sp(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 Tp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Sp(t.digits,"digits",1,30),r=Sp(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 Ip(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 Ny=new Set(["CHECK_BOX","MULTI_SELECT"]),Cy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Oe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Oy(e);if(i!==""&&!Ly(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=br(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:_y(t.fieldType),message:o}}if(t.required&&Eo(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Eo(r)&&t.fieldType==="NUMBER"){let i=String(r),o=_e(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}=Ip(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(!Eo(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ht(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!Eo(r)&&Cy.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 Oy(e){return e==null?"":Ro(e)&&e.type==="NUMBER"?H(e):Ro(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Ly(e,t){if(t==="DATE")return Ht(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ht(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)?Ht(n.slice(0,10),"DATE")&&Ht(n.slice(11),"TIME"):Ht(n,"DATETIME")}function br(e,t){if(Ro(e)){let r=ps(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(Ny.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 Ro(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ro(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Eo(e){return e===""||Array.isArray(e)&&e.length===0}function _y(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ht(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)&&Ht(l,"TIME")}var vn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ss(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(c=>typeof c=="object"&&c!==null&&"code"in c),d=a;try{d=br(a,s)}catch{}i.record[o]={value:l?a:d}}}}function Ts(e,t,n,r,i,o,a,s=[],l=!0,d=!0,c={}){let u=new Map(i.map(g=>[g.code,g])),p=[],f=new Set,E=[];c.validateUpdateBuiltIns===!1&&Ss(e,r,i);let R;for(let g of e){g.record??(g.record={});let m=d?[...g.preErrors]:[],y=[],S=[],A=g.mode==="create"||c.validateUpdateBuiltIns!==!1;for(let b of r){if(!g.payload.has(b))continue;let D=g.payload.get(b),N=u.get(b).fieldType,_=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(N)&&Array.isArray(D)&&D.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!A)continue;let U=Oe(D,u.get(b),a);U.ok?g.record[b]={value:_?D:U.value}:y.push({field:b,code:U.code,message:U.message})}if(l&&g.mode==="create")for(let b of i){if(b.inSubtable||g.payload.has(b.code))continue;if(Yt(b.defaultValue)){let N=Oe("",b,a);N.ok?b.required&&y.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:b.code,code:N.code,message:N.message})}else{let N=Oe(b.defaultValue,b,a);N.ok||y.push({field:b.code,code:N.code,message:`\u65E2\u5B9A\u5024: ${N.message}`})}}if(s.length>0){let b=g.evaluationRow??Object.fromEntries([...g.payload].map(([_,U])=>[_,Qe(U)])),D=g.evaluationFieldTypes,N=_=>{let U=_.tableAlias?`${_.tableAlias}.${_.field}`:_.field;return D?.get(U)??D?.get(_.field)};try{for(let _ of no(s,b,N))S.push({field:"",code:"ERR_CHECK",message:_.message})}catch(_){R??(R=_)}}let I=b=>b.map(D=>{let N={};for(let _ of n)N[_]=Qe(g.payload.get(_));return N.$err_statement=String(o),N.$err_operation=t,N.$err_row=String(g.rowNumber),N.$err_field=D.field,N.$err_code=D.code,N.$err_message=D.message,N.$err_value="",N.$err_subtable="",N.$err_subrow="",N.$err_subrow_id="",N}),w={rowNumber:g.rowNumber,preErrors:I(m),builtInErrors:I(y),checkErrors:I(S)};E.push(w);let C=[...w.preErrors,...w.builtInErrors,...w.checkErrors];C.length>0&&f.add(g.rowNumber),p.push(...C)}if(R!==void 0)throw R;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Qe(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 ws(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 bs(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 Dy(e){return ws(e).length>0}function vy(e){return e.fieldType==="NUMBER"||Dy(e)}function go(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Ps(e,t){let{topByCode:n,childrenByTable:r}=bs(t),i=vy;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 c=d?`${d}\0${l.code}`:l.code;if(a.has(c))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(c),!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 u=r.get(l.subtableCode);if(!u)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=u.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([R,g])=>R!==l.subtableCode&&g.some(m=>m.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 c=n.get(d);if(c?.fieldType==="SUBTABLE"){let u=(r.get(d)??[]).filter(i);if(u.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`);u.forEach(p=>s(p,d));continue}if(c){s(c);continue}throw[...r.values()].some(u=>u.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 Pr(e,t){return Yt(e)?"":Qe(br(e,t))}var Uy=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Nr=vn;function Ze(e,t=["$id"]){let n=bs(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!Uy.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 jt(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 zt(e,t,n,r,i=1,o="UPDATE"){let a=ky(e),s=[],l=new Set,d=[...t.payloadFields,...Nr],c=Qe(e.$id?.value),u=(p,f,E,R)=>{l.add(i);let g={};for(let m of t.payloadFields)g[m]=m==="$id"?c:Qe(e[m]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=p.code,g.$err_code=E.code,g.$err_message=E.message,g.$err_value=Pr(f,p.fieldType),g.$err_subtable=R?.subtable??"",g.$err_subrow=R?String(R.subrow):"",g.$err_subrow_id=R?.subrowId??"",s.push(g)};for(let p of t.topLevel){let f=e[p.code]?.value,E=Oe(f,p,n);E.ok?a[p.code]={value:wp(f,p.fieldType,E.value)}:u(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 g=0;g<E.length;g++){let m=E[g],y=R[g];for(let S of f){let A=m.value?.[S.code]?.value,I=Oe(A,S,n);I.ok?(y.value??(y.value={}),y.value[S.code]={value:wp(A,S.fieldType,I.value)}):u(S,A,I,go(p,g,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function wp(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 ky(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 yo(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;bp(o,"dmlMaxRows"),bp(a,"dmlMaxSubtableRows");for(let S of n)fo(S);let l=gp(t,n,r,i),d=Ze(r,t.assignments.map(S=>S.field)),c=l.some(S=>jt(S.postImage,d));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,p=l.map((S,A)=>zt(S.postImage,d,u,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=p.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=l.length,E=l.reduce((S,A)=>S+A.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 g=l.map((S,A)=>co(S,p[A].normalizedRecord)),m=g.flatMap(S=>wr(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Pp({plans:g,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function bp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Pp(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))Pp(n,t);return Object.freeze(e)}var Ns=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function mo(e,t){if(new Set(e.fields).size!==e.fields.length)return et("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Np(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return et(`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 et(`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 et(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let c of l.fields){if(d.has(c))return et(`APPLY APPEND specifies child ${c} more than once.`);d.add(c),Np(c,o.field,n,s)}for(let c of l.values)if(c.length!==l.fields.length)return et(`APPLY APPEND for ${o.field} has ${c.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function My(e,t,n=mo(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=oo(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(c=>gs(c,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Ns.has(u.fieldType)||(d[u.code]=s[u.code]??{value:ys(u)});let c={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));d[u.table]={value:p},c[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:c}})}async function Cr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Cp(r,"dmlMaxRows"),Cp(i,"dmlMaxSubtableRows");let a=e.metadata??mo(t,n),s=My(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Ns.has(A.fieldType)),d=Ze(l,t.fields),c=s.some(A=>jt(A.postImage,d));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,p=s.map(A=>zt(A.postImage,d,u,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=p.flatMap(I=>I.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:A})}`)}let f=s.length,E=s.reduce((A,I)=>A+I.tables.reduce((w,C)=>w+C.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 g=s.map((A,I)=>{let w=p[I].normalizedRecord,C={};for(let b of t.fields)C[b]=w[b];for(let b of A.tables){let D=w[b.table]?.value;C[b.table]={value:b.rows.map((N,_)=>({value:Object.fromEntries(Object.keys(N.value).map(U=>[U,D[_]?.value?.[U]??N.value[U]]))}))}}return{...A,postImage:w,record:C}}),m=g.map(A=>A.record),y=[];for(let A=0;A<m.length;A+=100)y.push({app:t.appId,records:m.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return Op({applyBlocks:t.applyBlocks??[],candidates:g,records:m,batches:y,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Np(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return et(`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?et(`APPLY child ${e} does not belong to subtable ${t}.`):et(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Ns.has(i.fieldType))return et(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Cp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function et(e){throw new Error(`ArgumentError: ${e}`)}function Op(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))Op(n,t);return Object.freeze(e)}async function _p(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Lp(i,"dmlMaxRows"),Lp(o,"dmlMaxSubtableRows"),Gy(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Fy(t,s.map(m=>m.sourceRowIndex)),c=await Cr({statement:d,fieldInfos:r,metadata:mo(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let m of l){let y=m.targetId;p.has(y)&&Cs(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),m.snapshot||Cs(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(m.snapshot.$id?.value);S!==y&&Cs(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let A=xy(t,m.sourceRowIndex,y),I=A.applyBlocks?.length?dt(A,r):Ky(r);u.push(await yo({statement:A,snapshots:[m.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=By(u,i,o),E=c.guards.parentRows+f.guards.parentRows,R=c.guards.subtableRows+f.guards.subtableRows,g=E>i||R>o;if(!t.validateOnly){let m=[...c.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.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 Os({create:c,update:f,createBatches:c.batches,updateBatches:$y(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:g,create:c.guards,update:f.guards}})}function Fy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function xy(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 Ky(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function By(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 Os({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 Gy(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 $y(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 Lp(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 Os(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))Os(n,t);return Object.freeze(e)}function Lr(e){return Un("UPDATE",[Up(e)])}function Ls(e){return Un("INSERT",[vp(e)])}function _s(e){return Un("UPSERT",[vp(e.create),Up(e.update)])}function ke(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 Ao(e,t,n){return e.type==="UPDATE"?Un("UPDATE",[ho("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Un("INSERT",[ho("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Un("UPSERT",[ho("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ho("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Un(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function vp(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 Up(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:Dp(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:Dp(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 Dp(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:Or(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Or(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Or(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Or(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Or(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Or(e,t){return e==null||t===null?null:e+t}function ho(e,t,n,r,i,o){let a=t.map(c=>{let u=c.operations.map(f=>Vy(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,E)=>f+E.count,0):null;return{targetKind:c.targetKind,field:c.field,operations:u,changedCount:p}}),s=a.filter(c=>c.targetKind==="SUBTABLE"),l=s.every(c=>c.changedCount!==null)?s.reduce((c,u)=>c+u.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 Vy(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 tt=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 kp(e,t,n){Sn("phase10c");let r=Ap(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 tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(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 Mp(e,t,n){Sn("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 tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(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 Fp(e,t,n){Sn("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 c=await t.postRecords({app:d.app,records:[...d.records]});r.push(c.ids)}catch(c){throw new tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},c)}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(c){throw new tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},c)}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 Wy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Hy(e){if(!Wy.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 Yy(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Hy(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 Ds(e,t){let n=Yy(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 jy(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 vs(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 jy(i)?!0:Object.values(i).some(n)};return n(e)}function xp(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Kp(e,t){let n=re(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 nt(e){if(e===null)return!1;switch(e.type){case"BINARY":return So(e.left);case"NULL_CHECK":return So(e.field);case"LOGICAL":return nt(e.left)||nt(e.right);case"NOT":case"GROUP":return nt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function So(e){if(Array.isArray(e))return e.some(So);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(So)}async function He(e,t,n,r,i){let o=await be(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 He(e,t,n,["$id"],r);return{ids:vu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],zy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),qy=new Set(Me),Xy=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"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),Jy=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Qy=["=","!=","in","not in"],Zy=new Map([["RECORD_NUMBER",new Set([...Me,"in","not in"])],["__ID__",new Set([...Me,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Me)],["UPDATED_TIME",new Set(Me)],["DATE",new Set(Me)],["TIME",new Set(Me)],["DATETIME",new Set(Me)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Me,"in","not in"])],["CALC",new Set([...Me,"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(Qy)]]),em=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"])]]),Ms=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"]),$p=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Vp(e){return Zy.get(e)??new Set}function Wp(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Ms.has(o.fieldType)&&Vp(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ge(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Dr(e,t)}function Dr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return tm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ks():im(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ks();case"GROUP":return Dr(e.expr,t);case"NOT":{let n=Dr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Yp(n.reasons)?Ur({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Dr(e.left,t),r=Dr(e.right,t);return am(e.op,n,r)}}}function tm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return nm(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Bp(n))return Gp(e,t,n,r);if(n.type==="IN_LIST"){let c=n.values.filter(u=>u.type==="KINTONE_FUNC");if(c.length>0)return n.values.length===1&&c.length===1?Gp(e,t,c[0],r):Io("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",c[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,vr(e))}if(t.type!=="FIELD")return ks();let i=r(t);if(!i)return kn("WHERE_FIELD_UNRESOLVED",t.field,void 0,vr(e));let o=vr(e);if(!Hp(i.fieldType,o))return kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!om(i.fieldType,e))return kn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Vp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Bp(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 Bp(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function Gp(e,t,n,r){let i=vr(e),o=n.name;if(!Kt.has(o)||t.type!=="FIELD")return Io("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Xy.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Io("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Jy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Io("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function nm(e,t,n,r){let i=vr(e),o=n.name;if(t.type!=="FIELD")return _r("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?rm(n)?qy.has(i)?!zy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?_r("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}]}:_r("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function rm(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 im(e,t,n){let r=n(e);return r?Hp(r.fieldType,t)?!Ms.has(r.fieldType)&&!$p.has(r.fieldType)?kn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):kn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Hp(e,t){let n=em.get(e);return n===void 0||n.has(t)}function om(e,t){return Ms.has(e)?!0:$p.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function vr(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 am(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Ur({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")?Ur({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Ur({capability:"LOCAL_ONLY",reasons:r})}function ks(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function kn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Io(e,t,n,r,i){return Ur({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function _r(e,t,n,r,i){return jp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Yp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function sm(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Kt.has(t.functionName))}function jp(e){if(e.capability==="EXACT_PUSHDOWN"||!Yp(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 lm(e){if(e.capability==="EXACT_PUSHDOWN"||!sm(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&&Kt.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 Ur(e){return lm(jp(e))}var um=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),cm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),pm=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Fn(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)?qp(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"}):qp(n[0],e.field)}function xs(e,t){if(e.left.type!=="FIELD")return kr();let n=Fn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return kr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ge(e,a=>{let s=Fn(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:Z({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return kr();let o=gm(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function Xp(e,t){let n=de(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Fn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ge(e,o=>{let a=Fn(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:Z({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Jp(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:ed(Mn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=dm(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)qt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Rm(e,t)),fetchQueriesByAlias:new Map,...o})}function Qp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Xt(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,xn(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=xn({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Xt(Oo(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||!Xt(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&&!Xt(Oo(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))||Zp(Em(e))!==e.allKlikes.length))}function dm(e,t){if(e===null)return zp(null);let n=Object.freeze([...de(e)]);if(n.length===0)return zp(e);let r=fm(e,t,n);if(r!==null)return r;let i=Po(e),o=[],a=new Set;for(let u of i){let p=Xp(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},E;try{E=xn(f,t)}catch{continue}let R=Oo(E);Xt(R,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),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=No(e,a),l=Object.freeze(s===null?[]:[...de(s)]),d=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),c=Xt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:c,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function fm(e,t,n){let r=wo(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=xn(i,t)}catch{return null}if(!Xt(Oo(o),n))return null;let a=new Set;if(qt(e,a),Zp(o)!==a.size)return null;let s=Object.freeze(bo(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 wo(e,t){switch(e.type){case"BINARY":{if(de(e).length>0){let i=Xp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=xs(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=wo(e.left,t),r=wo(e.right,t);return n!==null&&r!==null&&Lo(n,r)?n:null}case"GROUP":case"NOT":return wo(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function bo(e){switch(e.type){case"BINARY":return de(e).length>0?[e]:[];case"LOGICAL":return[...bo(e.left),...bo(e.right)];case"GROUP":case"NOT":return bo(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function zp(e){let t=e===null?[]:de(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Po(e){switch(e.type){case"BINARY":return de(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Po(e.left),...Po(e.right)]:[];case"GROUP":return Po(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function No(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=No(e.left,t),r=No(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=No(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Oo(e){let t=[];for(let n of Zn){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 Xt(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 Zp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Em(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Rm(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=Fn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Co(i.right)){n.add("CROSS_TABLE_BINARY");return}xs(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(id(i)){n.add("KLIKE_OR");return}let o=Mn(i.left,t),a=Mn(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 xn(e,t){return Mr(e.predicate,e,t),V(e.predicate)}function Mr(e,t,n){switch(e.type){case"LOGICAL":Mr(e.left,t,n),Mr(e.right,t,n);return;case"GROUP":Mr(e.expr,t,n);return;case"NOT":Mr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Co(e.right))throw Fs(t,"predicate contains a non-target or RHS field reference");let r=Fn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Fs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Fs(t,"predicate shape is outside the Phase A serializer contract")}}function Fs(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Mn(e,t){switch(e.type){case"BINARY":{let n=xs(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Mn(e.left,t),r=Mn(e.right,t);if(e.op==="AND")return ed([...n,...r]);if(id(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:td(i.relation,o.relation)}]:[]}case"GROUP":return Mn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ed(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:td(i.relation,n.relation)}}return t}function gm(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return cm.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return ym(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===">")&&nd(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"||pm.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?rd(e.right.value)?"superset":"unsafe":n==="TIME"?mm(e.right.value)?"superset":"unsafe":hm(e.right.value)?"superset":"unsafe";if(um.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 qp(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function kr(){return Object.freeze({relation:"unsafe"})}function Lo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function td(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function ym(e){return e.type==="NUMBER"&&nd(e)&&e.value>0}function nd(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function rd(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 mm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function hm(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!rd(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function qt(e,t){if(e!==null){if(It(e)){t.add(e);return}switch(e.type){case"LOGICAL":qt(e.left,t),qt(e.right,t);return;case"NOT":case"GROUP":qt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function id(e){let t=new Set;return qt(e,t),t.size>0}function Co(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Co);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Co)}function Ks(e,t){let n=cr(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 Am(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Sm(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Fr(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=Am(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"&&!Sm(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 Tm=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 Im(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function xr(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(Im(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}Tm.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 _o=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"}},Do=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}},vo=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 od(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 vo(a).message}}return{records:n,cleanupWarning:o}}function Bs(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 ad=["$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 Gs(e){return e.startsWith("_")||e.startsWith("$")}var wm=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Vs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Vs);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"?wm.test(t.field):Object.values(t).some(Vs)}function bm(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 ve(e)||Vs(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Pm=["_pid","_rid","_idx"];function $s(e){return[...new Set(e)]}function Nm(e){switch(e.kind){case"APP":return $s([...e.fieldCodes,...ad]);case"SUBTABLE":return $s([...e.childFieldCodes,...Pm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return $s(e.columns)}}function sd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Nm(t(r,i))}))}function Cm(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 Om(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Lm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function _m(e,t,n){let r=Cm(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:Om(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Lm(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=bm(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&&ae(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function ld(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?_m(r.name,t,n):{kind:"EXPRESSION"})}}var Dm={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 ud(e,t){let n=Dm[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 cd(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=>ud(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=ud(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function ft(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 vm(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(pd(e,a,r.leftColumns),pd(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let E of e){let R=E[a]??"",g=u.get(R);g?g.push(E):u.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]??"",g=u.get(R)??[];if(g.length>0)for(let m of g)f.push({...m,...E});else f.push({...p,...E})}return f}let l=new Map;for(let u of t){let p=u[s]??"",f=l.get(p);f?f.push(u):l.set(p,[u])}let d=[],c={};for(let u of r.rightColumns??Object.keys(t[0]??{}))c[u]="";for(let u of e){let p=u[a]??"",f=l.get(p)??[];if(f.length>0)for(let E of f)d.push({...u,...E});else o==="LEFT"&&d.push({...u,...c})}return d}function pd(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 Um(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function hd(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&ve(t.expr)||t.type==="STRFUNC_COL"&&Wr(t.expr)||t.type==="SCALAR_VALUE_COL"&&kt(t.expr))}function km(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((u,p)=>Fm(u,l,i?.items[p],n,o)).join("\0"),c=a.get(d);c?c.push(l):a.set(d,[l])}a.size===0&&t.length===0&&hd(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let c of t)c.type==="ARITH_KEY"?d[qs(c.expr)]=String(le(c.expr,l[0])):c.type==="FUNC_KEY"&&(d[Mt(c.expr)]=ue(c.expr,l[0]));Ad(d,l,n,r),s.push(d)}return s}function Mm(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},c=[];for(let p of e){let f=d;for(let E of l.items){let R=dd(E,p),g=f.children.get(R);g||(g={children:new Map},f.children.set(R,g)),f=g}f.rows||(s(),f.rows=[],c.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),d.rows=[],c.push(d.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of c){let f={...p[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,dd(R,p[0]));for(let R of t.allItems){let g=E.get(R.canonicalId)??"";f[R.directKey]=g,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=g)}Ad(f,p,n,r),ac(f,u),o.push(f)}}return o}function dd(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Ad(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=ae(o.func,o.distinct,o.arg),s=String(Gr(o.func,o.distinct,o.arg,o.separator,t,r));e[o.alias??a]=s,o.alias&&(e[a]=s)}else if(o.type==="ARITH_AGG_COL"){Uo(e,t,o.expr,r);let a=o.alias??Bn(o.expr);e[a]=String(Kr(o.expr,t,r))}else if(o.type==="STRFUNC_COL"&&Wr(o.expr)){Uo(e,t,o.expr,r);let a=o.alias??Mt(o.expr),s=Xs(o.expr,t,r);e[a]=ue(s,e)}else if(o.type==="SCALAR_VALUE_COL"&&kt(o.expr)){Uo(e,t,o.expr,r);let a=o.alias??rt(o.expr),s=Br(o.expr,t,r);e[a]=String(Ee(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){Uo(e,t,o.expr,r);let a=Nd(o.expr,t,r),s=l=>l.aggregateRef?Id(l.aggregateRef,r):void 0;e[Sd(o.alias,i)]=Ce(a,e,void 0,s)}}function Sd(e,t){return e??`__ksql_case_column_${t}`}function Hs(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Hs(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>Hs(r,t))}function Uo(e,t,n,r){let i=[];Hs(n,i);for(let o of i){let a=ae(o.func,o.distinct,o.arg);e[a]===void 0&&(e[a]=String(Gr(o.func,o.distinct,o.arg,o.separator,t,r)))}}function Fm(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=ko(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"?ue(e.expr,t):String(le(e.expr,t))}function Gr(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=Td(e,n,i).filter(f=>f!==null),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 c=e==="MIN"||e==="MAX"||e==="MODE"?$r(n,o):void 0,u=typeof c=="string"?x(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?x("string"):x("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let E="",R=0;for(let[g,m]of f){if(m>R){E=g,R=m;continue}if(m!==R)continue;let y=Dt(g,E,u);(y<0||y===0&&_t(g,E)<0)&&(E=g)}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 g=Dt(R,E,u);(e==="MAX"&&g>0||e==="MIN"&&g<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,g)=>R-g),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,g=0,m=0;for(let S of p){let A=S-E;R++;let I=A-g;g+=I/R,m+=I*(A-g)}let y=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function Td(e,t,n){return n.map(r=>{let i;if(t.type==="FIELD_REF"){let o=r[t.field];if(o===void 0||o===""&&e!=="MIN"&&e!=="MAX")return null;i=o}else if(t.type==="ARITH"||t.type==="NUMBER"){let o=le(t,r);if(isNaN(o))return null;i=String(o)}else{let o=vt(t,r);if(o===null||o===""&&e!=="MIN"&&e!=="MAX"||typeof o=="number"&&Number.isNaN(o))return null;i=String(o)}return i})}function xm(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 Kr(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Gr(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=Kr(e.left,t,n),i=Kr(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 Bn(e){return Je(e)}function $r(e,t){if(e.type==="FIELD_REF")return t?.(xm(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=>$r(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 Id(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return x("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return x("string");let n=e.arg.type==="WILDCARD"?"string":$r(e.arg,t)??"string";return typeof n=="string"?x(n):n}function Km(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function Bm(e,t,n,r,i){if(e.length===0)return e;let o=Gm(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 Gm(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(jm(t,a,o))}function Ys(e,t,n,r,i,o){return t.length===0?e:wd(e,t,n,r,i,o).rows.map(a=>a.row)}function wd(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:x("number")};if(d.type==="FUNC_KEY")return{semantics:x(bd.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:x("number")};let c=i?.get(d.name);if(c)return{semantics:c};let u=n?.get(d.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:x(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:c},u)=>({s:Wm(c,d,o)}))})),l=(d,c)=>$m(d,c,t,a);return s.sort(l),{rows:s,compare:l}}function $m(e,t,n,r){for(let i=0;i<n.length;i++){let o=Vm(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Vm(e,t,n){return Dt(e.s,t.s,n.semantics)}var bd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Wm(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(le(e.expr,t));case"FUNC_KEY":return ue(e.expr,t);case"GROUPING_KEY":return In(e.ref,t)}}function js(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=>Ne(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=ae(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Bn(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(le(a.expr,l)));break;case"STRFUNC_COL":{let l=Mt(a.expr);i.set(s,d=>Wr(a.expr)?d[s]??d[l]??ue(a.expr,d,n,r):ue(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr)?l[s]??"":Ce(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=rt(a.expr);i.set(s,d=>kt(a.expr)?d[s]??d[l]??"":String(Ee(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 zs(e,t,n,r,i,o){let a=t.filter(s=>s.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s of a){let l=new Map;for(let d of e){let c=JSON.stringify(s.partitionBy.map(p=>Ym(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=wd(d,s.orderBy,n,r,i),u=c.rows;if(!_a(s)){Hm(s,c,o);continue}let p=1,f=1;for(let E=0;E<u.length;E++){E>0&&c.compare(u[E-1],u[E])!==0&&(p=E+1,f++);let R=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?p:f;u[E].row[s.alias]=String(R)}}}return e}function Hm(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:Td(e.aggFunc,e.arg,r.map(u=>u.row)),o=e.arg.type==="WILDCARD"?void 0:$r(e.arg,n),a=typeof o=="string"?x(o):o??x("string"),s=[],l=0,d=0,c;for(let u=0;u<r.length;u++){let p=i?.[u]??null;if(e.arg.type==="WILDCARD")l++;else if(p!==null)if(e.aggFunc==="COUNT")l++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")d+=Number(p),l++;else if(c===void 0)c=p;else{let E=Dt(p,c,a);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(c=p)}let f=e.aggFunc==="COUNT"?l:e.aggFunc==="SUM"?d:e.aggFunc==="AVG"?l===0?0:d/l:c??0;s.push(String(f))}if(e.frame===null){let u=s[s.length-1];for(let p of r)p.row[e.alias]=u;return}if(e.frame.unit==="RANGE"){for(let u=0;u<r.length;){let p=u;for(;p+1<r.length&&t.compare(r[p],r[p+1])===0;)p++;for(let f=u;f<=p;f++)r[f].row[e.alias]=s[p];u=p+1}return}for(let u=0;u<r.length;u++)r[u].row[e.alias]=s[u]}function Ym(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ne(e,n)}function Mo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function ko(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 Ne(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=ae(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Bn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(le(e.expr,t));case"CASE_COL":return ve(e.expr)?t[Sd(e.alias,n)]??"":Ce(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return In(e.ref,t);case"STRFUNC_COL":{let i=Mt(e.expr);return Wr(e.expr)?t[e.alias??i]??t[i]??ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=rt(e.expr);return kt(e.expr)?t[e.alias??i]??t[i]??"":String(Ee(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function jm(e,t,n={}){return e.map((r,i)=>{let o=ko(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Vr(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(R=>{let g=yd(Ed(R),a),m=ko(t[0],R,0,{wildcardKeys:Object.keys(g)}),y={};if(typeof m!="string")for(let[S,A]of m.entries)A!==null&&(y[S]=A);return y}),E=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:E}}let s=Jm(t),l=Xm(t),d=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=d?null:zm(t,s,l),u=c??[];return d&&e.length===0?{rows:[],columns:qm(t,s,l)}:{rows:e.map((f,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(yd(Ed(f),a)),parentWildcardKeys:Object.keys(f).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let S=ko(y,f,m,g);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(R[A]=I);break;case"PARENT_WILDCARD":{if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(R[A]=I),E===0&&u.push(A);break}case"FIELD":{let A=c?.[m]??y.alias??s.get(m)??y.field;R[A]=S,c===null&&E===0&&u.push(A);break}case"LITERAL_COL":{let A=c?.[m]??y.alias??`'${y.value}'`;R[A]=S,c===null&&E===0&&u.push(A);break}case"AGGREGATE":{let A=ae(y.func,y.distinct,y.arg),I=c?.[m]??y.alias??A;R[I]=S,c===null&&E===0&&u.push(I);break}case"ARITH_AGG_COL":{let A=c?.[m]??y.alias??Bn(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"ARITH_COL":{let A=c?.[m]??y.alias??qs(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"CASE_COL":{let A=c?.[m]??y.alias??l.get(m)??"case";R[A]=S,c===null&&E===0&&u.push(A);break}case"GROUPING_COL":{let A=c?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;R[A]=S,c===null&&E===0&&u.push(A);break}case"STRFUNC_COL":{let A=c?.[m]??y.alias??Mt(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=c?.[m]??y.alias??rt(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=c?.[m]??y.alias??"(subquery)";R[A]=S,c===null&&E===0&&u.push(A);break}case"WINDOW_COL":{let A=c?.[m]??y.alias;R[A]=S,c===null&&E===0&&u.push(A);break}}}return R}),columns:u}}function zm(e,t,n){return e.map((r,i)=>Pd(r,i,t,n))}function qm(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=Pd(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Pd(e,t,n,r){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??ae(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Bn(e.expr);case"ARITH_COL":return e.alias??qs(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Mt(e.expr);case"SCALAR_VALUE_COL":return e.alias??rt(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 Xm(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function Jm(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=fd(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=fd(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 fd(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ed(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function qs(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"?Mt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Mt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Bn(n):n.type==="VARIABLE"?`@${n.name}`:rt(n));return`${e.func}(${t.join(",")})`}function rt(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 Mt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${rt(e.left)}${e.op}${rt(e.right)}`;case"CONCAT_OP":return`${rt(e.left)}||${rt(e.right)}`}}function Qm(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:kt(e)}function kt(e){return e.type==="STRING_FUNC"?Wr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?kt(e.left)||kt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Rd(t.result))||e.elseResult!==null&&Rd(e.elseResult):!1}function Rd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:kt(e)}function Wr(e){return e.args.some(t=>Qm(t))}function Zm(e,t,n){if(e.type==="AGG_REF"){let r=Gr(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=Kr(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Ne(t[0]??{},r)),raw:Ne(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Xs(e,t,n):Br(e,t,n)}function Br(e,t,n){return e.type==="STRING_FUNC"?Xs(e,t,n):e.type==="CASE_WHEN"?Nd(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Br(e.left,t,n),right:Br(e.right,t,n)}:e}function gd(e,t,n){if(e.type==="AGG_REF"){let r=Gr(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=Kr(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Br(e,t,n)}function Nd(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:gd(r.result,t,n)})),elseResult:e.elseResult===null?null:gd(e.elseResult,t,n)}}function Xs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Zm(r,t,n))}}function yd(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 md(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,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,x("number"));else if(r.type==="WINDOW_COL"){if(_a(r)||r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")n.set(r.alias,x("number"));else if(r.arg.type!=="WILDCARD"){let i=$r(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?x(i):i)}}else r.type==="AGGREGATE"?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"?n.set(r.alias,x("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,x("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,x("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,x(bd.has(r.expr.func)?"number":"string"));return n}function Js(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:c,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:g,plainGroupByPlan:m}=e,y=eh(t.columns,u);for(let[N,_]of a??[])y.set(N,_);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(N=>ft(N,A));let w=Ws(md(E?.get(A),A),void 0,S);for(let N of t.joins){let _=N.table.alias,L=(n.get(_)??[]).map(h=>ft(h,_)),v=Ws(md(E?.get(_),_),void 0,L);S=vm(S,L,N,{leftColumns:w,rightColumns:v}),w=Ws(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=Um(S,C,s,p,l);let b=re(t);if(b.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");S=Mm(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||hd(t.columns))&&(S=km(S,b.type==="PLAIN"?b.allItems:[],t.columns,u,b.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let D=N=>N.aggregateRef?Id(N.aggregateRef,u):c?.(N);return S=Km(S,t.having,d,D),S=zs(S,t.columns,i,o,y,u),t.distinct&&(S=Bm(S,t.columns,r,s,l)),S=Ys(S,t.orderBy,i,o,y,js(t.columns,r,s,l)),S=Mo(S,t.limit,t.offset),Vr(S,t.columns,r,s,f,l,R)}function Cd(e,t){let n=[];for(let r of e){let i=Qs(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,c]of Object.entries(r)){if(d===t)continue;let u=Qs(c?.value);l[`_p.${d}`]={value:u}}for(let[d,c]of Object.entries(s.value??{}))l[d]={value:Qs(c?.value)};n.push(l)}}return n}function th(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Qs(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 Od(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Ld(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function _d(e){let t=[...e.preErrors.map(i=>Zs(i)),...e.postImageErrors.map(i=>Zs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Zs(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]=Hr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Zs(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 Hr(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(Hr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Hr(a,t);return i}function vd(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"&&Ve(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 tl(e){return vd(e,!0)}function Fo(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 Ye(e,t,n,r,i=!0,o=!0,a=r){let s=tl(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:de(e.where)}),Fo(e,e).forEach((l,d)=>Ye(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Yr(e,t,n,r,i=!0){e.left.type==="UNION"?Yr(e.left,`${t}.left`,n,r,i):Ye(e.left,`${t}.left`,n,r,!0,i),Ye(e.right,`${t}.right`,n,r,!0,i)}function Dd(e,t,n,r){if(!r&&bt(e)){Ye(Pt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ye(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Yr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ye(e.query,`${t}.main`,n,r,!1,!r,!0):Yr(e.query,`${t}.main`,n,!0,!1)}function Ud(e,t,n,r=!1){switch(e.type){case"SELECT":Ye(e,t,n,r);return;case"UNION":Yr(e,t,n,r);return;case"WITH":Dd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Dd(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Yr(e.query,`${t}.query`,n,!0,!1):Ye(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Ud(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=tl(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:de(e.where)}),Fo(e,e).forEach((o,a)=>Ye(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=tl(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:de(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=vd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Fo(e,e).forEach((o,a)=>Ye(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Fo(e,e).forEach((i,o)=>Ye(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function xo(e,t){let n=new Map;for(let r of t){if(!Ve(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 nl(e,t){return t.eligible===!0&&Ue(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)&&Kn(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 yn(e)?(n.some(r=>r!==lt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(lt)||n.push(lt)):n.includes(Bt)||n.push(Bt),[...new Set(n)]}function el(e,t){let n=e.functionNames[0],r=yn(n)?lt:Bt,i=ih(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function kd(e,t){let n=[];Ud(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=rh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:el(i)}}if(i.kind==="SELECT"){let c=i.source,u=c.from.cteName===null&&!c.from.subtableCode&&c.joins.length===0,p=Ue(c),f=await t.select(c),E="";try{E=i.where===null?"":V(i.where)}catch{E=""}let R=u&&p==="SIMPLE"&&(c.orderBy.length===0||c.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&xo(E,i.relativeFunctionOccurrences),g,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(c);I?.eligible===!0&&nl(c,I)&&(g=I.plan,m=!0,R=!0)}let y;!R&&f.capability==="EXACT_PUSHDOWN"&&(y=$i({select:c,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(g=y.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(c);I!==null&&nh(c,I)&&(S=I,R=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...g?{prefilterPlan:g,phase2PrefilterEligible:m}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(A),!R)return{hasRelativeDate:n.some(I=>I.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:el(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"&&xo(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(c=>c.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:el(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function rl(e){if(!e.allowed&&e.rejection){let t=yn(e.rejection.functionName)?lt:Bt,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 il(e,t,n={}){let r=ge(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,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=zr(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=cr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??V,c=n.containsFunctions??xo,u=[];for(let S of a.leaves){let A=$o(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=d(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!c(I,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let p=sh(l.condition),f=new Set(u),E=Bo(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 g=u.map(S=>$o(S));if(!c(R,[...new Set(g)])||!uh(R,g))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):Go(e.where,f);if(m!==null&&zr(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let S of g)y.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:u,relativeFunctionNames:y,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}zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if($o(o)===null)return;if(ge(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":zr(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 $o(e){return e.right.type==="KINTONE_FUNC"&&Ve(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ve(e.right.values[0].name)?e.right.values[0].name:null}function zr(e){let t=[],n=r=>{if(r.type==="BINARY"&&$o(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 Bo(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=Bo(e.left,t,n),i=Bo(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Bo(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var jr={type:"BOOLEAN",value:!0};function Go(e,t){if(e.type==="BINARY"&&t.has(e))return jr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Go(e.left,t)??jr,r=Go(e.right,t)??jr;return Ko(n)?Ko(r)?null:r:Ko(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Go(e.expr,t)??jr;return Ko(n)?jr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ko(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(!Zn.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 B=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function Md(e,t){if(!t)throw new B("IMPORT source capability is not available.");let n=t(e);if(!n)throw new B(`source "${e}" is not supplied.`);return n}async function Vo(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new B("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new B("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 B(`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 Se("\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 es(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||fg(t)}function Lc(e){let t=e.codePointAt(0);return es(e)||t>=48&&t<=57}function Ln(e){let t=e.codePointAt(0);return t>=48&&t<=57}function fg(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Dc=20,ns=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"}),Uc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),fr=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"}),ew=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),Eg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Rg=new Set(Eg);function gg(e){return Rg.has(e)}var kc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Er=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function vc(e){return Er[e]!==void 0}var yg=Object.freeze([..._i]),mg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),hg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ag(e){return mg.has(e)}function Sg(e){return hg.has(e)}function Tg(e){return Number.isInteger(e)&&e>=1&&e<=31}var tw=Object.freeze(Array.from(new Set([...Object.keys(ns),...Uc,...Object.keys(fr),...Object.keys(kc),...Object.keys(Er),...yg,"IF"]))),Ig=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","PRIMARY_ORGANIZATION","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 wg(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Ig.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.rawMessage=n;this.token=r;this.name="ParseError"}},ts=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
+ `),_t=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.aggregateGroupKeyTokens=new WeakMap;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>Dc)throw new T(`batch exceeds ${Dc} 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"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.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:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Er[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}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=Er[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==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\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)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}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}=ct(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}=ct(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 w=this.parseIdentifier();if(s.has(w))throw new T(`IMPORT target ${w} is declared more than once.`,this.prev());if(s.add(w),this.peek().kind==="("){this.advance();let C=this.parseIdentList();if(this.expect(")"),new Set(C).size!==C.length)throw new T(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let b;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()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:C,...b?{rowIdSourceHeader:b}:{}})}else a.push(w),o.push({kind:"FIELD",field:w});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(),c,u=!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 w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());c=w==="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(),u=!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(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)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!==Xe||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(w=>w.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(),!u)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 g,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))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"&&(g=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(w=>w.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(w=>w.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)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(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(y);for(let C of S){if(!C.rowIdSourceHeader)throw new T(`CSV subtable ${C.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(C.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${C.subtableCode}.`,this.prev())}for(let C of w)if(!S.some(b=>b.subtableCode===C))throw new T(`REPLACE SUBTABLES target ${C} is not declared in INTO.`,this.prev())}}else if(y)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(g)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 A=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:c,hasHeader:u,mappingMode:E,ignoreUnknownColumns:R,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...y?{replaceSubtables:y}:{},...g?{keyFields:g}:{},...A,...I}}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}=ct(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 u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}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 u=this.peek();if(u.kind!=="IDENT"||!u.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",u);d=this.parseTableName()}let c={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(c,t),c}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&&wg(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:Xe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,c=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")&&(c=this.parseWhereExpr("HAVING"))}let u="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());u="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(m=>m.type==="WINDOW_COL"),g=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||g))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&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,c,l,d),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:c,orderMode:u,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 a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(ts,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=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());let s=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:a.value.slice(1).toLowerCase(),alias:s.alias},s)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),d=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:d?.alias??null},d)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),d=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:d?.alias??null},d)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_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 a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return kc[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(fr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}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 this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(ts,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(ts,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}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):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1: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"?this.nodeHasAggregate(t):!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"?he(`-${H(n)}`):{type:"AGG_ARITH",left:he("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return he(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}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())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),fr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=c=>{if(Array.isArray(c)){c.forEach(a);return}if(c===null||typeof c!="object")return;let u=c;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(c);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let d=new Set(r.filter(c=>c.type==="FIELD_NAME").map(c=>c.name));for(let c of o){let u=this.aggregateGroupKeyDisplay(c);if(!d.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(c)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}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 he(`${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:he("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),he(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 he(`+${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"?he(`-${H(n)}`):{type:"ARITH",left:he("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),he(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(t);this.expect(",");let i=this.parseCaseResult(t);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(t);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(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=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",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=ns[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=ns[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Uc.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){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=bg(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 fr[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(!gg(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}=ct(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.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());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 this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:ae(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}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(!Ag(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(!Sg(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(!Tg(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(vc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Er[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(he(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(he(`${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 if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,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=xu(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){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}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 i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ct(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=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 u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:c,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let c=this.parseInsertRow(i.length);this.expect(")"),o.push(c)}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}=ct(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 u=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:u,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(),c=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,...c}}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(he(`${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(he(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}=ct(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(),c=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&&(c.validateOnly||c.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 u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...d,...c}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...d,...c}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...d,...c}}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}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}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((c,u)=>{let p=this.matchUpdateFromJoin(c,n,r);p!==null&&a.push({index:u,...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 c=0;c<o.length;c++){if(c!==s.index&&this.nodeContainsQualifiedField(o[c],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(c!==s.index&&this.nodeContainsForeignQualifier(o[c],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((c,u)=>u!==s.index).reduce((c,u)=>c===null?u:{type:"LOGICAL",op:"AND",left:c,right:u},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(vc(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}=ct(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}=ct(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"||Xi.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),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 bg(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 ct(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 Pg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ng=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Z(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":Ng.has(e.fieldType)?t="option":Pg.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 x(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function _n(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Ji(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 Dt(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 Cg(e,t){return e<t?-1:e>t?1:0}function Mc(e){if(e==="")return{band:0};let t=_e(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 Og(e,t){let n=Mc(e),r=Mc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?bi(n.value,r.value):n.band===5&&r.band===5?Dt(n.value,r.value):0}function Fc(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 Lg(e,t,n){let r=Fc(e,n),i=Fc(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=Dt(r.normalizedId,i.normalizedId);return o!==0?o:Dt(r.display,i.display)}function _g(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 xc(e,t){let n=t.optionOrder??new Map,i=[...new Set(_g(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(Kc),i}function Kc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Dt(e.label,t.label)}function Dg(e,t,n){let r=xc(e,n),i=xc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Kc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function vt(e,t,n){switch(n.compareMode){case"string":return Dt(e,t);case"number":return Og(e,t);case"recordNumber":return Lg(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Dg(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Wt(e,t,n,r=x("string")){let i=vt(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 Bc(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=_e(o),l=_e(a),d=s!==null&&l!==null?bi(s,l):Cg(Number(o),Number(a));if(d!==0)return d}return Dt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function le(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(Ne(t,e.field));if(e.type==="STRING_FUNC")return Number(ue(e,t));let n=le(e.left,t),r=le(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 Re(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ne(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 ue(e,t,n,r);case"CASE_WHEN":return Ce(e,t,n,r);case"CONCAT_OP":return ue({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Re(e.left,t,n,r)),o=Number(Re(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 pt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Wc(e,t,n,r);case"SCALAR_ARITH":{let i=pt(e.left,t,n,r),o=pt(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=pt(e.left,t,n,r),o=pt(e.right,t,n,r);return`${i??""}${o??""}`}default:return Re(e,t,n,r)}}function Qi(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 vg(e){return e>=55296&&e<=56319}function Ug(e){return e>=56320&&e<=57343}function eo(e,t){return t>0&&t<e.length&&vg(e.charCodeAt(t-1))&&Ug(e.charCodeAt(t))}function Gc(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 is(e,t){let n=Math.min(Math.max(0,t),e.length);return eo(e,n)&&(n-=1),e.slice(0,n)}function kg(e,t){let n=Math.max(0,e.length-t);return eo(e,n)&&(n+=1),e.slice(n)}function Mg(e,t,n){let r=Gc(t,e.length),i=Gc(n,e.length);return i<=r?"":(eo(e,r)&&(r+=1),eo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Fg(e,t){let n=e.repeat(Math.ceil(t/e.length));return is(n,t)}var xg=200,Rr=new Map;function Kg(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 rs(e,t,n=!1){let r=Kg(t)+(n?"g":""),i=`${e}\0${r}`,o=Rr.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(Rr.size>=xg){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function Bg(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Gg(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 $g(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 c=Number(s+l);if(c>=1&&c<=n.length){i+=n[c-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 Vg(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),c=a.slice(0,d);return $g(n,o,c,l?s:void 0)})}function ue(e,t,n,r){zi(e.func,e.args);let i=e.args.map(o=>Jg(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 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 Mg(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":is(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":kg(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return is(o,a);let s=i[2]??" ";if(s==="")return o;let l=Fg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return Bc(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 rs(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Bg(i[2]);let o=Gg(i[4]),a=rs(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Vg(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return rs(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{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 Qi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Qi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Qi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return Qi("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 qg(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 Zi(i[0])?String(os(i[0])+1):"";case"QUARTER":return Zi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return Zi(i[0])?String(Vc(i[0])):"";case"DATE_FORMAT":return Hg(i[0]??"",i[1]??"");case"DATEDIFF":return Yg(i[0]??"",i[1]??"");case"DATE_ADD":return jg(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return zg(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 gr(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 to(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 Zi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=to(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 os(e){return to(e).getUTCDay()}function $c(e){let t=to(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Wg(e){return $c(e).getUTCFullYear()}function Vc(e){let t=$c(e),n=t.getUTCFullYear(),r=to(`${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 Hg(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=gr(e),l=Zi(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(os(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][os(e)]:"";case"%v":return l?String(Vc(e)).padStart(2,"0"):"";case"%G":return l?String(Wg(e)).padStart(4,"0"):"";default:return d}})}function Yg(e,t){if(e.length<10||t.length<10)return"0";let n=gr(e),r=gr(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 jg(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}=gr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),d=String(a.getUTCMonth()+1).padStart(2,"0"),c=String(a.getUTCDate()).padStart(2,"0");return`${l}-${d}-${c}`}function zg(e){if(!e||e.length<10)return e;let{y:t,mo:n}=gr(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 qg(e,t){if(/^-?\d+$/.test(t.trim()))return Xg(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,c=i.toFixed(d),[u,p=""]=c.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,E=p?`${f}.${p}`:f;return n?E+"%":E}function Xg(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 Jg(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(yr(e,t)):e.type==="NUMBER"?H(e):String(Re(e,t,n,r))}function yr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[ae(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(yr(e.left,t)),r=Number(yr(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 Ne(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 Qg(e,t,n,r,i);case"NULL_CHECK":return iy(e,t);case"LOGICAL":return oy(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 Qg(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=Qc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=ey(e.left,a,i);return Zg(e.op,o,e.right,t,a,n,s,i)}function Zg(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(ry(n.values),d=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?H(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let c=ny(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=as(n,r,o);return Jc(t,d)}if(e==="NOT_LIKE"){let d=as(n,r,o);return!Jc(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=as(n,r,o,s);return Wt(e,t,l,a)}var Hc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ey(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?Z({fieldType:t}):x("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return x("number");if(e.type==="FUNC_FIELD")return x(Hc.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 x("number");if(o.type==="STRING_FUNC")return x(Hc.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)??x("string")}return x("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?x("number"):x("string")}var Yc=new Set(["CHECK_BOX","MULTI_SELECT"]),jc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),ty=new Set(["CREATOR","MODIFIER"]);function ny(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=x("number");return[...t].some(a=>Wt("=",e,a,o))}let i;if(Yc.has(n)||jc.has(n)||ty.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Yc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):jc.has(n)?!Array.isArray(i)||!i.every(zc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):zc(i)?t.has(i.code):r()}function zc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function ry(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}: ${lt}`)}function iy(e,t){let n=Qc(e.field,t);return e.not?n!=="":n===""}function oy(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 Qc(e,t,n,r){if(e.type==="FUNC_FIELD")return ue(e.expr,t);if(e.type==="AGG_FIELD")return String(yr(e.expr,t));if(e.type==="ARITH_FIELD")return String(le(e.expr,t));if(e.type==="CASE_FIELD")return Ce(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 Ne(t,i)}function as(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 ay(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"?Ne(t,e.expr.field):e.expr.type==="STRING_FUNC"?ue(e.expr,t):String(le(e.expr,t));case"CASE_VALUE":return Ce(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ce(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return Xc(i.result,t,n,r);return e.elseResult!==null?Xc(e.elseResult,t,n,r):""}function Wc(e,t,n,r){for(let i of e.branches)if(ne(i.condition,t,n,void 0,r))return qc(i.result,t,n,r);return e.elseResult===null?null:qc(e.elseResult,t,n,r)}function qc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[ae(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Je(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?le(e,t):pt(e,t,n,r)}function Xc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[ae(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Je(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(le(e,t)):String(Re(e,t,n,r))}function Zc(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":case"PRIMARY_ORGANIZATION":return""}}function ay(e){throw J(e)?new Error(`${e}: ${Bt}`):mn(e)?new Error(`${e}: ${lt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var no=new Map,sy=200;function Jc(e,t){if(!Zu(t))return e.includes(t);let n=no.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"),no.size>=sy&&no.clear(),no.set(t,n)}return n.test(e)}function Dn(e){return tp(e)}function ep(e){return tp(e.flatMap(t=>t.rules.map(n=>n.condition)))}function tp(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 ge("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 ge("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 ge(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function ro(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=Re(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function ss(e){if(It(e))throw new ee("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 ly=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),uy=new Set(["CHECK_BOX","MULTI_SELECT"]);function ao(e,t=new Map){let n=e.values.map(r=>cy(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function cy(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Ut(a.expr,{},n.get(i))}:r[i]={value:dt(a,n.get(i))}}),r}function hr(e){ss(e.where);let t=Ep(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=py(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function py(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:dt(i,t.get(r))});return n}function op(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 so(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 ls(e){ss(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?ap(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?vn(n,t):n.type==="STRING_FUNC"?us(n,t):n.type==="CASE_VALUE"&&sp(n.expr,t);return Ep(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function ap(e,t){mr(e.left,t),mr(e.right,t)}function mr(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"?ap(e,t):e.type==="STRING_FUNC"&&us(e,t)}function us(e,t){for(let n of e.args)dy(n,t)}function dy(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){oo(e,t);return}vn(e,t)}function vn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){us(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){vn(e.left,t),vn(e.right,t);return}e.type==="CASE_WHEN"&&sp(e,t)}function oo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&fy(e.arg,t);return}e.type==="AGG_ARITH"&&(oo(e.left,t),oo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function fy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):vn(e,t)}function np(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){oo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){mr(e,t);return}vn(e,t)}}function sp(e,t){for(let n of e.branches)io(n.condition,t),np(n.result,t);e.elseResult!==null&&np(e.elseResult,t)}function io(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&mr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":io(e.left,t),io(e.right,t);break;case"NOT":case"GROUP":io(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function cs(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=lp(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:ps(d,a,n.get(l),i)};return{id:o,record:s}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function ps(e,t,n,r){if(e.type==="ARITH")return String(r?fs(e,r):le(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Re(e,t));if(e.type==="STRING_FUNC")return ue(e,t);if(e.type==="CASE_VALUE")return Ut(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ee("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return dt(e,n)}function lo(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(le(e,t));if(e.type==="CASE_VALUE")return Ce(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 Ey=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ds(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 ee("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=lp(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(Ey.has(u??""))throw new ee(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \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,c.field))throw new ee(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let p=o[c.field];if(typeof p!="string")throw new ee(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${c.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&p!==""&&!Number.isFinite(Number(p)))throw new ee(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${p}`);l[d]={value:dt({type:"STRING",value:p},u)}}else{if(c.type==="STRING_FUNC")throw new ee("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");c.type==="ARITH"?l[d]={value:String(fs(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[d]={value:String(Re(c,s))}:c.type==="CASE_VALUE"?l[d]={value:Ut(c.expr,s,u)}:l[d]={value:dt(c,u)}}}return{id:a,record:l}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function lp(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function fs(e,t){let n=rp(e.left,t),r=rp(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ee("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ee("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function rp(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 fs(e,t);if(e.type==="STRING_FUNC")throw new ee("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 ee(`\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 up(e){return ss(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function cp(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function pp(e){return ly.has(e??"")}function Ry(e){return uy.has(e??"")}function gy(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 yy(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function dp(e,t){return pp(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Ry(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?gy(e):t==="DATE"?yy(e):e}function fp(e,t){return pp(t)?e.map(n=>({code:n})):e}function ip(e,t,n){if(e.type==="ARRAY")return fp(e.elements.map(r=>r.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?dp(e.value,n):e.type==="STRING_FUNC"?ue(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(le(e,t)):String(Re(e,t))}function Ep(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Dn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Ut(e,t,n){for(let r of e.branches)if(ne(r.condition,t))return ip(r.result,t,n);return e.elseResult!==null?ip(e.elseResult,t,n):""}function dt(e,t){let n=Es(e,t);if(!n.ok)throw new ee(n.message);return n.value}function Es(e,t){try{return{ok:!0,value:my(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function my(e,t){switch(e.type){case"VARIABLE":throw new ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return dp(e.value,t);case"NUMBER":return H(e);case"ARRAY":return fp(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ee(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ee("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ee("\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 ee("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 ee("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ee("\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 Sr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ee=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Rs=new Set(["CHECK_BOX","MULTI_SELECT"]),hy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function Rp(e,t,n){let r=Ay(n.fieldType,e.field),i=Sy(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let y=m.value;y!==""&&(m.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let m of s)l.has(m)&&Tr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),c=a.filter(m=>!o.has(m)),u=[...d,...c],p=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let y=m.kind==="ADD"?f:E,S=!y.has(m.value);return y.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&S&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),g=Rs.has(r)?u:u.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:g,addedValues:c.length,removedValues:p,changedValues:c.length+p}}function Ay(e,t){return Rs.has(e)||hy.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Sy(e,t,n){if(!Array.isArray(e))return Tr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Rs.has(t)?typeof i!="string"?Tr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Tr(`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 ms(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 ft(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)gs(s.field,null,r),Ty(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(u=>u.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.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(Xu(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,c=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,d),a.set(s.field,c);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)gs(p.field,s.field,r,c),ys(p.value,s.field,r,c);u.selector.kind==="WHERE"&&ys(u.selector.where,s.field,r,c)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),gs(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&ys(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Ty(e,t){Ir(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 gs(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 ys(e,t,n,r){Ir(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 uo(e,t){let n=ft(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)Ir(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function co(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Sp(i?.value);return n}function yp(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??ft(t,r),o=Ss(n.$id?.value,"APPLY snapshot $id"),a=ms(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),hp(t,n,i,o)}function mp(e,t,n,r=ft(e,n)){let i=new Set;return t.map(o=>{let a=Ss(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),hp(e,o,r,a)})}function hp(e,t,n,r){let i=Ss(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let N=n.targetMultiValueFields.get(c.field);N||Y(`APPLY multi-value metadata for ${c.field} is missing.`),a.push(Rp(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=Cy(t,c.field),f=new Set;for(let N of p)N.id||Y(`APPLY snapshot for ${c.field} contains a row without _rid.`),f.has(N.id)&&Y(`APPLY snapshot for ${c.field} contains duplicate _rid ${N.id}.`),f.add(N.id);let E=N=>N.field==="_rid"?"SINGLE_LINE_TEXT":N.field==="_idx"?"NUMBER":u.get(N.field)?.fieldType,R=[],g=[],m=[],y=new Set,S=new Set,A=new Set,I=c.operations.some(N=>N.kind==="REMOVE");for(let[N,_]of c.operations.entries()){if(_.kind==="APPEND"){let L=hs(_,u,c.field);m.push({kind:"APPEND",addedRows:L.length}),g.push(...L);continue}if(_.kind==="REMOVE"){let L=by(_,p,E,c.field);_.expectRows&&gp(_.expectRows,L.length,r,c.field,N,_.kind),m.push({kind:"REMOVE",removedRows:L.length});for(let v of L){let h=p[v].id;S.has(v)&&Y(`APPLY row ${h} is selected by both PATCH and REMOVE.`),A.has(v)&&Y(`APPLY removes row ${h} more than once.`),A.add(v)}continue}if(_.kind!=="PATCH")continue;let U=wy(_,p,E,c.field);_.expectRows&&gp(_.expectRows,U.length,r,c.field,N,_.kind),m.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let L of U){let v=p[L];A.has(L)&&Y(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),S.add(L);let h=co(v,L);for(let P of _.assignments){let M=`${v.id}\0${P.field}`;y.has(M)&&Y(`APPLY patches cell ${v.id}.${P.field} more than once.`),y.add(M),R.push({rowIndex:L,field:P.field,value:lo(P.value,h,E)})}}}let w=new Map;for(let N of R){let _=w.get(N.rowIndex)??{};_[N.field]={value:N.value},w.set(N.rowIndex,_)}let b=[...p.flatMap((N,_)=>A.has(_)?[]:[{id:N.id,value:{...N.value,...w.get(_)??{}}}]),...g],D={table:c.field,operations:m,changedSubtableRows:w.size+A.size+g.length,deletedRows:A.size,snapshotRowIds:p.map(N=>N.id),postImageRows:b};I?o.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:p.flatMap((N,_)=>A.has(_)?[N.id]:[]),payloadRows:b.map(N=>({...N.id===void 0?{}:{id:N.id},value:N.value}))}):o.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...p.map((N,_)=>{let U=w.get(_);return U?{id:N.id,value:U}:{id:N.id}}),...g.map(N=>({value:N.value}))]})}let s=Oy(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:ps(c.value,s,u,t)}}let d={...t};Object.assign(d,l);for(let c of o)d[c.table]={value:c.postImageRows};for(let c of a)d[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((c,u)=>c+u.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function gp(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 po(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 c=a[d];return c?.value?l.id===void 0?{value:c.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,c.value[u]]))}: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 hs(e,t,n){return e.values.map(r=>({value:Iy(e,r,t,n)}))}function Iy(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?As(a):s.type==="CASE_VALUE"?Ut(s.expr,{},a.fieldType):dt(s,a.fieldType)}}return o}function As(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 wy(e,t,n,r){return Ap(e.selector,t,n,r)}function by(e,t,n,r){return Ap(e.selector,t,n,r)}function Ap(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,co(l,d),n)?[d]:[]),a=Py(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Ny(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Py(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 Ny(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 Cy(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 Ss(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function Oy(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Sp(r?.value);return t}function Sp(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 Ir(e,t){if(Array.isArray(e)){e.forEach(r=>Ir(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))Ir(r,t)}function oe(e){throw new Error(`ArgumentError: ${e}`)}function Eo(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?oe("APPLY snapshot $revision must be a positive integer."):t}function wr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return oe("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return oe("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)&&oe(`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)&&oe(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&oe(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),Ly(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Tp(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 oe("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 Ly(e){let t=Ts(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(c=>c.id===void 0?[]:[c.id]);for(let c of e.payloadRows)c.id===void 0&&c.value===void 0&&oe(`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(p=>p.kind==="REMOVE")&&oe(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let c=e.payloadRows.slice(0,t.length).map(p=>p.id??"");fo(t,c,`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)&&oe(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");fo(t,u,`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)&&oe(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(c=>c.kind==="REMOVE")||oe(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Ts(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&oe(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&oe(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(c=>c.id===void 0?[]:[c.id]),o=new Set(r),a=new Set(i);for(let c of r)a.has(c)&&oe(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${c}.`);let s=t.filter(c=>!o.has(c));fo(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(c=>c.id??"");fo(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(c=>c.id!==void 0)||e.postImageRows.slice(i.length).some(c=>c.id!==void 0))&&oe(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(c=>c.value===void 0)&&oe(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((c,u)=>!Is(c.value,e.postImageRows[u]?.value))&&oe(`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(c=>!d.has(c)))&&oe(`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||oe(`APPLY ${t} contains an empty row id.`),r.has(i)&&oe(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function fo(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&oe(n)}function Is(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)=>Is(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)&&Is(n[a],r[a]))}function Ip(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 wp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Ip(t.digits,"digits",1,30),r=Ip(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 bp(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 _y=new Set(["CHECK_BOX","MULTI_SELECT"]),Dy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Oe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=vy(e);if(i!==""&&!Uy(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=br(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:ky(t.fieldType),message:o}}if(t.required&&Ro(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Ro(r)&&t.fieldType==="NUMBER"){let i=String(r),o=_e(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}=bp(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(!Ro(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ht(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!Ro(r)&&Dy.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 vy(e){return e==null?"":go(e)&&e.type==="NUMBER"?H(e):go(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Uy(e,t){if(t==="DATE")return Ht(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ht(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)?Ht(n.slice(0,10),"DATE")&&Ht(n.slice(11),"TIME"):Ht(n,"DATETIME")}function br(e,t){if(go(e)){let r=Es(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(_y.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 go(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(go(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Ro(e){return e===""||Array.isArray(e)&&e.length===0}function ky(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ht(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)&&Ht(l,"TIME")}var Un=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ws(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(c=>typeof c=="object"&&c!==null&&"code"in c),d=a;try{d=br(a,s)}catch{}i.record[o]={value:l?a:d}}}}function bs(e,t,n,r,i,o,a,s=[],l=!0,d=!0,c={}){let u=new Map(i.map(g=>[g.code,g])),p=[],f=new Set,E=[];c.validateUpdateBuiltIns===!1&&ws(e,r,i);let R;for(let g of e){g.record??(g.record={});let m=d?[...g.preErrors]:[],y=[],S=[],A=g.mode==="create"||c.validateUpdateBuiltIns!==!1;for(let b of r){if(!g.payload.has(b))continue;let D=g.payload.get(b),N=u.get(b).fieldType,_=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(N)&&Array.isArray(D)&&D.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!A)continue;let U=Oe(D,u.get(b),a);U.ok?g.record[b]={value:_?D:U.value}:y.push({field:b,code:U.code,message:U.message})}if(l&&g.mode==="create")for(let b of i){if(b.inSubtable||g.payload.has(b.code))continue;if(Yt(b.defaultValue)){let N=Oe("",b,a);N.ok?b.required&&y.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:b.code,code:N.code,message:N.message})}else{let N=Oe(b.defaultValue,b,a);N.ok||y.push({field:b.code,code:N.code,message:`\u65E2\u5B9A\u5024: ${N.message}`})}}if(s.length>0){let b=g.evaluationRow??Object.fromEntries([...g.payload].map(([_,U])=>[_,Qe(U)])),D=g.evaluationFieldTypes,N=_=>{let U=_.tableAlias?`${_.tableAlias}.${_.field}`:_.field;return D?.get(U)??D?.get(_.field)};try{for(let _ of ro(s,b,N))S.push({field:"",code:"ERR_CHECK",message:_.message})}catch(_){R??(R=_)}}let I=b=>b.map(D=>{let N={};for(let _ of n)N[_]=Qe(g.payload.get(_));return N.$err_statement=String(o),N.$err_operation=t,N.$err_row=String(g.rowNumber),N.$err_field=D.field,N.$err_code=D.code,N.$err_message=D.message,N.$err_value="",N.$err_subtable="",N.$err_subrow="",N.$err_subrow_id="",N}),w={rowNumber:g.rowNumber,preErrors:I(m),builtInErrors:I(y),checkErrors:I(S)};E.push(w);let C=[...w.preErrors,...w.builtInErrors,...w.checkErrors];C.length>0&&f.add(g.rowNumber),p.push(...C)}if(R!==void 0)throw R;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Qe(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 Ps=["required","length","range","choice"];function Ns(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 Cs(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 My(e){return Ns(e).length>0}function Fy(e){return e.fieldType==="NUMBER"||My(e)}function yo(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Os(e,t){let{topByCode:n,childrenByTable:r}=Cs(t),i=Fy;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 c=d?`${d}\0${l.code}`:l.code;if(a.has(c))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(c),!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 u=r.get(l.subtableCode);if(!u)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=u.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([R,g])=>R!==l.subtableCode&&g.some(m=>m.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 c=n.get(d);if(c?.fieldType==="SUBTABLE"){let u=(r.get(d)??[]).filter(i);if(u.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`);u.forEach(p=>s(p,d));continue}if(c){s(c);continue}throw[...r.values()].some(u=>u.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 Pr(e,t){return Yt(e)?"":Qe(br(e,t))}var xy=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Nr=Un;function Ze(e,t=["$id"]){let n=Cs(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!xy.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 jt(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 zt(e,t,n,r,i=1,o="UPDATE"){let a=Ky(e),s=[],l=new Set,d=[...t.payloadFields,...Nr],c=Qe(e.$id?.value),u=(p,f,E,R)=>{l.add(i);let g={};for(let m of t.payloadFields)g[m]=m==="$id"?c:Qe(e[m]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=p.code,g.$err_code=E.code,g.$err_message=E.message,g.$err_value=Pr(f,p.fieldType),g.$err_subtable=R?.subtable??"",g.$err_subrow=R?String(R.subrow):"",g.$err_subrow_id=R?.subrowId??"",s.push(g)};for(let p of t.topLevel){let f=e[p.code]?.value,E=Oe(f,p,n);E.ok?a[p.code]={value:Pp(f,p.fieldType,E.value)}:u(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 g=0;g<E.length;g++){let m=E[g],y=R[g];for(let S of f){let A=m.value?.[S.code]?.value,I=Oe(A,S,n);I.ok?(y.value??(y.value={}),y.value[S.code]={value:Pp(A,S.fieldType,I.value)}):u(S,A,I,yo(p,g,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Pp(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 Ky(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 mo(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Np(o,"dmlMaxRows"),Np(a,"dmlMaxSubtableRows");for(let S of n)Eo(S);let l=mp(t,n,r,i),d=Ze(r,t.assignments.map(S=>S.field)),c=l.some(S=>jt(S.postImage,d));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,p=l.map((S,A)=>zt(S.postImage,d,u,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=p.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=l.length,E=l.reduce((S,A)=>S+A.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 g=l.map((S,A)=>po(S,p[A].normalizedRecord)),m=g.flatMap(S=>wr(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Cp({plans:g,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Np(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Cp(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))Cp(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 ho(e,t){if(new Set(e.fields).size!==e.fields.length)return et("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Op(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return et(`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 et(`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 et(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let c of l.fields){if(d.has(c))return et(`APPLY APPEND specifies child ${c} more than once.`);d.add(c),Op(c,o.field,n,s)}for(let c of l.values)if(c.length!==l.fields.length)return et(`APPLY APPEND for ${o.field} has ${c.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function By(e,t,n=ho(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ao(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(c=>hs(c,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Ls.has(u.fieldType)||(d[u.code]=s[u.code]??{value:As(u)});let c={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));d[u.table]={value:p},c[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:c}})}async function Cr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Lp(r,"dmlMaxRows"),Lp(i,"dmlMaxSubtableRows");let a=e.metadata??ho(t,n),s=By(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Ls.has(A.fieldType)),d=Ze(l,t.fields),c=s.some(A=>jt(A.postImage,d));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,p=s.map(A=>zt(A.postImage,d,u,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=p.flatMap(I=>I.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:A})}`)}let f=s.length,E=s.reduce((A,I)=>A+I.tables.reduce((w,C)=>w+C.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 g=s.map((A,I)=>{let w=p[I].normalizedRecord,C={};for(let b of t.fields)C[b]=w[b];for(let b of A.tables){let D=w[b.table]?.value;C[b.table]={value:b.rows.map((N,_)=>({value:Object.fromEntries(Object.keys(N.value).map(U=>[U,D[_]?.value?.[U]??N.value[U]]))}))}}return{...A,postImage:w,record:C}}),m=g.map(A=>A.record),y=[];for(let A=0;A<m.length;A+=100)y.push({app:t.appId,records:m.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return _p({applyBlocks:t.applyBlocks??[],candidates:g,records:m,batches:y,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Op(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return et(`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?et(`APPLY child ${e} does not belong to subtable ${t}.`):et(`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 et(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Lp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function et(e){throw new Error(`ArgumentError: ${e}`)}function _p(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))_p(n,t);return Object.freeze(e)}async function vp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Dp(i,"dmlMaxRows"),Dp(o,"dmlMaxSubtableRows"),Hy(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Gy(t,s.map(m=>m.sourceRowIndex)),c=await Cr({statement:d,fieldInfos:r,metadata:ho(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let m of l){let y=m.targetId;p.has(y)&&_s(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),m.snapshot||_s(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(m.snapshot.$id?.value);S!==y&&_s(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let A=$y(t,m.sourceRowIndex,y),I=A.applyBlocks?.length?ft(A,r):Vy(r);u.push(await mo({statement:A,snapshots:[m.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=Wy(u,i,o),E=c.guards.parentRows+f.guards.parentRows,R=c.guards.subtableRows+f.guards.subtableRows,g=E>i||R>o;if(!t.validateOnly){let m=[...c.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.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 Ds({create:c,update:f,createBatches:c.batches,updateBatches:Yy(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:g,create:c.guards,update:f.guards}})}function Gy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function $y(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 Vy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function Wy(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 Ds({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 Hy(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 Yy(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 Dp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function _s(e){throw new Error(`ArgumentError: ${e}`)}function Ds(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))Ds(n,t);return Object.freeze(e)}function Lr(e){return kn("UPDATE",[Mp(e)])}function vs(e){return kn("INSERT",[kp(e)])}function Us(e){return kn("UPSERT",[kp(e.create),Mp(e.update)])}function ke(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 So(e,t,n){return e.type==="UPDATE"?kn("UPDATE",[Ao("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?kn("INSERT",[Ao("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):kn("UPSERT",[Ao("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ao("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function kn(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function kp(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 Mp(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:Up(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:Up(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 Up(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:Or(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Or(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Or(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Or(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Or(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Or(e,t){return e==null||t===null?null:e+t}function Ao(e,t,n,r,i,o){let a=t.map(c=>{let u=c.operations.map(f=>jy(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,E)=>f+E.count,0):null;return{targetKind:c.targetKind,field:c.field,operations:u,changedCount:p}}),s=a.filter(c=>c.targetKind==="SUBTABLE"),l=s.every(c=>c.changedCount!==null)?s.reduce((c,u)=>c+u.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 jy(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 tt=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 Fp(e,t,n){Tn("phase10c");let r=Tp(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 tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(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 xp(e,t,n){Tn("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 tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(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 Kp(e,t,n){Tn("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 c=await t.postRecords({app:d.app,records:[...d.records]});r.push(c.ids)}catch(c){throw new tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},c)}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(c){throw new tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:ke(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},c)}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 zy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function qy(e){if(!zy.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 Xy(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=qy(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 ks(e,t){let n=Xy(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 Jy(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 Ms(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 Jy(i)?!0:Object.values(i).some(n)};return n(e)}function Bp(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Gp(e,t){let n=re(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 nt(e){if(e===null)return!1;switch(e.type){case"BINARY":return To(e.left);case"NULL_CHECK":return To(e.field);case"LOGICAL":return nt(e.left)||nt(e.right);case"NOT":case"GROUP":return nt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function To(e){if(Array.isArray(e))return e.some(To);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(To)}async function He(e,t,n,r,i){let o=await be(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 Io(e,t,n,r){let{records:i,metrics:o}=await He(e,t,n,["$id"],r);return{ids:Mu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],Qy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Zy=new Set(Me),em=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"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),tm=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),nm=["=","!=","in","not in"],rm=new Map([["RECORD_NUMBER",new Set([...Me,"in","not in"])],["__ID__",new Set([...Me,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Me)],["UPDATED_TIME",new Set(Me)],["DATE",new Set(Me)],["TIME",new Set(Me)],["DATETIME",new Set(Me)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Me,"in","not in"])],["CALC",new Set([...Me,"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(nm)]]),im=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"])]]),Ks=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"]),Wp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Hp(e){return rm.get(e)??new Set}function Yp(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Ks.has(o.fieldType)&&Hp(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ye(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Dr(e,t)}function Dr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return om(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?xs():lm(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return xs();case"GROUP":return Dr(e.expr,t);case"NOT":{let n=Dr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:zp(n.reasons)?Ur({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Dr(e.left,t),r=Dr(e.right,t);return cm(e.op,n,r)}}}function om(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return am(e,t,n,r);if(n.type==="KINTONE_FUNC"&&$p(n))return Vp(e,t,n,r);if(n.type==="IN_LIST"){let c=n.values.filter(u=>u.type==="KINTONE_FUNC");if(c.length>0)return n.values.length===1&&c.length===1?Vp(e,t,c[0],r):wo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",c[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,vr(e))}if(t.type!=="FIELD")return xs();let i=r(t);if(!i)return Mn("WHERE_FIELD_UNRESOLVED",t.field,void 0,vr(e));let o=vr(e);if(!jp(i.fieldType,o))return Mn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!um(i.fieldType,e))return Mn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Hp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||$p(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 $p(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function Vp(e,t,n,r){let i=vr(e),o=n.name;if(!Kt.has(o)||t.type!=="FIELD")return wo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=em.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?wo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):tm.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:wo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function am(e,t,n,r){let i=vr(e),o=n.name;if(t.type!=="FIELD")return _r("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?sm(n)?Zy.has(i)?!Qy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?_r("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}]}:_r("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function sm(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 lm(e,t,n){let r=n(e);return r?jp(r.fieldType,t)?!Ks.has(r.fieldType)&&!Wp.has(r.fieldType)?Mn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Mn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Mn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function jp(e,t){let n=im.get(e);return n===void 0||n.has(t)}function um(e,t){return Ks.has(e)?!0:Wp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function vr(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 cm(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Ur({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")?Ur({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Ur({capability:"LOCAL_ONLY",reasons:r})}function xs(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Mn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function wo(e,t,n,r,i){return Ur({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function _r(e,t,n,r,i){return qp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function pm(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Kt.has(t.functionName))}function qp(e){if(e.capability==="EXACT_PUSHDOWN"||!zp(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 dm(e){if(e.capability==="EXACT_PUSHDOWN"||!pm(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&&Kt.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 Ur(e){return dm(qp(e))}var fm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Em=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Rm=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function xn(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)?Jp(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"}):Jp(n[0],e.field)}function Gs(e,t){if(e.left.type!=="FIELD")return kr();let n=xn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return kr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ye(e,a=>{let s=xn(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:Z({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return kr();let o=Am(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function Qp(e,t){let n=fe(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=xn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ye(e,o=>{let a=xn(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:Z({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Zp(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:nd(Fn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=gm(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)qt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(hm(e,t)),fetchQueriesByAlias:new Map,...o})}function ed(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Xt(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,Kn(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=Kn({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Xt(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 Bn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Xt(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&&!Xt(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))||td(mm(e))!==e.allKlikes.length))}function gm(e,t){if(e===null)return Xp(null);let n=Object.freeze([...fe(e)]);if(n.length===0)return Xp(e);let r=ym(e,t,n);if(r!==null)return r;let i=No(e),o=[],a=new Set;for(let u of i){let p=Qp(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},E;try{E=Kn(f,t)}catch{continue}let R=Lo(E);Xt(R,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),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=Co(e,a),l=Object.freeze(s===null?[]:[...fe(s)]),d=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),c=Xt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:c,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function ym(e,t,n){let r=bo(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Kn(i,t)}catch{return null}if(!Xt(Lo(o),n))return null;let a=new Set;if(qt(e,a),td(o)!==a.size)return null;let s=Object.freeze(Po(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 bo(e,t){switch(e.type){case"BINARY":{if(fe(e).length>0){let i=Qp(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=bo(e.left,t),r=bo(e.right,t);return n!==null&&r!==null&&_o(n,r)?n:null}case"GROUP":case"NOT":return bo(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Po(e){switch(e.type){case"BINARY":return fe(e).length>0?[e]:[];case"LOGICAL":return[...Po(e.left),...Po(e.right)];case"GROUP":case"NOT":return Po(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Xp(e){let t=e===null?[]:fe(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function No(e){switch(e.type){case"BINARY":return fe(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...No(e.left),...No(e.right)]:[];case"GROUP":return No(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Co(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Co(e.left,t),r=Co(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=Co(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 Zn){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 Xt(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 td(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function mm(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function hm(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=xn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Oo(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(ad(i)){n.add("KLIKE_OR");return}let o=Fn(i.left,t),a=Fn(i.right,t);if(o.length!==1||a.length!==1||!_o(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 Kn(e,t){return Mr(e.predicate,e,t),V(e.predicate)}function Mr(e,t,n){switch(e.type){case"LOGICAL":Mr(e.left,t,n),Mr(e.right,t,n);return;case"GROUP":Mr(e.expr,t,n);return;case"NOT":Mr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Oo(e.right))throw Bs(t,"predicate contains a non-target or RHS field reference");let r=xn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Bs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Bs(t,"predicate shape is outside the Phase A serializer contract")}}function Bs(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Fn(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=Fn(e.left,t),r=Fn(e.right,t);if(e.op==="AND")return nd([...n,...r]);if(ad(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return _o(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:rd(i.relation,o.relation)}]:[]}case"GROUP":return Fn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function nd(e){let t=[];for(let n of e){let r=t.findIndex(o=>_o(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:rd(i.relation,n.relation)}}return t}function Am(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Em.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Sm(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===">")&&id(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"||Rm.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?od(e.right.value)?"superset":"unsafe":n==="TIME"?Tm(e.right.value)?"superset":"unsafe":Im(e.right.value)?"superset":"unsafe";if(fm.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 Jp(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function kr(){return Object.freeze({relation:"unsafe"})}function _o(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function rd(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Sm(e){return e.type==="NUMBER"&&id(e)&&e.value>0}function id(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function od(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 Tm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Im(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!od(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function qt(e,t){if(e!==null){if(wt(e)){t.add(e);return}switch(e.type){case"LOGICAL":qt(e.left,t),qt(e.right,t);return;case"NOT":case"GROUP":qt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function ad(e){let t=new Set;return qt(e,t),t.size>0}function Oo(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Oo);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Oo)}function $s(e,t){let n=cr(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 wm(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function bm(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Fr(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=wm(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"&&!bm(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 Pm=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 Nm(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function xr(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(Nm(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}Pm.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 Do=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"}},vo=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}},Uo=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 sd(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 Uo(a).message}}return{records:n,cleanupWarning:o}}function Vs(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 ld=["$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 Ws(e){return e.startsWith("_")||e.startsWith("$")}var Cm=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ys(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ys);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"?Cm.test(t.field):Object.values(t).some(Ys)}function Om(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 ve(e)||Ys(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Lm=["_pid","_rid","_idx"];function Hs(e){return[...new Set(e)]}function _m(e){switch(e.kind){case"APP":return Hs([...e.fieldCodes,...ld]);case"SUBTABLE":return Hs([...e.childFieldCodes,...Lm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Hs(e.columns)}}function ud(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:_m(t(r,i))}))}function Dm(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 vm(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Um(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function km(e,t,n){let r=Dm(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:vm(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Um(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=Om(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&&ae(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function cd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?km(r.name,t,n):{kind:"EXPRESSION"})}}var Mm={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 pd(e,t){let n=Mm[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 dd(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=>pd(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=pd(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function Et(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 Fm(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(fd(e,a,r.leftColumns),fd(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let E of e){let R=E[a]??"",g=u.get(R);g?g.push(E):u.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]??"",g=u.get(R)??[];if(g.length>0)for(let m of g)f.push({...m,...E});else f.push({...p,...E})}return f}let l=new Map;for(let u of t){let p=u[s]??"",f=l.get(p);f?f.push(u):l.set(p,[u])}let d=[],c={};for(let u of r.rightColumns??Object.keys(t[0]??{}))c[u]="";for(let u of e){let p=u[a]??"",f=l.get(p)??[];if(f.length>0)for(let E of f)d.push({...u,...E});else o==="LEFT"&&d.push({...u,...c})}return d}function fd(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 xm(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function Sd(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&ve(t.expr)||t.type==="STRFUNC_COL"&&Wr(t.expr)||t.type==="SCALAR_VALUE_COL"&&kt(t.expr))}function Km(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((u,p)=>Gm(u,l,i?.items[p],n,o)).join("\0"),c=a.get(d);c?c.push(l):a.set(d,[l])}a.size===0&&t.length===0&&Sd(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let c of t)c.type==="ARITH_KEY"?d[Qs(c.expr)]=String(le(c.expr,l[0])):c.type==="FUNC_KEY"&&(d[Mt(c.expr)]=ue(c.expr,l[0]));Td(d,l,n,r),s.push(d)}return s}function Bm(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},c=[];for(let p of e){let f=d;for(let E of l.items){let R=Ed(E,p),g=f.children.get(R);g||(g={children:new Map},f.children.set(R,g)),f=g}f.rows||(s(),f.rows=[],c.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),d.rows=[],c.push(d.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of c){let f={...p[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Ed(R,p[0]));for(let R of t.allItems){let g=E.get(R.canonicalId)??"";f[R.directKey]=g,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=g)}Td(f,p,n,r),uc(f,u),o.push(f)}}return o}function Ed(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Td(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=ae(o.func,o.distinct,o.arg),s=String(Gr(o.func,o.distinct,o.arg,o.separator,t,r));e[o.alias??a]=s,o.alias&&(e[a]=s)}else if(o.type==="ARITH_AGG_COL"){ko(e,t,o.expr,r);let a=o.alias??Gn(o.expr);e[a]=String(Kr(o.expr,t,r))}else if(o.type==="STRFUNC_COL"&&Wr(o.expr)){ko(e,t,o.expr,r);let a=o.alias??Mt(o.expr),s=Zs(o.expr,t,r);e[a]=ue(s,e)}else if(o.type==="SCALAR_VALUE_COL"&&kt(o.expr)){ko(e,t,o.expr,r);let a=o.alias??rt(o.expr),s=Br(o.expr,t,r);e[a]=String(Re(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){ko(e,t,o.expr,r);let a=Od(o.expr,t,r),s=l=>l.aggregateRef?bd(l.aggregateRef,r):void 0;e[Id(o.alias,i)]=Ce(a,e,void 0,s)}}function Id(e,t){return e??`__ksql_case_column_${t}`}function zs(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>zs(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>zs(r,t))}function ko(e,t,n,r){let i=[];zs(n,i);for(let o of i){let a=ae(o.func,o.distinct,o.arg);e[a]===void 0&&(e[a]=String(Gr(o.func,o.distinct,o.arg,o.separator,t,r)))}}function Gm(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=Mo(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"?ue(e.expr,t):String(le(e.expr,t))}function Gr(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=wd(e,n,i).filter(f=>f!==null),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 c=e==="MIN"||e==="MAX"||e==="MODE"?$r(n,o):void 0,u=typeof c=="string"?x(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?x("string"):x("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let E="",R=0;for(let[g,m]of f){if(m>R){E=g,R=m;continue}if(m!==R)continue;let y=vt(g,E,u);(y<0||y===0&&Dt(g,E)<0)&&(E=g)}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 g=vt(R,E,u);(e==="MAX"&&g>0||e==="MIN"&&g<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,g)=>R-g),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,g=0,m=0;for(let S of p){let A=S-E;R++;let I=A-g;g+=I/R,m+=I*(A-g)}let y=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function wd(e,t,n){return n.map(r=>{let i;if(t.type==="FIELD_REF"){let o=r[t.field];if(o===void 0||o===""&&e!=="MIN"&&e!=="MAX")return null;i=o}else if(t.type==="ARITH"||t.type==="NUMBER"){let o=le(t,r);if(isNaN(o))return null;i=String(o)}else{let o=pt(t,r);if(o===null||o===""&&e!=="MIN"&&e!=="MAX"||typeof o=="number"&&Number.isNaN(o))return null;i=String(o)}return i})}function $m(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 Kr(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Gr(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=Kr(e.left,t,n),i=Kr(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 Gn(e){return Je(e)}function $r(e,t){if(e.type==="FIELD_REF")return t?.($m(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=>$r(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 bd(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return x("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return x("string");let n=e.arg.type==="WILDCARD"?"string":$r(e.arg,t)??"string";return typeof n=="string"?x(n):n}function Vm(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function Wm(e,t,n,r,i){if(e.length===0)return e;let o=Hm(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 Hm(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(Zm(t,a,o))}function qs(e,t,n,r,i,o){return t.length===0?e:Pd(e,t,n,r,i,o).rows.map(a=>a.row)}function Pd(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:x("number")};if(d.type==="FUNC_KEY")return{semantics:x(Nd.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:x("number")};let c=i?.get(d.name);if(c)return{semantics:c};let u=n?.get(d.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:x(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:c},u)=>({s:zm(c,d,o)}))})),l=(d,c)=>Ym(d,c,t,a);return s.sort(l),{rows:s,compare:l}}function Ym(e,t,n,r){for(let i=0;i<n.length;i++){let o=jm(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function jm(e,t,n){return vt(e.s,t.s,n.semantics)}var Nd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function zm(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(le(e.expr,t));case"FUNC_KEY":return ue(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function Xs(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=>Ne(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=ae(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Gn(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(le(a.expr,l)));break;case"STRFUNC_COL":{let l=Mt(a.expr);i.set(s,d=>Wr(a.expr)?d[s]??d[l]??ue(a.expr,d,n,r):ue(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr)?l[s]??"":Ce(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=rt(a.expr);i.set(s,d=>kt(a.expr)?d[s]??d[l]??"":String(Re(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 Js(e,t,n,r,i,o){let a=t.filter(s=>s.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s of a){let l=new Map;for(let d of e){let c=JSON.stringify(s.partitionBy.map(p=>Qm(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=Pd(d,s.orderBy,n,r,i),u=c.rows;if(Ni(s)){Jm(s,c,o);continue}if(va(s)){Xm(s,u);continue}if(!Da(s))throw new Error(`InternalError: unknown window kind ${s.windowKind??"undefined"}`);let p=1,f=1;for(let E=0;E<u.length;E++){E>0&&c.compare(u[E-1],u[E])!==0&&(p=E+1,f++);let R=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?p:f;u[E].row[s.alias]=String(R)}}}return e}function qm(e,t){let n=pt(e,t);return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function Xm(e,t){let n=t.map(i=>qm(e.arg,i.row)),r=e.valueFunc==="LAG"?-1:1;for(let i=0;i<t.length;i++){let o=i+r*e.offset;t[i].row[e.alias]=o>=0&&o<n.length?n[o]:""}}function Jm(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:wd(e.aggFunc,e.arg,r.map(u=>u.row)),o=e.arg.type==="WILDCARD"?void 0:$r(e.arg,n),a=typeof o=="string"?x(o):o??x("string"),s=[],l=0,d=0,c;for(let u=0;u<r.length;u++){let p=i?.[u]??null;if(e.arg.type==="WILDCARD")l++;else if(p!==null)if(e.aggFunc==="COUNT")l++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")d+=Number(p),l++;else if(c===void 0)c=p;else{let E=vt(p,c,a);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(c=p)}let f=e.aggFunc==="COUNT"?l:e.aggFunc==="SUM"?d:e.aggFunc==="AVG"?l===0?0:d/l:c??0;s.push(String(f))}if(e.frame===null){let u=s[s.length-1];for(let p of r)p.row[e.alias]=u;return}if(e.frame.unit==="RANGE"){for(let u=0;u<r.length;){let p=u;for(;p+1<r.length&&t.compare(r[p],r[p+1])===0;)p++;for(let f=u;f<=p;f++)r[f].row[e.alias]=s[p];u=p+1}return}for(let u=0;u<r.length;u++)r[u].row[e.alias]=s[u]}function Qm(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ne(e,n)}function Fo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Mo(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 Ne(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=ae(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Gn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(le(e.expr,t));case"CASE_COL":return ve(e.expr)?t[Id(e.alias,n)]??"":Ce(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Mt(e.expr);return Wr(e.expr)?t[e.alias??i]??t[i]??ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=rt(e.expr);return kt(e.expr)?t[e.alias??i]??t[i]??"":String(Re(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function Zm(e,t,n={}){return e.map((r,i)=>{let o=Mo(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Vr(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(R=>{let g=hd(gd(R),a),m=Mo(t[0],R,0,{wildcardKeys:Object.keys(g)}),y={};if(typeof m!="string")for(let[S,A]of m.entries)A!==null&&(y[S]=A);return y}),E=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:E}}let s=rh(t),l=nh(t),d=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=d?null:eh(t,s,l),u=c??[];return d&&e.length===0?{rows:[],columns:th(t,s,l)}:{rows:e.map((f,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(hd(gd(f),a)),parentWildcardKeys:Object.keys(f).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let S=Mo(y,f,m,g);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(R[A]=I);break;case"PARENT_WILDCARD":{if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(R[A]=I),E===0&&u.push(A);break}case"FIELD":{let A=c?.[m]??y.alias??s.get(m)??y.field;R[A]=S,c===null&&E===0&&u.push(A);break}case"LITERAL_COL":{let A=c?.[m]??y.alias??`'${y.value}'`;R[A]=S,c===null&&E===0&&u.push(A);break}case"AGGREGATE":{let A=ae(y.func,y.distinct,y.arg),I=c?.[m]??y.alias??A;R[I]=S,c===null&&E===0&&u.push(I);break}case"ARITH_AGG_COL":{let A=c?.[m]??y.alias??Gn(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"ARITH_COL":{let A=c?.[m]??y.alias??Qs(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"CASE_COL":{let A=c?.[m]??y.alias??l.get(m)??"case";R[A]=S,c===null&&E===0&&u.push(A);break}case"GROUPING_COL":{let A=c?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;R[A]=S,c===null&&E===0&&u.push(A);break}case"STRFUNC_COL":{let A=c?.[m]??y.alias??Mt(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=c?.[m]??y.alias??rt(y.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=c?.[m]??y.alias??"(subquery)";R[A]=S,c===null&&E===0&&u.push(A);break}case"WINDOW_COL":{let A=c?.[m]??y.alias;R[A]=S,c===null&&E===0&&u.push(A);break}}}return R}),columns:u}}function eh(e,t,n){return e.map((r,i)=>Cd(r,i,t,n))}function th(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=Cd(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Cd(e,t,n,r){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??ae(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Gn(e.expr);case"ARITH_COL":return e.alias??Qs(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Mt(e.expr);case"SCALAR_VALUE_COL":return e.alias??rt(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 nh(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function rh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Rd(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=Rd(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 Rd(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function gd(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Qs(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"?Mt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Mt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Gn(n):n.type==="VARIABLE"?`@${n.name}`:rt(n));return`${e.func}(${t.join(",")})`}function rt(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 Mt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${rt(e.left)}${e.op}${rt(e.right)}`;case"CONCAT_OP":return`${rt(e.left)}||${rt(e.right)}`}}function ih(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:kt(e)}function kt(e){return e.type==="STRING_FUNC"?Wr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?kt(e.left)||kt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>yd(t.result))||e.elseResult!==null&&yd(e.elseResult):!1}function yd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:kt(e)}function Wr(e){return e.args.some(t=>ih(t))}function oh(e,t,n){if(e.type==="AGG_REF"){let r=Gr(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=Kr(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Ne(t[0]??{},r)),raw:Ne(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Zs(e,t,n):Br(e,t,n)}function Br(e,t,n){return e.type==="STRING_FUNC"?Zs(e,t,n):e.type==="CASE_WHEN"?Od(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Br(e.left,t,n),right:Br(e.right,t,n)}:e}function md(e,t,n){if(e.type==="AGG_REF"){let r=Gr(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=Kr(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Br(e,t,n)}function Od(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:md(r.result,t,n)})),elseResult:e.elseResult===null?null:md(e.elseResult,t,n)}}function Zs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>oh(r,t,n))}}function hd(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 Ad(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function js(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,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,x("number"));else if(r.type==="WINDOW_COL"){if(Da(r)||Ni(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,x("number"));else if((Ni(r)||va(r))&&r.arg.type!=="WILDCARD"){let i=$r(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?x(i):i)}}else r.type==="AGGREGATE"?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"?n.set(r.alias,x("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,x("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,x("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,x(Nd.has(r.expr.func)?"number":"string"));return n}function el(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:c,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:g,plainGroupByPlan:m}=e,y=ah(t.columns,u);for(let[N,_]of a??[])y.set(N,_);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(N=>Et(N,A));let w=js(Ad(E?.get(A),A),void 0,S);for(let N of t.joins){let _=N.table.alias,L=(n.get(_)??[]).map(h=>Et(h,_)),v=js(Ad(E?.get(_),_),void 0,L);S=Fm(S,L,N,{leftColumns:w,rightColumns:v}),w=js(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=xm(S,C,s,p,l);let b=re(t);if(b.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");S=Bm(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Sd(t.columns))&&(S=Km(S,b.type==="PLAIN"?b.allItems:[],t.columns,u,b.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let D=N=>N.aggregateRef?bd(N.aggregateRef,u):c?.(N);return S=Vm(S,t.having,d,D),S=Js(S,t.columns,i,o,y,u),t.distinct&&(S=Wm(S,t.columns,r,s,l)),S=qs(S,t.orderBy,i,o,y,Xs(t.columns,r,s,l)),S=Fo(S,t.limit,t.offset),Vr(S,t.columns,r,s,f,l,R)}function Ld(e,t){let n=[];for(let r of e){let i=tl(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,c]of Object.entries(r)){if(d===t)continue;let u=tl(c?.value);l[`_p.${d}`]={value:u}}for(let[d,c]of Object.entries(s.value??{}))l[d]={value:tl(c?.value)};n.push(l)}}return n}function sh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function tl(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 _d(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Dd(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function vd(e){let t=[...e.preErrors.map(i=>nl(i)),...e.postImageErrors.map(i=>nl(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>nl(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]=Hr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function nl(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 Hr(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(Hr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Hr(a,t);return i}function kd(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"&&Ve(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 il(e){return kd(e,!0)}function xo(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 Ye(e,t,n,r,i=!0,o=!0,a=r){let s=il(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:fe(e.where)}),xo(e,e).forEach((l,d)=>Ye(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Yr(e,t,n,r,i=!0){e.left.type==="UNION"?Yr(e.left,`${t}.left`,n,r,i):Ye(e.left,`${t}.left`,n,r,!0,i),Ye(e.right,`${t}.right`,n,r,!0,i)}function Ud(e,t,n,r){if(!r&&Pt(e)){Ye(Nt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ye(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Yr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ye(e.query,`${t}.main`,n,r,!1,!r,!0):Yr(e.query,`${t}.main`,n,!0,!1)}function Md(e,t,n,r=!1){switch(e.type){case"SELECT":Ye(e,t,n,r);return;case"UNION":Yr(e,t,n,r);return;case"WITH":Ud(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Ud(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Yr(e.query,`${t}.query`,n,!0,!1):Ye(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Md(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=il(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:fe(e.where)}),xo(e,e).forEach((o,a)=>Ye(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=il(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:fe(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=kd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}xo(e,e).forEach((o,a)=>Ye(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:xo(e,e).forEach((i,o)=>Ye(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ko(e,t){let n=new Map;for(let r of t){if(!Ve(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 ol(e,t){return t.eligible===!0&&Ue(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)&&Bn(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 mn(e)?(n.some(r=>r!==lt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(lt)||n.push(lt)):n.includes(Bt)||n.push(Bt),[...new Set(n)]}function rl(e,t){let n=e.functionNames[0],r=mn(n)?lt:Bt,i=ch(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Fd(e,t){let n=[];Md(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=uh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:rl(i)}}if(i.kind==="SELECT"){let c=i.source,u=c.from.cteName===null&&!c.from.subtableCode&&c.joins.length===0,p=Ue(c),f=await t.select(c),E="";try{E=i.where===null?"":V(i.where)}catch{E=""}let R=u&&p==="SIMPLE"&&(c.orderBy.length===0||c.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ko(E,i.relativeFunctionOccurrences),g,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(c);I?.eligible===!0&&ol(c,I)&&(g=I.plan,m=!0,R=!0)}let y;!R&&f.capability==="EXACT_PUSHDOWN"&&(y=Vi({select:c,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(g=y.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(c);I!==null&&lh(c,I)&&(S=I,R=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...g?{prefilterPlan:g,phase2PrefilterEligible:m}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(A),!R)return{hasRelativeDate:n.some(I=>I.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:rl(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"&&Ko(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(c=>c.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:rl(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function al(e){if(!e.allowed&&e.rejection){let t=mn(e.rejection.functionName)?lt:Bt,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 sl(e,t,n={}){let r=ye(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,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=zr(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=cr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??V,c=n.containsFunctions??Ko,u=[];for(let S of a.leaves){let A=Vo(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=d(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!c(I,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let p=fh(l.condition),f=new Set(u),E=Go(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 g=u.map(S=>Vo(S));if(!c(R,[...new Set(g)])||!Rh(R,g))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):$o(e.where,f);if(m!==null&&zr(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let S of g)y.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:u,relativeFunctionNames:y,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}zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Vo(o)===null)return;if(ye(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":zr(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 Vo(e){return e.right.type==="KINTONE_FUNC"&&Ve(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ve(e.right.values[0].name)?e.right.values[0].name:null}function zr(e){let t=[],n=r=>{if(r.type==="BINARY"&&Vo(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 Go(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=Go(e.left,t,n),i=Go(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Go(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var jr={type:"BOOLEAN",value:!0};function $o(e,t){if(e.type==="BINARY"&&t.has(e))return jr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=$o(e.left,t)??jr,r=$o(e.right,t)??jr;return Bo(n)?Bo(r)?null:r:Bo(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=$o(e.expr,t)??jr;return Bo(n)?jr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Bo(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(!Zn.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 B=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function xd(e,t){if(!t)throw new B("IMPORT source capability is not available.");let n=t(e);if(!n)throw new B(`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 B("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new B("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function gh(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new B(`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!==`
5
5
  `)throw new B(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new B(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
6
6
  `){d==="\r"&&e[a+1]===`
7
- `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new B("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 B(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new B(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Wo(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 B("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new B(`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"]),qr=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 Fd(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 qr;return Eh.has(t??"")?r.map(i=>({code:i})):r}function Et(e,t,n,r){throw new B(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function xd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Kd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
+ `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new B("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function mh(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new B(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new B(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ho(e,t){let n=yh(gh(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}`)),mh(r),i.length===0)throw new B("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new B(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var hh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Ah=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),qr=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 Kd(e,t,n){if(!hh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new qr;return Ah.has(t??"")?r.map(i=>({code:i})):r}function Rt(e,t,n,r){throw new B(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function Bd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Gd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
8
8
  `?(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===`
9
- `){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&&Et("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&Et("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
- `,r:"\r",t:" "};if(R in g){p+=g[R];continue}R!=="u"&&Et(`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)||Et("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let y=Number.parseInt(m,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Et("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&Et("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+A-56320)}else y>=56320&&y<=57343?Et("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||Et("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Et(`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 Ho(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Yo(e){if(e.byteLength===0)throw new B("JSON source is empty.");let t=Kd(xd(e)),n=0,r=(d,c=t[n])=>{throw new B(`JSON ${d} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(d,c)=>d.kind==="punct"&&d.value===c,o=d=>{let c=t[n];(c.kind!=="punct"||c.value!==d)&&r(`expected ${d}; found ${Ho(c)}`,c),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 c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Ho(u)}`,u);let p=u.value;c.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),c.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(d.kind==="punct"&&d.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${Ho(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Ho(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 B("JSON source contains no records.");return l.forEach((d,c)=>{if(!(d instanceof Map))throw new B(`JSON record ${c+1} must be an object.`)}),l}var Rh=new Set(["CHECK_BOX","MULTI_SELECT"]),Bd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function it(e,t,n){throw new B(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function gh(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"&&it(n,t.code,"boolean is not accepted."),gh(e)){t.fieldType==="NUMBER"&&it(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&it(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)||it(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&it(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||it(n,t.code,"unsupported value type."),!Rh.has(t.fieldType)&&!Bd.has(t.fieldType)&&it(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&it(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&it(n,t.code,"array elements must not contain duplicates."),Bd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ol(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let i=Yo(t.bytes);if(i.length>r)throw new B(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new B("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||it(d+1,p,"unknown key (not declared in INTO).");let c={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),c[p.code]=yh(l.get(p.code),p,d+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function al(e,t,n,r,i,o){let a=Wo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new B(`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 B("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((m,y)=>[m,y]));for(let m of r)if(!l.has(m))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),c=new Set(r);if(o&&c.has(o))throw new B("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=m=>a.rows.filter(y=>y[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,y]of a.columns.entries()){if(c.has(y)||y===o)continue;let S=d.get(y);if(S)u.push({column:y,reason:E(S),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)p.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let m of r){let y=d.get(m);if(!y)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${y.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let y=[],S={};for(let A of r){let I=m[l.get(A)];try{S[A]=Fd(I,d.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;S[A]=I,y.push({field:A,code:w.code,message:w.message})}}return R.push(y),S}),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:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,c)=>[d,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Xr=(e,t,n)=>{throw new B(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Gd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let o=Yo(t.bytes);if(o.length>r)throw new B(`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 B("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let c=d+1;for(let E of l.keys())a.has(E)||Xr(c,E,"unknown key (not declared in INTO).");let u=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 g=l.get(R);if(E.kind==="FIELD"){g instanceof Map&&Xr(c,R,"object is not accepted for a top-level field."),u.set(R,g);continue}Array.isArray(g)||Xr(c,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),y=g.map((S,A)=>{S instanceof Map||Xr(c,R,`childRow=${A+1} must be an object.`);let I=S;for(let w of I.keys())m.has(w)||Xr(c,w,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(s++,s>i)throw new B(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});p.set(R,y)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function $d(e,t,n,r,i,o){let a=Wo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new B('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 B(`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 B(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new B(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new B(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new B(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(c.length>=i)throw new B(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:E,top:new Map(l.map(g=>[g.field,p[s.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let m=p[s.get(g.field)];if(m!==""&&m!==u.top.get(g.field))throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=p[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new B(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let m=p[s.get(g.rowIdSourceHeader)],y=new Map(g.children.map(A=>[A,p[s.get(A)]]));if(m===""&&[...y.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:y})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}var mh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),hh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ul(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Yd(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)Vd(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)Vd(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(p=>Ah(p,s,l,o,a,r,i,d)),u=c.flatMap(p=>[...p.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.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)&&ll(e.top.get(p.field),r.get(p.field),o,d,p.field,l,sl(e,a,p.field));let c={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Wd(p,o,c,l,sl(e,a,p.code));let u=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 g=l.length,m={},y=i.get(p.subtableCode);for(let S of p.children){let A=y.get(S),I=sl(e,a,S,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?ll(R.values.get(S),A,o,m,S,l,I):Wd(A,o,m,l,I)}l.length===g?(f.validChildRows++,E.push(m)):f.invalidChildRows++}u.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:u,replacementTables:e.replacementTables,errors:l}}function Vd(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&&hh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Wd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;ll(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function ll(e,t,n,r,i,o,a,s=!1){let l=Sh(e),d=Oe(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 Hd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Hd(t)?t.lexeme:t):e}function Hd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Th(e,t){return mh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function sl(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 cl=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function pl(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 dl(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 jd(e,t){return dl(e,t,"DROP")}function zd(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 qd(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 c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:d.length,addRows:d.length,deleteRows:u}});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 Xd(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 Jd(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),c=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,p=[];for(let f of o.replacementTables){let E=wh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],m=o.subtables.get(f)??[],y=0,S=0,A=0,I=g.map((w,C)=>{let b=m[C]??{};return w.rowId&&R.has(w.rowId)?(y++,{rowId:w.rowId,record:b}):(w.rowId&&((i.get(w.rowId)??[]).some(N=>N.parentId!==l||N.table!==f)&&c.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),A++),S++,{record:b})});u.set(f,I),p.push({table:f,existingRows:E.length,inputRows:g.length,updateRows:y,addRows:S,deleteRows:E.length-y,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:c.length===0,top:o.top,subtables:u,tables:p,errors:c}})}var fl="#__import_source";function Qd(e){return{...e,from:{appId:0,alias:null,cteName:fl}}}function bh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function El(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",on=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"}},ye=new WeakMap;function gf(e){return ye.get(e)}var cn=new WeakMap,da=new WeakMap,Zd=new WeakMap,Nh=1,Ch=1;function yf(e,t){if(t)return t;let n=Zd.get(e);return n||(n=`client:${Nh++}`,Zd.set(e,n)),n}function $l(e){return`${e}\0inv:${Ch++}`}async function Vl(e,t,n={}){let r=Date.now(),i=$l(yf(t,n.cacheContext));try{let o=gS(e,n.enableImport===!0),a=mf(),s=Af(t,a),l={aborted:!1},d=Hl(s,l,!Lh(o)||vs(o)),c=await Al(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Sf(c,l),metrics:a};if(c.type==="SELECT"){let p=ye.get(c);p&&ye.set(u,p)}return u}finally{lu(i)}}function mf(){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 hf=Symbol("limitMetricsSink");function Wl(e,t){let n=e[hf];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Af(e,t){return{[hf]: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 ef=Symbol("searchAbortFailClosed");function Hl(e,t,n){return n&&e[ef]?e:{...e,...n?{[ef]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;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 Sf(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 tf(e,t,n){let r=await pi(e,t,n);return rl(r),r}async function pi(e,t,n){return kd(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return ge(r.where,i)},dml:r=>Df(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return il(r,i)},joinServerFunctionPlan:async r=>{await tn(r,t,n);let i=await Ra(r,t,n),o=Ea(r,i);return o===null?null:(Kn(o.joinPlan)&&tu.set(r,o),o.joinPlan)}})}async function Al(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&rl(i);let o=Tl(e);if(o!==null&&!zA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(An("phase15b",e),Di("phase15b",e),We(e),e.type!=="EXPLAIN"&&await Vh(e,t,r),e.type==="IMPORT")return eE(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 Fl(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 cu(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 Ft(Pl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Wf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return au(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return $A(e,t,n,r);case"INSERT_SELECT":return Eu(e,t,n,r);case"UPSERT":return sS(e,t,n,r);case"UPSERT_SELECT":return yu(e,t,n,r);case"UPDATE":return Fl(e,t,n,r);case"DELETE":return aS(e,t,n,r);case"REORDER":return fS(e,t,n,r);case"SHOW_APPS":return oE(t);case"DESCRIBE":return aE(e,t,r);case"EXPLAIN":return AS(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me):me,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 Pf(e,t,n,r)}}var Yl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],jl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function zl(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 Tf(e=!1){let t=e?jl:Yl;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:x(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 If(e,t,n,r)}async function If(e,t,n,r){let i=await te(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=Ps(e,i),l=new Set(s.flatMap(O=>ws(O.field))),d={present:Is.filter(O=>l.has(O)),absent:Is.filter(O=>!l.has(O))},c=e.checkGroups??[],u=_n(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Re(`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 p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),un(e,p);let f=zl(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.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 st(e.appId,t,r):void 0,g=O=>O.field==="$id"?Z({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?Z(o.get(O.field)):void 0),m=ge(e.where,g);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(m)}).`);let y=new Map([...o].map(([O,K])=>[O,K.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),A=e.where===null?null:m.capability==="EXACT_PUSHDOWN"?e.where:bn(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:S,allowKlike:!1}),I=A===null?"":V(A),C=(await be(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:ft(O,null)})).filter(O=>e.where===null||ne(e.where,O.flat,K=>p.get(K.field))),b=[],D=new Map,N=new Map,_=new Set,U=0,L=O=>{if(_.add(O.id),U+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=N.get(q);k?k.$err_count=String(Number(k.$err_count)+1):N.set(q,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let K=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=D.get(K);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??""}`)):D.set(K,{$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"})},v=s.filter(O=>!O.subtableCode),h=new Map;for(let O of s){if(!O.subtableCode)continue;let K=h.get(O.subtableCode)??[];K.push(O),h.set(O.subtableCode,K)}for(let O of C){for(let K of v){let j=O.record[K.field.code]?.value,q=Oe(j,K.field,R);q.ok||L({id:O.id,field:K.field.code,code:q.code,message:q.message,value:Pr(j,K.field.fieldType)})}for(let[K,j]of h){let q=O.record[K]?.value;if(Array.isArray(q))for(let k=0;k<q.length;k++){let $=q[k];for(let X of j){let G=$.value?.[X.field.code]?.value,F=Oe(G,X.field,R);if(!F.ok){let pe=go(K,k,$);L({id:O.id,field:X.field.code,code:F.code,message:F.message,value:Pr(G,X.field.fieldType),...pe})}}}}for(let K of no(c,O.flat,j=>p.get(j.field)))L({id:O.id,field:"",code:"ERR_CHECK",message:K.message,value:""})}if(e.summary)b.push(...N.values());else for(let O of D.values()){let K=Number(O.$err_count);O.$err_subtable!==""&&K>=2&&(O.$err_message=`${O.$err_message}\uFF08${K}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let M={type:"SELECT",columns:[...e.summary?jl:Yl],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return ye.set(M,Tf(e.summary===!0)),M}var Ke=1e4;function at(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.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Xi(i.semantics,r.semantics))return!1}return!0}var Gn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function wf(e,t,n={}){let r=ql(e,n.enableImport===!0),i=Ja(r);if(r.forEach(f=>Di("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Ma(f)||f.type==="UPSERT"&&vh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Ds(r,n.variables),a=bf(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let E=r[f.index];if(!(E?.type==="UPDATE"&&E.from?.cteName!=null))throw new Q(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=mf(),d=Af(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=$l(yf(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,m=null;for(let y=0;y<r.length;y++){let S=i.statements[y],A={index:y,type:S.statementType};if(m){R.push({...A,status:"skipped",skippedReason:m}),g.add(y);continue}let I=S.dependsOn.find(w=>g.has(w));if(I!==void 0){let w=i.statements[I].tempTablesCreated[0]??`statement ${I}`;R.push({...A,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(y);continue}if(u!==null&&Date.now()>=u){R.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(y),m="timeout";continue}try{let w=u!==null?u-Date.now():null,C=s.confirm,b=C?{...s,confirm:(L,v,h)=>C(L,v,{statementIndex:y,statementCount:r.length,statementType:S.statementType,targetAppId:S.targetAppId,...h?.importDetail?{importDetail:h.importDetail}:{},...h?.applyDetail?{applyDetail:h.applyDetail}:{},...h?.applyDiagnostic?{applyDiagnostic:h.applyDiagnostic}:{}})}:s,D={aborted:!1},N=Hl(d,D,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||vs(r[y])),_=Oh(N),U=await Mh(Uh(r[y],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Sf(U.result,D)),R.push({...A,status:"success",...U})}catch(w){R.push({...A,status:"error",error:Fh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(y),w instanceof Gn?m="timeout":w instanceof Vn?m="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(y=>y.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{lu(p)}}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,s){if(e.type==="SET_VARIABLE"){let d=ra(e,a);if(We(d),await tf(d,n,i),d.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:d.expr.elements.map(c=>({type:"string",value:c.value}))});else if(d.expr.type==="SCALAR_SUBQUERY")try{let c=await Nf(d.expr.query,n,r,i,o),u=d.expr.query.columns[0],p=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind!=="AGGREGATE"||u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG")||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"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let E=(await sa(d.expr.query,["__scalar__"],n,i,o)).get("__scalar__");p=E?.semantics?.compareMode==="number"||E?.sortKind==="number"}let f=p?Number(c):Number.NaN;a.set(e.name,p&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof en?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,nf(d.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let d=r.variables??{};if(Object.prototype.hasOwnProperty.call(d,e.name))a.set(e.name,{type:"string",value:d[e.name]});else{let c=nf(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=ra(e,a);if(An("phase15b",l),Di("phase15b",l),We(l),await tf(l,n,i),l.type==="VALIDATE"){let d=await If(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,ye.get(d)??Tf(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await eE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await cu(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&at(o,l.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??Ke,cn.get(d)??new Map),{result:d}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await kl(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let d={...r,maxRecords:r.tempTableMaxRows??Ke,onLimitReached:"error"},c=await kh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Al(l,n,r,i)};if(l.type==="ASSERT")return await Pf(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await yt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await au(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Eu(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await yu(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await Fl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Al(l,n,r,i)}}async function kh(e,t,n,r,i){return e.type==="WITH"?au(e,t,n,r,i,!0):yt(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 Gn;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 Gn)})()},t)})])}catch(a){throw a instanceof Gn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Fh(e){let t;if(e instanceof tt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Rl(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:Rl(r),message:r}}else{let n=String(e);t={code:Rl(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Rl(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 ql(e,t=!1){let n=new Ot(e).tokenize();return new Lt(n,{import:t}).parseStatements()}function Kh(e,t){try{let n=ql(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function bf(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?Kh(r.name,t[r.name]):r.default);return n}function nf(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:Jc(e.name)};case"STRING_FUNC":return{type:"string",value:ue(e,{})};case"ARITH":{let t=le(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 ra(e,t){return Sl(e,t,!1)}function Sl(e,t,n){if(Array.isArray(e))return e.map(r=>Sl(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(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&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:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`: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.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,Sl(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),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=Bh(i);if(o.type==="SELECT"&&Fe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Fe(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 Fe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Bh(e){if(e.type==="NOT"&&Fe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Fe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Fe(t,!1)||Fe(n,!1))return{type:"BOOLEAN",value:!1};if(Fe(t,!0))return n;if(Fe(n,!0))return t}else if(e.op==="OR"){if(Fe(t,!0)||Fe(n,!0))return{type:"BOOLEAN",value:!0};if(Fe(t,!1))return n;if(Fe(n,!1))return t}}return e}function Tl(e){if(Array.isArray(e)){for(let t of e){let n=Tl(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=Tl(n);if(r!==null)return r}}return null}var Vn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},en=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Pf(e,t,n,r,i){let o=await jo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?x("number"):x("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await jo(e.low,t,n,r,i),d=await jo(e.high,t,n,r,i);if(!Wt(">=",o,l,a)||!Wt("<=",o,d,a))throw new Vn(`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 jo(e.right,t,n,r,i);if(!Wt(e.op,o,s,a))throw new Vn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function jo(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 Nf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Vn(o.message):o}}}async function Nf(e,t,n,r,i){let{query:o,probed:a}=Gh(e),s=await ni(o,t,n,r,i);if(s.columns.length!==1)throw new en(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new en("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 en(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Gh(e){return re(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 di(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||nt(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")return;let E=String(f.op),R=f.right,g=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||g)){let m=f.left;m?.type==="FIELD"&&typeof m.field=="string"&&l.add(m.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 c=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let R=await uu(p,t,n);R&&c.set(p,R)}));let u=(p,f,E)=>{if(f==="$id")return Ln(Z({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(p.appId)?.get(Te(p,f));if(!R)return;let g=R.semantics??Z(R),m=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return Ln(m,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let E=o.find(R=>Le(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(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??x("string"):u(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:u(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Qo(E,p.field)!==void 0))return f.length>1?x("string"):void 0}}var Cf=new WeakMap;async function tn(e,t,n,r,i=!1){let o=await di(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Wp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Cf.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function Of(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Lf(e,t,n){let r=n==="DIRECT"&&e.joins.length===0&&e.from.cteName===null&&e.from.subtableCode==null,i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||r&&o.orderBy.some(s=>{if(s.key.type!=="FIELD_NAME")return!1;let l=Be(s.key.name);return l.field==="$id"||t(l)?.fieldType==="RECORD_NUMBER"})||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return i}function Xl(e,t){return t.length===0?e:{...e,warnings:[...new Set([...e.warnings??[],...t])]}}function Jl(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=>nt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function _f(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(Be(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=x("number"):r.type==="WINDOW_COL"?r.windowKind!=="AGGREGATE"||r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"?i=x("number"):r.arg.type!=="WILDCARD"&&(i=Yn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Yn(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"?x("string"):x("number"):r.type==="STRFUNC_COL"?i=an(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function nn(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 ia(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Df(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(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?ge(null,()=>{}):ge(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function $n(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Df(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ee(`WHERE predicate cannot be represented by kintone REST (${nn(r)})`)}async function Ft(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await fa(e,t,r,i),Yh(e))return l=qh(e),o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Of(e)),c=Lf(e,d,s),u=await Ql(e,t,r,i);await sE(e,t,n,r,i);let p=cA(e,ge(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let w=await di(e,t,r,i),C=il(e,w);C.eligible&&nl(e,C)&&(E=C.plan)}if(E===void 0&&p.capability==="EXACT_PUSHDOWN"&&e.where!==null){let w=null;try{w=V(e.where)}catch{w=null}R=$i({select:e,selectMode:f,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:w,relativeFunctionNames:de(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=p.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",m=await oi(e,t,r,i),y=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:m.semantics,maxRecords:n.maxRecords??1e4,hasKlike:fe(e.where)}):null;await Jh(e,y?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r);let S=Zl(e,n,y),I=R!==void 0&&(f==="FULL_SCAN"||y?.kind==="CANONICAL_LOCAL")?Hl(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await Xh(e,I,S.effectiveOptions,r,y,m):l=await fA(e,I,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,m,E,u)}catch(w){vf(S,w)}return o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),Xl(l,c)}async function Ql(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 c=await te(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:c.filter(f=>!f.inSubtable).map(f=>f.code)};let u=c.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(u.length>0?u:c.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:c.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=sd(e,(d,c)=>o[c]),s=e.groupBy,l=ld(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 c=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${c}`)}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 ii=new WeakMap;async function Vh(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 fa(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Wh(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let u=await te(c,t,n);return[c,new Map(u.map(p=>[p.code,p]))]}))),s=(c,u)=>{if(u==="$id")return"$id";let p=Te(c,u);return a.get(c.appId)?.has(p)?p:null},l=(c,u)=>{if(c.cteName===null)return!1;let p=r?.get(c.cteName);return p?p.columns.includes(u):!0},d=(c,u,p,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,p.field)!==null).length,R=i.some(m=>l(m,p.field)),g=Le(c);return{canonicalId:`source:${u}:APP${c.appId}:${f}`,directKey:p.tableAlias&&g?`${p.tableAlias}.${p.field}`:p.field,unqualifiedBridgeKey:E===1&&!R?p.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let f=i.findIndex(g=>Le(g)===c.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,c.field);if(R===null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} does not exist in APP${E.appId}.`);return d(E,f,c,R)}let u=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,c.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),p=i.filter(f=>l(f,c.field));if(u.length+p.length>1)throw new Error(`ArgumentError: B65 field ${c.field} is ambiguous across multiple sources.`);if(u.length===1&&p.length===0){let f=u[0];return d(f.table,f.tableIndex,c,f.code)}throw p.length===1?new Error(`ArgumentError: B65 field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${c.field} does not exist in a physical APP source.`)}}async function fa(e,t,n,r){ii.delete(e);let i=re(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Wh(e,t,n,r),s=cc(e,a,uc);s&&ii.set(e,s)}function Hh(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=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.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \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";return`${e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"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 Zl(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?At({...e,orderBy:[]}):At(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function vf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(Hh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function wl(e,t){try{return await t()}catch(n){vf(e,n)}}function gt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Yh(e){return e.from.appId===0&&e.from.cteName===Xe}function oa(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"?oa(e.left)||oa(e.right):e.type==="STRING_FUNC"?eu(e):!1}function jh(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Qr(e)}function Qr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?eu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Qr(e.left)||Qr(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"?oa(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Qr(n))):!1}function eu(e){return e.args.some(t=>jh(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(oa(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(eu(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Qr(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||re(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=zs([{}],e.columns),{rows:n,columns:r}=Vr(t,e.columns),i=Mo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function Xh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Ff(e):e,s=Ki(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await ru(e,t,r),c=ou(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,Jl(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,g=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,y=e.orderBy.length===0&&m!==null&&m<=p&&!fe(e.where)?m:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let b=await od({client:t,app:s.app,fields:s.fields,query:Bs(e),offset:e.offset??0,limit:e.limit});S=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(g)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?V(e.where):"";S=await be(t.getRecords,s.app,b,l,{parallel:R,maxRecords:p,stopAfter:y,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`),Wl(t,e.from.appId)}})}let A=S.map(b=>ft(b,null));g||(A=Ys(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,js(e.columns,void 0,c.row,u)),A=Mo(A,e.limit,e.offset));let{rows:I,columns:w}=Vr(A,e.columns,void 0,c.row,void 0,u),C=await su(e,I,w,t,r);return{type:"SELECT",rows:I,columns:C,rowCount:I.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=Ki(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,$t(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(p=>!Gs(p));if(l.length===0)continue;let d=await te(a,n,r);if(d.length===0)continue;let c=new Set(d.map(p=>p.code)),u=l.filter(p=>!c.has(p));if(u.length>0)throw new Error(`ArgumentError: unknown field code(s): ${u.join(", ")} (APP${a})`)}}function rf(e){return e.cteName??`APP${e.appId}`}function Qh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function Zh(e,t){return Gs(t)||e.validCodes.has(t)}function gl(e,t){return e.table.cteName!==null?e.validCodes.has(t):Zh(e,t)}function eA(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 tA(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=Le(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Xe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:rf(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Xe)return;let p=await te(c.appId,t,r);s.set(c,{table:c,label:rf(c),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of Qh(c.table))l.set(u,c);for(let c of e.joins)for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!gl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=gc(e);for(let[c,u]of d.bySource){let p=s.get(c);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(E=>!gl(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let c of d.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>gl(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${p})`)}}async function Jo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Jo(e.left,t,n,r,i),await Jo(e.right,t,n,r,i);return}await tA(e,t,n,r);for(let o of eA(e))await Jo(o,t,n,r,i)}}function Uf(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ur(e.where,{tableAlias:e.from.alias}):null}var tu=new WeakMap;function Ea(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let n=[e.from,...e.joins.map(u=>u.table)];if(n.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let r=n.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=Jp(e.where,r),o=Qp(i,r),a=new Map,s=new Map;for(let[u,p]of o.fetchQueriesByAlias)s.set(u,p);for(let u of o.items)s.has(u.targetAlias)||s.set(u.targetAlias,xn(u,r)),a.set(u.targetAlias,u.predicate);let l=e.from.alias,d=a.get(l)??null,c=new Map(a);return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ra(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,Uf(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=ur(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,c]=await Promise.all([Ie(s,t,n),mA(s,t,n)]),u=nA(l).filter(p=>d.get(p)==="STATUS");if(u.length>0){let p=await ya(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 u)c.set(E,f)}}return[s,d,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function nA(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 Rt(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"&&aa(e.left.expr,t),e.right.type==="CASE_VALUE"&&aa(e.right.expr,t);return;case"LOGICAL":Rt(e.left,t),Rt(e.right,t);return;case"NOT":case"GROUP":Rt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function aa(e,t){for(let n of e.branches)Rt(n.condition,t)}function rA(e){let t=[];Rt(e.where,t),Rt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&aa(n.expr,t);return t}function Le(e){return e.alias??e.cteName}function kf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function nu(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function ru(e,t,n){let r=rA(e);if(r.length===0)return new Map;let i=new Set,o=nu(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=kf(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 Ie(s,t,n)]));return new Map(a)}function Be(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 iu(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Jt(t,n)}function Jt(e,t){if(e.type==="FIELD_REF"){t.push(Be(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Jt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?Wn(n,t):n.type!=="ARRAY"&&Jt(n,t)}function Wn(e,t){if(e.type==="AGG_REF"){iu(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Wn(e.left,t),Wn(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function bl(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Wn(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Zr(n,t)}}function Zr(e,t){if(e.type==="STRING_FUNC"){bl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zr(e.left,t),Zr(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"?bl(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Wn(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Zr(r,t)}}function iA(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;iu(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function oA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?iu(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Wn(n.expr,t):n.type==="STRFUNC_COL"?bl(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&iA(n.expr,t);return t}var aA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function sA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":aA.has(e.fieldType)?"string":void 0}async function Mf(e,t,n,r){let i=oA(e.columns);if(i.length===0)return;let o=new Set,a=nu(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=kf(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(g=>E.get(g)?.fieldType==="STATUS"))return;let R=await uu(f,t,n);R&&l.set(f,R)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??Z(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 g=c.find(m=>Le(m)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(g.appId)?.get(Te(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(e.from.appId)?.get(Te(e.from,f.field))}else{let g=c.flatMap(m=>{if(m.cteName!==null){let S=r?.get(m.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let y=s.get(m.appId)?.get(Te(m,f.field));return y?[u(y,m.appId)]:[]});return g.length!==1?void 0:g[0]}if(!E)return;let R=f.tableAlias!==null?c.find(g=>Le(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function Te(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Qo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ot(e,t){let n=e.semantics??Z(e);return{sortKind:sA(e),fieldType:e.fieldType,semantics:t===void 0?n:Ln(n,t,e.code)}}function Ff(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:x(e)}}function xe(){return{semantics:x("string","KSQL_UNKNOWN")}}function xf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Qt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Z({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var lA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function an(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return lA.has(e.func)?z("number"):z("string")}function Hn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?xf():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?xe():Yn(e.arg,t):e.func==="GROUP_CONCAT"?z("string"):z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?an(e):e.type==="FIELD_REF"?t(Be(e.field))??xe():e.type==="FIELD"?t(e)??xe():xe()}function ga(e){if(e.length===0)return xe();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&&Xi(n(r.semantics),n(t.semantics)))?e.every(i=>Xi(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?xf("KSQL_MIXED_UNSUPPORTED"):xe()}function Yn(e,t){if(e.type==="FIELD_REF")return t(Be(e.field))??xe();if(e.type==="FIELD")return t(e)??xe();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 an(e);let n=e.branches.map(r=>Hn(r.result,t));return e.elseResult&&n.push(Hn(e.elseResult,t)),ga(n)}function Kf(e,t){return e.windowKind!=="AGGREGATE"||e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?z("number"):e.arg.type==="WILDCARD"?xe():Yn(e.arg,t)}function Zo(e,t){return{...e??{},displayName:t}}function uA(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")||t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX"))}async function sa(e,t,n,r,i,o=!1){let a=new Map;uA(e)&&await Promise.all(nu(e).map(async R=>{if(a.has(R.appId))return;let g=await te(R.appId,n,r);a.set(R.appId,new Map(g.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 S=a.get(e.from.appId)?.get(R.field);return S?ot(S,e.from.appId):void 0}let m=s.find(S=>Le(S)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let y=a.get(m.appId)?.get(Te(m,R.field));return y?ot(y,m.appId):Qt(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(Te(e.from,R.field));return m?ot(m,e.from.appId):Qt(R.field)}let g=s.flatMap(m=>{if(m.cteName!==null){let A=i?.get(m.cteName);return A?.columns.includes(R.field)?[A.columnMeta?.get(R.field)]:[]}let y=a.get(m.appId)?.get(Te(m,R.field)),S=y?ot(y,m.appId):Qt(R.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(m=>{if(R.tableAlias!==null&&Le(m)!==R.tableAlias)return!1;let y=Te(m,R.field);return a.get(m.appId)?.has(y)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let m=c(g);return R&&m!==void 0?{...R,publicSourceApp:m}: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 g=Be(R),m=u(d(g),g);p.set(R,Zo(m,m?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),m=u(d(g),g);p.set(R,Zo(m,m?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!m)return;let y;if(R.type==="FIELD"){let S=Be(R.field);y=u(d(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?y=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"?y=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(y=Yn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")y=z("number");else if(R.type==="GROUPING_COL")y=z("number");else if(R.type==="LITERAL_COL")y=z("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?y=an(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?y=z("number"):S.type==="FIELD"?y=d(S):y=z("string")}else if(R.type==="STRFUNC_COL")y=an(R.expr);else if(R.type==="WINDOW_COL")y=Kf(R,d);else if(R.type==="CASE_COL"){let S=R.expr.branches.map(A=>Hn(A.result,d));R.expr.elseResult&&S.push(Hn(R.expr.elseResult,d)),y=ga(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(y=xe());p.set(m,Zo(y,R.aliasDisplay??m))}),p}function Bf(e,t){let n=ye.get(e),r=ye.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),c;if(s&&d){let u=ga([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,Zo(c,s?.displayName??o))}),i}function ou(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(c=>Le(c)===s.tableAlias);return!d||d.cteName!==null?void 0:Qo(d,s.field)??t.get(d.appId)?.get(Te(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Qo(e.from,s.field)??t.get(e.from.appId)?.get(Te(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let c=Qo(d,s.field)??t.get(d.appId)?.get(Te(d,s.field));return c?[c]:[]});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 Gf=new WeakSet,$f=new WeakMap;function Pl(e){return Gf.add(e),e}function cA(e,t){return $f.set(e,t),t}function Vf(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&re(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function pA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function dA(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":V(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new on;if(!pA(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Vr([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function fA(e,t,n,r,i,o=!0,a,s,l){let d=$f.get(e);if(Gf.has(e)&&d!==void 0&&Vf(e,d)){let F=await dA(e,t);if(F!==null)return F}let c=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,r,i),ui(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([Ra(e,t,r),ru(e,t,r),Mf(e,t,r,i)]),g=ou(e,E),m=await di(e,t,r,i,nt(e.having)||Jl(e)),y=_f(e,m),S=tu.get(e);if(S&&!Kn(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ea(e,f)??Nn(e,f);Ya(A);let I="joinPlan"in A?A:null,w=I&&Kn(I.joinPlan)?I:null,C=t,b=A.mainCondition,D=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let N=s?s.prefilterWhere:w?null:b,_=w?.queriesByAlias.get(e.from.alias)??"",U=await uE(e.columns,t,n,r,i),L=gt(e.where),v=L?Promise.resolve([]):ei(e,e.from,C,c,p,!0,n.onLimitReached??"error",u,N,w?!1:o,l,_),h=[],P=[];for(let F of e.joins){if(L){h.push({join:F,promise:Promise.resolve([])});continue}let pe=F.table.alias?w?.queriesByAlias.get(F.table.alias)??"":"",fn=w?null:F.table.alias?D.get(F.table.alias)??null:null;fn!==null||pe!==""?h.push({join:F,promise:ei(e,F.table,C,c,p,!1,n.onLimitReached??"error",u,fn,!0,l,pe)}):P.push(F)}let M=a?Promise.resolve(a):oi(e,t,r,i);M.catch(()=>{});let O=await v,K=new Map;K.set(e.from.alias,O);for(let{join:F,promise:pe}of h)K.set(F.table.alias,await pe);await Promise.all(P.map(async F=>{let fn=await qf(e,F,K,C,c,p,n.onLimitReached??"error",u,null,l,"")??await ei(e,F.table,C,c,p,!1,n.onLimitReached??"error",u,null,!0,l,"");K.set(F.table.alias,fn)}));let{optionOrders:j,sortKinds:q,semantics:k}=await M,{rows:$,columns:X}=Js({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:m,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await su(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}async function Wf(e,t,n,r,i=!1,o=!1){let a=Zl(e,n,null);return wl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Wf(e.left,t,s,r,i,o):Ft(Pl(e.left),t,s,r,void 0,i,o,"DERIVED"),Ft(Pl(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=d.columns,p=d.rows.map(m=>{let y={};return c.forEach((S,A)=>{y[S]=m[u[A]??S]??""}),y}),f=[...l.rows,...p],E=e.all?f:Hf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&ye.set(g,Bf(l,d)),g})}function Hf(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 au(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&bt(e))return Ft(Pt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let d of e.ctes){let c;d.query.type==="SHOW_APPS"?c=await oE(t):d.query.type==="DESCRIBE"?c=await aE(d.query,t,r):c=await yt(d.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(d.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)})}let l=await yt(e.query,t,n,a,r,o);return Xl(l,[...s])}async function yt(e,t,n,r,i,o=!1,a=!1){if(a||await Jo(e,t,r,i),e.type==="UNION"){let[d,c]=await Promise.all([yt(e.left,t,n,r,i,o,!0),yt(e.right,t,n,r,i,o,!0)]),u=d.columns,p=c.columns,f=c.rows.map(y=>{let S={};return u.forEach((A,I)=>{S[A]=y[p[I]??A]??""}),S}),E=[...d.rows,...f],R=e.all?E:Hf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],m={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&ye.set(m,Bf(d,c)),m}if(!(e.from.cteName!=null&&e.from.cteName!==Xe||e.joins.some(d=>d.table.cteName!=null)))return Ft(e,t,n,i,r,o,!1,"DERIVED");let l=await EA(e,t,n,r,i);return o&&ye.set(l,await sa(e,l.columns,t,i,r)),l}async function EA(e,t,n,r,i){await fa(e,t,i,r);let o=ii.get(e),a=await Ql(e,t,i,r),s=new Set,l=G=>{if(G.alias!==null||G.cteName===null)return G;let F=Le(G);return s.add(F),{...G,alias:F}};e={...e,from:l(e.from),joins:e.joins.map(G=>({...G,table:l(G.table)}))};let d=new Set;for(let G of[e.from,...e.joins.map(F=>F.table)]){let F=Le(G);if(F!==null){if(d.has(F))throw new Error(`ArgumentError: effective alias ${F} is used by multiple tables.`);d.add(F)}}let c=G=>{let F=r.get(G);if(!F)throw new Error(`ArgumentError: materialized source ${G} is not available.`);return F};for(let G of[e.from,...e.joins.map(F=>F.table)])G.cteName!==null&&c(G.cteName);let{resolver:u}=await tn(e,t,i,r,Of(e)),p=Lf(e,u,"DERIVED"),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,i,r),ui(e.having,t,n,i,r),sE(e,t,n,i,r)]);let g=ge(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(g)}).`);let m=await oi(e,t,i,r),y=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:m.semantics,maxRecords:f,hasKlike:fe(e.where)}):null,S=Zl(e,n,y),A=S.effectiveOptions,[I,w,C]=await Promise.all([Ra(e,t,i),ru(e,t,i),Mf(e,t,i,r)]),b=ou(e,w),D=await di(e,t,i,r,nt(e.having)||Jl(e)),N=_f(e,D),_=Ea(e,I)??Nn(e,I);Ya(_);let U=t,L=await uE(e.columns,t,A,i,r),v=Promise.resolve(m);v.catch(()=>{});let h=new Map,P=new Map;if(e.from.cteName!=null){let G=c(e.from.cteName);h.set(e.from.alias,G.rows.map(of)),P.set(e.from.alias,G.columns)}else{let G=await wl(S,()=>ei(e,e.from,U,f,R,!0,A.onLimitReached??"error",E,_.mainCondition,g.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,G)}let M=e.joins.map(G=>wl(S,async()=>{if(G.table.cteName!=null){let F=c(G.table.cteName);h.set(G.table.alias,F.rows.map(of)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,fn=await qf(e,G,h,U,f,R,A.onLimitReached??"error",E,F,a)??await ei(e,G.table,U,f,R,!1,A.onLimitReached??"error",E,F,!0,a);h.set(G.table.alias,fn)}}));await Promise.all(M);let{optionOrders:O,sortKinds:K,semantics:j}=await v,q=e.joins.length===0&&e.from.cteName!=null?c(e.from.cteName).columns:void 0,{rows:k,columns:$}=Js({tables:h,stmt:e,scalarCache:L,optionOrders:O,sortKinds:K,orderSemantics:j,fieldTypeResolver:b.row,fieldSemanticsResolver:D,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:N,aggregateSortKindResolver:C,appliedKlikes:_.appliedKlikes,sourceColumns:q,tableColumns:P,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),X=await su(e,k,$,t,i);return Xl({type:"SELECT",rows:k,columns:X,rowCount:k.length,warnings:[...E]},p)}async function su(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 cd(o,e.from.subtableCode,()=>ya(e.from.appId,r,i))}function of(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ei(e,t,n,r,i,o,a,s,l=null,d=!0,c,u=""){let p=$t(e,t,c),f=m=>{if(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`),Wl(n,t.appId),xp(e,t,o))throw new Pe(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${m} \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`,!0)};if(!t.subtableCode){let m=o&&d?Ec(e,t.appId).query:"",y=[l!==null?V(l):"",u].filter(w=>w!==""),S=y.length>1?y.map(w=>`(${w})`).join(" and "):y[0]??"",A=m&&S?`(${m}) and (${S})`:m||S;return(await He(n.getRecords,t.appId,A,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let g=(await He(n.getRecords,t.appId,"",p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Cd(g,t.subtableCode)}var Yf=50;function RA(e){let t=_e(e);return t!==null?JSON.stringify(t):e}function Nl(e){return JSON.stringify(e)}function sn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?RA(n):n))}function fi(e,t){let n=e.raw.get(Nl(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(sn(t,e.numericKey))}async function Ei(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},c=(g,m,y)=>{let S=g.get(m);(S===void 0||y>S)&&g.set(m,y)},u=(g,m)=>{c(d.raw,Nl(g),m),l.some(Boolean)&&c(d.normalized,sn(g,l),m)},p=new Set,f=[],E=new Set;for(let g of n){let m=Nl(g);E.has(m)||(E.add(m),g.some(y=>y==="")?f.push(g):p.add(g[0]))}let R=["$id",...t];for(let g of jn([...p],Yf)){let m=`${t[0]} in (${g.map(la).join(",")})`,y=await be(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let S of y){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(I=>jf(S[I]?.value)),A)}}for(let g of f){let m=t.map((S,A)=>`${S} = ${la(g[A])}`).join(" and "),y=await be(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});y.length!==0&&u(g,gA(y))}return d}function gA(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 jf(e){return typeof e=="string"?e:e==null?"":String(e)}function la(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function jn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var zf=50,yA=6,af=zf*yA;async function qf(e,t,n,r,i,o,a,s,l=null,d,c=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let u=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!u||!p)return null;let f,E,R;if(u===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&&u!==t.table.alias)f=u,E=t.on.left.field,R=t.on.right.field;else return null;let g=n.get(f);if(!g)return null;let m=new Set;for(let b of g){let D=b[E]?.value,N=jf(D).trim();N.length>0&&m.add(N)}let y=[...m];if(y.length===0)return[];if(y.length>af)return s.add(`JOIN\u30AD\u30FC\u304C ${y.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 ${af} \u4EF6\uFF09\u3002`),null;let S=$t(e,t.table,d),A=b=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${b} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${b} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Wl(r,t.table.appId)},I=jn(y,zf),w=[],C=new Set;for(let b of I){let D=`${R} in (${b.map(la).join(",")})`,_=[l!==null?V(l):"",c].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,D),U=await He(r.getRecords,t.table.appId,_,S,{parallel:o,maxRecords:i,onLimit:a,onTruncate:A});for(let L of U.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;C.has(v)||(C.add(v),w.push(L))}}return w}var Cl=new Map,Ol=new Map,Ll=new Map,_l=new Map,Dl=new Map,vl=new Map;function lu(e){Cl.delete(e),Ol.delete(e),Ll.delete(e),_l.delete(e),Dl.delete(e),vl.delete(e)}function zn(e,t,n){return e.get(t)?.get(n)}function qn(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=zn(_l,n,e);if(r)return r;let i=t.getFields(e);return qn(_l,n,e,i),i}async function st(e,t,n){let r=zn(vl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return qn(vl,n,e,i),i}async function ya(e,t,n){let r=zn(Dl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return qn(Dl,n,e,i),i}async function uu(e,t,n){let r=await ya(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ie(e,t,n){let r=zn(Cl,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return qn(Cl,n,e,o),o}async function Ul(e,t,n){let r=zn(Ol,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 qn(Ol,n,e,o),o}async function mA(e,t,n){let r=await Ul(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function sf(e,t,n){let r=zn(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 qn(Ll,n,e,o),o}function hA(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 AA(e,t,n,r){let i=hA(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await te(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(u.field);return R?ot(R,e.from.appId):void 0}let f=o.find(R=>Le(R)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let E=s.get(f.appId)?.get(Te(f,u.field));return E?ot(E,f.appId):Qt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(Te(e.from,u.field));return f?ot(f,e.from.appId):Qt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),m=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(Te(f,u.field)),R=E?ot(E,f.appId):Qt(u.field);return R?[R]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},d=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Be(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=z("number");else if(u.type==="WINDOW_COL")p=Kf(u,l);else if(u.type==="GROUPING_COL")p=z("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=z("string");else if(u.type==="STRFUNC_COL")p=an(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=xe();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(E=>Hn(E.result,l));u.expr.elseResult&&f.push(Hn(u.expr.elseResult,l)),p=ga(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Yn(u.arg,l)):p=u.func==="GROUP_CONCAT"?z("string"):z("number"));p?.semantics&&d.set(u.alias,p.semantics)}let c=new Map;for(let u of i){let p=d.get(u)??l(Be(u))?.semantics;if(!p){let E=Be(u);E.tableAlias===null&&a.has(E.field)&&c.set(u,Z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await ya(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}c.set(u,f)}return c}async function oi(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([SA(e,t,n),TA(e,t,n),AA(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function SA(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 Ul(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 Ul(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function TA(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 sf(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 sf(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Xf(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 IA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function wA(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||IA.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function qe(e,t,n,r){let i=await te(e,n,r);return wA(e,t,i),i}async function mt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?st(e,r,i):void 0}function ln(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??"",c=Oe(d,l,r);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let u=["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:u?d:c.value}}})}async function bA(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=await Cr({statement:e,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return tS(e,a,o)}async function PA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Jf(e,t,n,r,i);return rS(e,a,o)}async function Jf(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=rE(e),l=new Set;for(let g of s){let m=sn(g,e.keyFields.map(y=>a.get(y)==="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 Ei(e.appId,e.keyFields,s,t,n,a),c=s.map(g=>fi(d,g)),u=new Map,p=[...new Set(c.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of jn(p,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of m.records){let S=Number(y.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,y)}}let E=c.map((g,m)=>({sourceRowIndex:m,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),R=await _p({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function NA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await qe(e.appId,e.fields,t,r),o=await Cr({statement:e,fieldInfos:i,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),loadNumberPrecision:()=>st(e.appId,t,r)}),a=Ls(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ma(a),applyDiagnostic:a}))throw new ce("INSERT",o.guards.parentRows);let s=await Mp(o,t,a);return{...s,diagnostic:ke(a,s)}}async function CA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Jf(e,t,n,r,1),o=_s(i);if(n.confirm){let s=ma(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ce("UPDATE",i.guards.parentRows)}let a=await Fp(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:ke(o,a)}}function OA(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 ma(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=OA(n?zo(n):[],r?zo(r):[]),a=LA(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),c=o.reduce((p,f)=>p+f.removeRows,0),u={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:c,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{...u,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=zo(n),f=zo(r);return{...u,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 u}function zo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=rn(t,"APPEND"),r=rn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function rn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function LA(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:rn(n,"ADD"),removedValues:rn(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 cu(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return bA(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return PA(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await nE(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await pu(e,t,n,r,i,o)).result}var ai=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function pu(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 c=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,u=await qe(e.appId,c,t,r);e.type==="UPDATE"&&await $n(e,t,r);let p=new Map(u.map(v=>[v.code,v])),f=await mt(e.appId,c,u,t,r),E=Ze(u,d),R=Od(E),g=(await _A(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,h)=>v.rowNumber-h.rowNumber),m=g.filter(v=>v.mode==="update"),y=e.type==="UPDATE"?UA:e.type.startsWith("UPSERT")?v=>kA(v,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,A=m.length>0&&S!==void 0,I=new Map;if(A){Ss(m,c,u);let v=await S({appId:e.appId,candidates:m,fields:R}),h=new Map;for(let P of m){if(P.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${P.rowNumber}).`);let M=v.get(P.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${P.targetId}.`);let O=Ld(M,P.record??{});h.set(P.rowNumber,O)}f===void 0&&[...h.values()].some(P=>jt(P,E))&&(f=await st(e.appId,t,r));for(let P of m){let M=h.get(P.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${P.rowNumber}.`);I.set(P.rowNumber,zt(M,E,f,o,P.rowNumber,l))}}let w=Ts(g,l,d,c,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:C,invalidRows:b,invalidRowNumbers:D}=w;if(A){let v=new Map(w.candidateResults.map(h=>[h.rowNumber,h]));C=[],D=new Set;for(let h of g){let P=v.get(h.rowNumber);if(!P)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let K=[...P.preErrors,...P.builtInErrors,...P.checkErrors];C.push(...K),K.length>0&&D.add(h.rowNumber);continue}let M=I.get(h.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let O=_d({rowNumber:h.rowNumber,setFields:c,normalizedPostImage:M.normalizedRecord,preErrors:P.preErrors,postImageErrors:M.errors,checkErrors:P.checkErrors});h.record=O.writeRecord,C.push(...O.errors);for(let K of O.invalidRowNumbers)D.add(K)}b=D.size}let N=[...d,...vn],_={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-b,invalidRows:b,errorCount:C.length,columns:N,errors:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let v of d){if(v==="$id"){U.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Z({fieldType:"RECORD_NUMBER"})});continue}let h=p.get(v);h&&U.set(v,ot(h,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of vn)U.set(v,z(L.has(v)?"number":"string"));return cn.set(_,U),{result:_,candidates:g,invalidRowNumbers:D,columnMeta:U}}async function kl(e,t,n,r,i,o){let a=await pu(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");at(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Ke,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ai(`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 ce(E,d.length)}let c={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 g=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(g.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...c}}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,...c}}let u=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<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.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,...c}}async function _A(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return vA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")lf(e,e.fields),p=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),un(e,p),l=e.values.map(A=>A.map((I,w)=>I.type==="CASE_VALUE"?Ut(I.expr,{},a.get(e.fields[w])?.fieldType):I));else{let A=await fu.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.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(I&&new Set(A.columns).size!==A.columns.length)throw Re("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");lf(e,A.columns),d=A.rows,c=A.importPresence,u=A.importRowErrors;let w=A.columnMeta;p=new Map(A.columns.map(C=>{let b=w?.get(C),D=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[C,D]})),un(e,p),l=A.rows.map(C=>A.columns.map(b=>C[b]??""))}let f=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,C)=>c&&!c[I]?.has(w)?[]:[[w,A[C]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:d?.[I]??Object.fromEntries(e.fields.map((w,C)=>[w,Qe(A[C])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([A,I])=>[A,I.fieldType])),R=f.map(A=>e.keyFields.map(I=>Qe(A.payload.get(I)))),g=e.keyFields.map(A=>E.get(A)==="NUMBER"),m=new Map;for(let A of R){let I=sn(A,g);m.set(I,(m.get(I)??0)+1)}let y=da.has(e);if(y&&[...m.values()].some(A=>A>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 S=await Ei(e.appId,e.keyFields,R,n,r,E);return f.forEach((A,I)=>{let w=R[I],C=fi(S,w);A.mode=C===void 0?"create":"update",C!==void 0&&(A.targetId=C),e.keyFields.forEach((b,D)=>{w[D]===""&&A.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(m.get(sn(w,g))??0)>1&&A.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 du(e){return e.checkGroups?_n(e.checkGroups):[]}function lf(e,t){let n=new Set(t);for(let r of du(e)){if(r.tableAlias!==null)throw Re(`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 Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var DA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function un(e,t){if(e.checkGroups)for(let n of Qc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(DA.has(i??""))throw Re(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function vA(e,t,n,r,i,o){if(e.from)return FA(e,e.from,t,n,r,i,o);await lE(e.assignments,t,n,r);let a=await Ie(e.appId,t,r),s=Qf(e,a);un(e,Ml(a,e.appId));let l,d=new Map,c=new Map;if(ao(e)){let u=os(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ea(f.records),d=c,l=ss(e,f.records,a).flatMap(E=>E.records)}else{let u=hr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ea(f.records),d=c,l=Ar(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await He(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ea(p.records),l=Ar(e,[...c.keys()],a).flatMap(f=>f.records)}else{let p=await To(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ar(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:c.get(u.id),evaluationRow:MA(d.get(u.id),e.appId),evaluationFieldTypes:Ml(a,e.appId)}))}function ea(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 UA(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 kA(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 Pe(`\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 jn(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,c=Number(d);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,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 Qf(e,t){if(e.from)return[];let n=new Set;for(let r of du(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Re(`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 Re(`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 MA(e,t){if(!e)return{};let n=ft(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Ml(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function FA(e,t,n,r,i,o,a){let s=await hE(e,t,n,i,o);un(e,s.evaluationTypes);let l=await Zf(e,t,n,r,i,o,a),d=await Ie(e.appId,n,i),c=us(e,l,d).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?ea(l.map(f=>f.target)):new Map;return c.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:xS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var xA=Yf,KA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Zf(e,t,n,r,i,o,a){let s=await BA(e,t,n,i),l=await hE(e,t,n,i,o),d=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...d])],u=await GA(t,c,d,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=uf(I[t.joinKeyField],s,"source");if(p.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);p.set(w,I),f.set(w,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...oS(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":hr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],y=new Set,S=0;for(let I of jn([...f.values()],xA)){let w=`${t.targetJoinField} in (${I.map(la).join(",")})`,C=g?`(${w}) and (${g})`:w,b=await He(n.getRecords,e.appId,C,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=b.records.length,S>E)throw new Pe(`\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 b.records){let N=D.$id?.value;if(typeof N!="string"||N==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(N)||(y.add(N),m.push(D))}}let A=[];for(let I of m){let w=I[t.targetJoinField]?.value,C=uf(w,s,"target");if(C===null)continue;let b=p.get(C);b!==void 0&&A.push({target:I,source:b})}return A}async function BA(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 GA(e,t,n,r,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!c.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return c.rows}let s=await Ie(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 c of n){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let u=c==="$id"?"RECORD_NUMBER":s.get(c);if(KA.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${c}).`)}return(await He(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>ft(c,null))}function uf(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=_e(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 pu(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$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 ce(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];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)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),d=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),c=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});c+=p.ids.length}for(let u=0;u<d.length;u+=100)await t.putRecords({app:e.appId,records:d.slice(u,u+100)});return{type:"UPSERT",insertedCount:c,updatedCount:d.length}}async function $A(e,t,n,r){if(e.applyBlocks?.length)return NA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return lS(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await mt(e.appId,e.fields,i,t,r),a=await Ie(e.appId,t,r),s=oo(e,a);ln(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let c=await t.postRecords(d);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function VA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Xe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function eE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Md(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.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 k=new Set(e.targets.filter($=>$.kind==="SUBTABLE").map($=>$.subtableCode));if(e.replaceSubtables.some($=>!k.has($)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let $ of e.targets.filter(X=>X.kind==="SUBTABLE"))if(!$.rowIdSourceHeader||!e.replaceSubtables.includes($.subtableCode))throw new Error(`ArgumentError: CSV subtable ${$.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await te(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),E=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await st(e.appId,t,r):void 0,R=await Vo(o,new Map),g=e.source.kind==="JSON"?Gd(e.source,R,u,n.maxRecords??1e4):$d(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Yd(g,u,p,E,m);if(e.source.kind==="CSV")return WA(e,g,y,p,t,n,i);ul(y,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],A=pl(y.errors,S),I=[...S,...cl],w=y.invalidParentRows.size,C={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-w,invalid:w,mutationCandidates:y.parents.filter(k=>k.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:m,validatedRows:y.parents.length,validRows:y.parents.length-w,invalidRows:w,errorCount:A.length,columns:I,errors:A,importDetail:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&at(i,e.validationErrorTable,I,A,n.tempTableMaxRows??Ke,new Map),e.validateOnly)return b;if(zd(g),y.errors.length>0&&!e.onErrorSkip){let k=y.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");at(i,e.errorTable,I,A,n.tempTableMaxRows??Ke,new Map)}let D=y.parents.filter(k=>k.valid),N=new Map(p.map(k=>[k.code,k.fieldType])),_=D.map(()=>{});if(e.keyFields){for(let F of e.keyFields)if(!e.fields.includes(F))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${F}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(F=>N.get(F)==="NUMBER"),$=new Set,X=D.map(F=>e.keyFields.map(pe=>String(F.top[pe]?.value??"")));for(let F of X){let pe=sn(F,k);if($.has(pe))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");$.add(pe)}let G=await Ei(e.appId,e.keyFields,X,t,n,N);X.forEach((F,pe)=>{_[pe]=fi(G,F)})}let U=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),L=new Map,v=_.filter(k=>k!==void 0);for(let k of jn([...new Set(v)],100)){let $=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let X of $.records){let G=Number(X.$id?.value),F=Number(X.$revision?.value);Number.isFinite(G)&&L.set(G,{id:G,...Number.isFinite(F)?{revision:F}:{},record:X})}}let h=qd(D,_,L),P={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(k=>k.mode==="INSERT").length,updatedParents:h.filter(k=>k.mode==="UPDATE").length,hasDeletes:h.some(k=>k.tables.some($=>$.deleteRows>0)),parents:h.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new ce(e.keyFields?"UPDATE":"INSERT",h.length)}let M=k=>new Map(Object.entries(k).map(([$,X])=>[$,X.value])),O=k=>jd(M(k.top),new Map([...k.subtables].map(([$,X])=>[$,X.map(G=>({values:M(G)}))]))),K=h.filter(k=>k.mode==="INSERT"),j=h.filter(k=>k.mode==="UPDATE"),q=[];for(let k=0;k<K.length;k+=100){let $=await t.postRecords({app:e.appId,records:K.slice(k,k+100).map(O)});q.push($.ids)}for(let k=0;k<j.length;k+=100)await t.putRecords({app:e.appId,records:j.slice(k,k+100).map($=>({id:$.targetId,...$.revision===void 0?{}:{revision:$.revision},record:O($)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return HA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:VA(),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};da.set(s,l);let d=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await cu(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&at(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??Ke,cn.get(u)??new Map),d(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",kl(s,t,n,r,i,1));return d(u)}let c=await(s.type==="UPSERT_SELECT"?yu(s,t,n,r,i):Eu(s,t,n,r,i));return d(c)}async function WA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Xd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=El(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],c=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],u=await be(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of u){let v=Number(L.$id?.value),h=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(h)?{revision:h}:{},record:L});for(let P of c){let M=L[P]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let K=f.get(O.id)??[];K.push({parentId:v,table:P}),f.set(O.id,K)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let h=[...L.errors];for(let M of l.errors[v])h.push({operation:"UPDATE",parentRow:L.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[v].top});let P=E[v];return P!==void 0&&!p.has(P)&&h.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:h.length===0,errors:h}}),g=Jd(t.records,R,E,p,f),m=g.flatMap(L=>[...L.errors]),y=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),S={...n,parents:R,errors:m,invalidParentRows:y};ul(S,e.rejectLimit);let A=g.filter(L=>L.valid),I=g.flatMap(L=>L.tables),w=(L,v)=>I.filter(h=>h.table===L).reduce((h,P)=>h+Number(P[v]),0),C=Object.fromEntries(d.map(L=>[L,{existingRows:w(L,"existingRows"),inputRows:w(L,"inputRows"),updateRows:w(L,"updateRows"),addRows:w(L,"addRows"),deleteRows:w(L,"deleteRows"),rowIdNotFound:w(L,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:A.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:A.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:y.size,parents:A.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))],N=pl(m,D),_=[...D,...cl];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&at(a,e.validationErrorTable,_,N,o.tempTableMaxRows??Ke,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:N.length,columns:_,errors:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:y.size,mutationCandidates:A.length},tables:C,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let L=m[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.");at(a,e.errorTable,_,N,o.tempTableMaxRows??Ke,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new ce("UPDATE",A.length)}let U=L=>new Map(Object.entries(L).map(([v,h])=>[v,h.value]));for(let L of A){let v=dl(U(L.top),new Map([...L.subtables].map(([h,P])=>[h,P.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:U(M.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:A.length,affectedRows:A.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function HA(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 qe(e.appId,e.fields,n,i),s=await mt(e.appId,e.fields,a,n,i),l=await Vo(t,new Map),d=al(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=d.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let u=El(c,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let D=f.slice(b,b+100),N=await n.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let _ of N.records){let U=_.$id?.value;typeof U=="string"&&U!==""&&p.add(U.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(b=>[b.code,b])),R=new Map(e.fields.map(b=>[b,E.get(b)?.fieldType??"SINGLE_LINE_TEXT"])),g=d.rows.map((b,D)=>{let N=u.normalized[D],_=[...d.importRowErrors?.[D]??[],...u.errors[D]];return N!==null&&!p.has(N)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${N} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...N!==null&&p.has(N)?{targetId:Number(N)}:{},payload:new Map([[e.recordNumberSourceHeader,c[D]],...e.fields.map(U=>[U,b[U]??""])]),preErrors:_,record:{},evaluationRow:b,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],y=Ts(g,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),S=[...m,...vn],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:S,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&at(o,e.validationErrorTable,S,y.errors,r.tempTableMaxRows??Ke,new Map),A}if(!e.onErrorSkip&&y.invalidRows>0){let b=y.errors[0];throw new Error(`DmlValidationError: ${b.$err_code} ${b.$err_message} (row=${b.$err_row}, field=${b.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(at(o,e.errorTable,S,y.errors,r.tempTableMaxRows??Ke,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new ai(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=g.filter(b=>!y.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ce("UPDATE",I.length);let w=I.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<w.length;b+=100)await n.putRecords({app:e.appId,records:w.slice(b,b+100)});let C={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(C,{insertedCount:0,importAudit:d.importAudit}),C}async function YA(e,t,n,r,i,o){let a=da.get(e);if(!a){let R=i&&i.size>0?await yt(e.select,t,n,i,r,!0):await Ft(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:ye.get(R)}}let s=await Vo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?ol(a.source,s,c,l):al(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=Qd(a.source.projection),f=new Map(i??[]);f.set(fl,u);let E=await yt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:ye.get(E)}}var fu={materialize:YA};function tE(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 Eu(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await mt(e.appId,e.fields,o,t,r),s=await fu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(tE(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 ce("INSERT",l.length);let c=await Ie(e.appId,t,r),u=l.map((f,E)=>{let R={};return e.fields.forEach((g,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let y=f[d[m]]??"";R[g]={value:Xf(y,c.get(g))}}),R});u.forEach(f=>ln([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let E=u.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 Fl(e,t,n,r,i){if(e.applyBlocks?.length)return nE(e,t,n,r);if(e.checkGroups?.length&&gt(e.where)){let E=await qe(e.appId,e.assignments.map(g=>g.field),t,r);await mt(e.appId,e.assignments.map(g=>g.field),E,t,r);let R=await Ie(e.appId,t,r);return Qf(e,R),un(e,Ml(R,e.appId)),await $n(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Ri(e,t,n,r,i);if(e.subtableCode)return await $n(e,t,r),uS(e,t,n,r);let o=await qe(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await mt(e.appId,a,o,t,r);if(await $n(e,t,r),gt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return iS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await lE(e.assignments,t,n,r);let d=await Ie(e.appId,t,r);if(ao(e)){let E=os(e),g=(await He(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=ss(e,g,d);if(ln(m.flatMap(y=>y.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new ce("UPDATE",g.length);for(let y of m)await t.putRecords(y);return{type:"UPDATE",updatedCount:g.length}}let c=hr(e),p=(await To(t.getRecords,c.app,c.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ar(e,p,d);if(ln(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ce("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function nE(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!ut(e.where))return jA(e,t,n,r,i);let o=await te(e.appId,t,r),a=dt(e,o),s=lo(e,o),l=Rs(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 c=Number(d.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);fo(d.records[0]);let u=Rp({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Ze(o,e.assignments.map(I=>I.field)),f=jt(u.postImage,p)?await st(e.appId,t,r):void 0,E=zt(u.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=Ge(n.dmlMaxRows,"dmlMaxRows",ht),g=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),m=u.parentRows>R||u.changedSubtableRows>g;if(e.validateOnly){let I=Lr({plans:[u],records:wr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:m}}),w={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:si(I.branches[0]),guards:li(I.branches[0]),deletedRows:{total:u.tables.reduce((C,b)=>C+b.deletedRows,0),parentRows:u.tables.some(C=>C.deletedRows>0)?1:0},diagnostic:I};return cn.set(w,ha(E.columns,o,e.appId)),w}if(u.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${R}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let y=co(u,E.normalizedRecord),S=wr(y),A=Lr({plans:[y],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:m}});if(n.confirm){let I=ma(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new ce("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:ke(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function jA(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",ht),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),s=await te(e.appId,t,r),l=dt(e,s),d;if(ua(e))d=await JA(e,t,n,s,r);else{let f=lo(e,s),E=hr(e).query,R=o+1;d=await be(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 c=await yo({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});if(e.validateOnly)return nS(e,c,s);qu("phase15b",e);let u=Lr(c);if(n.confirm){let f=ma(u);if(!await n.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new ce("UPDATE",c.guards.parentRows)}let p=await kp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ua(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(Tt(e.where)||fe(e.where))}function zA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ua(t)&&fe(t.where)}var qA=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
9
+ `){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&&Rt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&Rt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
+ `,r:"\r",t:" "};if(R in g){p+=g[R];continue}R!=="u"&&Rt(`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)||Rt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let y=Number.parseInt(m,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Rt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&Rt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+A-56320)}else y>=56320&&y<=57343?Rt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||Rt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Rt(`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 Yo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function jo(e){if(e.byteLength===0)throw new B("JSON source is empty.");let t=Gd(Bd(e)),n=0,r=(d,c=t[n])=>{throw new B(`JSON ${d} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(d,c)=>d.kind==="punct"&&d.value===c,o=d=>{let c=t[n];(c.kind!=="punct"||c.value!==d)&&r(`expected ${d}; found ${Yo(c)}`,c),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 c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Yo(u)}`,u);let p=u.value;c.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),c.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(d.kind==="punct"&&d.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${Yo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Yo(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 B("JSON source contains no records.");return l.forEach((d,c)=>{if(!(d instanceof Map))throw new B(`JSON record ${c+1} must be an object.`)}),l}var Sh=new Set(["CHECK_BOX","MULTI_SELECT"]),$d=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function it(e,t,n){throw new B(`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"&&it(n,t.code,"boolean is not accepted."),Th(e)){t.fieldType==="NUMBER"&&it(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&it(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)||it(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&it(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||it(n,t.code,"unsupported value type."),!Sh.has(t.fieldType)&&!$d.has(t.fieldType)&&it(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&it(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&it(n,t.code,"array elements must not contain duplicates."),$d.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ll(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let i=jo(t.bytes);if(i.length>r)throw new B(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new B("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||it(d+1,p,"unknown key (not declared in INTO).");let c={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),c[p.code]=Ih(l.get(p.code),p,d+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ul(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new B(`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 B("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((m,y)=>[m,y]));for(let m of r)if(!l.has(m))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),c=new Set(r);if(o&&c.has(o))throw new B("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=m=>a.rows.filter(y=>y[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,y]of a.columns.entries()){if(c.has(y)||y===o)continue;let S=d.get(y);if(S)u.push({column:y,reason:E(S),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)p.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let m of r){let y=d.get(m);if(!y)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${y.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let y=[],S={};for(let A of r){let I=m[l.get(A)];try{S[A]=Kd(I,d.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;S[A]=I,y.push({field:A,code:w.code,message:w.message})}}return R.push(y),S}),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:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,c)=>[d,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Xr=(e,t,n)=>{throw new B(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Vd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let o=jo(t.bytes);if(o.length>r)throw new B(`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 B("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let c=d+1;for(let E of l.keys())a.has(E)||Xr(c,E,"unknown key (not declared in INTO).");let u=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 g=l.get(R);if(E.kind==="FIELD"){g instanceof Map&&Xr(c,R,"object is not accepted for a top-level field."),u.set(R,g);continue}Array.isArray(g)||Xr(c,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),y=g.map((S,A)=>{S instanceof Map||Xr(c,R,`childRow=${A+1} must be an object.`);let I=S;for(let w of I.keys())m.has(w)||Xr(c,w,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(s++,s>i)throw new B(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});p.set(R,y)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function Wd(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new B('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 B(`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 B(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new B(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new B(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new B(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(c.length>=i)throw new B(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:E,top:new Map(l.map(g=>[g.field,p[s.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let m=p[s.get(g.field)];if(m!==""&&m!==u.top.get(g.field))throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=p[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new B(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let m=p[s.get(g.rowIdSourceHeader)],y=new Map(g.children.map(A=>[A,p[s.get(A)]]));if(m===""&&[...y.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:y})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}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 dl(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function zd(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)Hd(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)Hd(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(p=>Ph(p,s,l,o,a,r,i,d)),u=c.flatMap(p=>[...p.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function Ph(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&pl(e.top.get(p.field),r.get(p.field),o,d,p.field,l,cl(e,a,p.field));let c={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Yd(p,o,c,l,cl(e,a,p.code));let u=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 g=l.length,m={},y=i.get(p.subtableCode);for(let S of p.children){let A=y.get(S),I=cl(e,a,S,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?pl(R.values.get(S),A,o,m,S,l,I):Yd(A,o,m,l,I)}l.length===g?(f.validChildRows++,E.push(m)):f.invalidChildRows++}u.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:u,replacementTables:e.replacementTables,errors:l}}function Hd(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 Yd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;pl(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function pl(e,t,n,r,i,o,a,s=!1){let l=Nh(e),d=Oe(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 jd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:jd(t)?t.lexeme:t):e}function jd(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 cl(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 fl=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function El(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 Rl(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 qd(e,t){return Rl(e,t,"DROP")}function Xd(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 Jd(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 c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:d.length,addRows:d.length,deleteRows:u}});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 Qd(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 Zd(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),c=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,p=[];for(let f of o.replacementTables){let E=Lh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],m=o.subtables.get(f)??[],y=0,S=0,A=0,I=g.map((w,C)=>{let b=m[C]??{};return w.rowId&&R.has(w.rowId)?(y++,{rowId:w.rowId,record:b}):(w.rowId&&((i.get(w.rowId)??[]).some(N=>N.parentId!==l||N.table!==f)&&c.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),A++),S++,{record:b})});u.set(f,I),p.push({table:f,existingRows:E.length,inputRows:g.length,updateRows:y,addRows:S,deleteRows:E.length-y,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:c.length===0,top:o.top,subtables:u,tables:p,errors:c}})}var gl="#__import_source";function ef(e){return{...e,from:{appId:0,alias:null,cteName:gl}}}function _h(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function yl(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",on=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"}},pe=new WeakMap;function hf(e){return pe.get(e)}var pn=new WeakMap,fa=new WeakMap,tf=new WeakMap,vh=1,Uh=1;function Af(e,t){if(t)return t;let n=tf.get(e);return n||(n=`client:${vh++}`,tf.set(e,n)),n}function Hl(e){return`${e}\0inv:${Uh++}`}async function Yl(e,t,n={}){let r=Date.now(),i=Hl(Af(t,n.cacheContext));try{let o=bS(e,n.enableImport===!0),a=Sf(),s=If(t,a),l={aborted:!1},d=zl(s,l,!Mh(o)||Ms(o)),c=await Il(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...wf(c,l),metrics:a};if(c.type==="SELECT"){let p=pe.get(c);p&&pe.set(u,p)}return u}finally{pu(i)}}function Sf(){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 Tf=Symbol("limitMetricsSink");function jl(e,t){let n=e[Tf];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function If(e,t){return{[Tf]: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 nf=Symbol("searchAbortFailClosed");function zl(e,t,n){return n&&e[nf]?e:{...e,...n?{[nf]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;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 wf(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 rf(e,t,n){let r=await pi(e,t,n);return al(r),r}async function pi(e,t,n){return Fd(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return ye(r.where,i)},dml:r=>kf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return sl(r,i)},joinServerFunctionPlan:async r=>{await tn(r,t,n);let i=await ga(r,t,n),o=Ra(r,i);return o===null?null:(Bn(o.joinPlan)&&iu.set(r,o),o.joinPlan)}})}async function Il(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&al(i);let o=bl(e);if(o!==null&&!tS(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Sn("phase15b",e),vi("phase15b",e),We(e),e.type!=="EXPLAIN"&&await Xh(e,t,r),e.type==="IMPORT")return iE(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 Bl(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 fu(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 Ft(Ol(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return zf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return uu(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return qA(e,t,n,r);case"INSERT_SELECT":return yu(e,t,n,r);case"UPSERT":return ES(e,t,n,r);case"UPSERT_SELECT":return Au(e,t,n,r);case"UPDATE":return Bl(e,t,n,r);case"DELETE":return fS(e,t,n,r);case"REORDER":return AS(e,t,n,r);case"SHOW_APPS":return uE(t);case"DESCRIBE":return cE(e,t,r);case"EXPLAIN":return OS(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",At):At,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me):me,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 Of(e,t,n,r)}}var ql=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Xl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Jl(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 bf(e=!1){let t=e?Xl:ql;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:x(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 Pf(e,t,n,r)}async function Pf(e,t,n,r){let i=await te(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=Os(e,i),l=new Set(s.flatMap(O=>Ns(O.field))),d={present:Ps.filter(O=>l.has(O)),absent:Ps.filter(O=>!l.has(O))},c=e.checkGroups??[],u=Dn(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw ge(`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 p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),cn(e,p);let f=Jl(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.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 st(e.appId,t,r):void 0,g=O=>O.field==="$id"?Z({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?Z(o.get(O.field)):void 0),m=ye(e.where,g);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(m)}).`);let y=new Map([...o].map(([O,K])=>[O,K.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),A=e.where===null?null:m.capability==="EXACT_PUSHDOWN"?e.where:Pn(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:S,allowKlike:!1}),I=A===null?"":V(A),C=(await be(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Et(O,null)})).filter(O=>e.where===null||ne(e.where,O.flat,K=>p.get(K.field))),b=[],D=new Map,N=new Map,_=new Set,U=0,L=O=>{if(_.add(O.id),U+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=N.get(q);k?k.$err_count=String(Number(k.$err_count)+1):N.set(q,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let K=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=D.get(K);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??""}`)):D.set(K,{$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"})},v=s.filter(O=>!O.subtableCode),h=new Map;for(let O of s){if(!O.subtableCode)continue;let K=h.get(O.subtableCode)??[];K.push(O),h.set(O.subtableCode,K)}for(let O of C){for(let K of v){let j=O.record[K.field.code]?.value,q=Oe(j,K.field,R);q.ok||L({id:O.id,field:K.field.code,code:q.code,message:q.message,value:Pr(j,K.field.fieldType)})}for(let[K,j]of h){let q=O.record[K]?.value;if(Array.isArray(q))for(let k=0;k<q.length;k++){let $=q[k];for(let X of j){let G=$.value?.[X.field.code]?.value,F=Oe(G,X.field,R);if(!F.ok){let de=yo(K,k,$);L({id:O.id,field:X.field.code,code:F.code,message:F.message,value:Pr(G,X.field.fieldType),...de})}}}}for(let K of ro(c,O.flat,j=>p.get(j.field)))L({id:O.id,field:"",code:"ERR_CHECK",message:K.message,value:""})}if(e.summary)b.push(...N.values());else for(let O of D.values()){let K=Number(O.$err_count);O.$err_subtable!==""&&K>=2&&(O.$err_message=`${O.$err_message}\uFF08${K}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let M={type:"SELECT",columns:[...e.summary?Xl:ql],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return pe.set(M,bf(e.summary===!0)),M}var Ke=1e4;function at(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.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Ji(i.semantics,r.semantics))return!1}return!0}var $n=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Nf(e,t,n={}){let r=Ql(e,n.enableImport===!0),i=Za(r);if(r.forEach(f=>vi("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>xa(f)||f.type==="UPSERT"&&Kh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=ks(r,n.variables),a=Cf(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let E=r[f.index];if(!(E?.type==="UPDATE"&&E.from?.cteName!=null))throw new Q(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=Sf(),d=If(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=Hl(Af(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,m=null;for(let y=0;y<r.length;y++){let S=i.statements[y],A={index:y,type:S.statementType};if(m){R.push({...A,status:"skipped",skippedReason:m}),g.add(y);continue}let I=S.dependsOn.find(w=>g.has(w));if(I!==void 0){let w=i.statements[I].tempTablesCreated[0]??`statement ${I}`;R.push({...A,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(y);continue}if(u!==null&&Date.now()>=u){R.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(y),m="timeout";continue}try{let w=u!==null?u-Date.now():null,C=s.confirm,b=C?{...s,confirm:(L,v,h)=>C(L,v,{statementIndex:y,statementCount:r.length,statementType:S.statementType,targetAppId:S.targetAppId,...h?.importDetail?{importDetail:h.importDetail}:{},...h?.applyDetail?{applyDetail:h.applyDetail}:{},...h?.applyDiagnostic?{applyDiagnostic:h.applyDiagnostic}:{}})}:s,D={aborted:!1},N=zl(d,D,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||Ms(r[y])),_=kh(N),U=await $h(Bh(r[y],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=wf(U.result,D)),R.push({...A,status:"success",...U})}catch(w){R.push({...A,status:"error",error:Vh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(y),w instanceof $n?m="timeout":w instanceof Wn?m="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(y=>y.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{pu(p)}}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,s){if(e.type==="SET_VARIABLE"){let d=ia(e,a);if(We(d),await rf(d,n,i),d.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:d.expr.elements.map(c=>({type:"string",value:c.value}))});else if(d.expr.type==="SCALAR_SUBQUERY")try{let c=await Lf(d.expr.query,n,r,i,o),u=d.expr.query.columns[0],p=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||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"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let E=(await la(d.expr.query,["__scalar__"],n,i,o)).get("__scalar__");p=E?.semantics?.compareMode==="number"||E?.sortKind==="number"}let f=p?Number(c):Number.NaN;a.set(e.name,p&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof en?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,of(d.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let d=r.variables??{};if(Object.prototype.hasOwnProperty.call(d,e.name))a.set(e.name,{type:"string",value:d[e.name]});else{let c=of(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=ia(e,a);if(Sn("phase15b",l),vi("phase15b",l),We(l),await rf(l,n,i),l.type==="VALIDATE"){let d=await Pf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,pe.get(d)??bf(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await iE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await fu(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&at(o,l.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??Ke,pn.get(d)??new Map),{result:d}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await xl(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let d={...r,maxRecords:r.tempTableMaxRows??Ke,onLimitReached:"error"},c=await Gh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:pe.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Il(l,n,r,i)};if(l.type==="ASSERT")return await Of(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await mt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await uu(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await yu(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Au(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await Bl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Il(l,n,r,i)}}async function Gh(e,t,n,r,i){return e.type==="WITH"?uu(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function $h(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new $n;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 $n)})()},t)})])}catch(a){throw a instanceof $n&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Vh(e){let t;if(e instanceof tt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??ml(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:ml(r),message:r}}else{let n=String(e);t={code:ml(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function ml(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 Ql(e,t=!1){let n=new Lt(e).tokenize();return new _t(n,{import:t}).parseStatements()}function Hh(e,t){try{let n=Ql(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function Cf(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?Hh(r.name,t[r.name]):r.default);return n}function of(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:Zc(e.name)};case"STRING_FUNC":return{type:"string",value:ue(e,{})};case"ARITH":{let t=le(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 ia(e,t){return wl(e,t,!1)}function wl(e,t,n){if(Array.isArray(e))return e.map(r=>wl(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(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&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:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`: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.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,wl(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),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=Yh(i);if(o.type==="SELECT"&&Fe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Fe(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 Fe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Yh(e){if(e.type==="NOT"&&Fe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Fe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Fe(t,!1)||Fe(n,!1))return{type:"BOOLEAN",value:!1};if(Fe(t,!0))return n;if(Fe(n,!0))return t}else if(e.op==="OR"){if(Fe(t,!0)||Fe(n,!0))return{type:"BOOLEAN",value:!0};if(Fe(t,!1))return n;if(Fe(n,!1))return t}}return e}function bl(e){if(Array.isArray(e)){for(let t of e){let n=bl(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=bl(n);if(r!==null)return r}}return null}var Wn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},en=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Of(e,t,n,r,i){let o=await zo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?x("number"):x("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await zo(e.low,t,n,r,i),d=await zo(e.high,t,n,r,i);if(!Wt(">=",o,l,a)||!Wt("<=",o,d,a))throw new Wn(`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 zo(e.right,t,n,r,i);if(!Wt(e.op,o,s,a))throw new Wn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function zo(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(Pl(e));case"SCALAR_SUBQUERY":try{return await Lf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Wn(o.message):o}}}async function Lf(e,t,n,r,i){let{query:o,probed:a}=jh(e),s=await ni(o,t,n,r,i);if(s.columns.length!==1)throw new en(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new en("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 en(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function jh(e){return re(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 Pl(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=Pl(e.left),n=Pl(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 di(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||nt(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")return;let E=String(f.op),R=f.right,g=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||g)){let m=f.left;m?.type==="FIELD"&&typeof m.field=="string"&&l.add(m.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 c=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let R=await du(p,t,n);R&&c.set(p,R)}));let u=(p,f,E)=>{if(f==="$id")return _n(Z({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(p.appId)?.get(Te(p,f));if(!R)return;let g=R.semantics??Z(R),m=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return _n(m,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let E=o.find(R=>Le(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(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??x("string"):u(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:u(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Zo(E,p.field)!==void 0))return f.length>1?x("string"):void 0}}var _f=new WeakMap;async function tn(e,t,n,r,i=!1){let o=await di(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Yp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&_f.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function zh(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Df(e){return zh(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function af(e,t,n,r){return r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(i=>{if(i.key.type!=="FIELD_NAME")return!1;let o=Be(i.key.name);return o.field==="$id"||n(o)?.fieldType==="RECORD_NUMBER"})}function vf(e,t,n){let r=[];for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="AGGREGATE"||i.orderBy.length===0||i.frame?.source!=="DEFAULT"||af(e,i.orderBy,t,n)||r.push(`${i.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="VALUE"||af(e,i.orderBy,t,n)||r.push(`${i.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return r}function Zl(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=pe.get(e);return r&&pe.set(n,r),n}function eu(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=>nt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Uf(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(Be(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=x("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=x("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=sn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=sn(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"?x("string"):x("number"):r.type==="STRFUNC_COL"?i=an(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function nn(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 oa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function kf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(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?ye(null,()=>{}):ye(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function Vn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await kf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ee(`WHERE predicate cannot be represented by kintone REST (${nn(r)})`)}async function Ft(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await Ea(e,t,r,i),Zh(e))return l=nA(e),o&&pe.set(l,await la(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Df(e)),c=vf(e,d,s),u=await tu(e,t,r,i);await pE(e,t,n,r,i);let p=yA(e,ye(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let w=await di(e,t,r,i),C=sl(e,w);C.eligible&&ol(e,C)&&(E=C.plan)}if(E===void 0&&p.capability==="EXACT_PUSHDOWN"&&e.where!==null){let w=null;try{w=V(e.where)}catch{w=null}R=Vi({select:e,selectMode:f,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:w,relativeFunctionNames:fe(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=p.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",m=await oi(e,t,r,i),y=oa(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:m.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ee(e.where)}):null;await iA(e,y?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r);let S=nu(e,n,y),I=R!==void 0&&(f==="FULL_SCAN"||y?.kind==="CANONICAL_LOCAL")?zl(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await rA(e,I,S.effectiveOptions,r,y,m):l=await AA(e,I,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,m,E,u)}catch(w){Mf(S,w)}return o&&pe.set(l,await la(e,l.columns,t,r,i,a)),Zl(l,c)}async function tu(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 c=await te(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:c.filter(f=>!f.inSubtable).map(f=>f.code)};let u=c.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(u.length>0?u:c.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:c.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=ud(e,(d,c)=>o[c]),s=e.groupBy,l=cd(s,e.columns,a);return qh(e,s,l),l}function qh(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 c=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${c}`)}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 ii=new WeakMap;async function Xh(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 Ea(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Jh(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let u=await te(c,t,n);return[c,new Map(u.map(p=>[p.code,p]))]}))),s=(c,u)=>{if(u==="$id")return"$id";let p=Te(c,u);return a.get(c.appId)?.has(p)?p:null},l=(c,u)=>{if(c.cteName===null)return!1;let p=r?.get(c.cteName);return p?p.columns.includes(u):!0},d=(c,u,p,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,p.field)!==null).length,R=i.some(m=>l(m,p.field)),g=Le(c);return{canonicalId:`source:${u}:APP${c.appId}:${f}`,directKey:p.tableAlias&&g?`${p.tableAlias}.${p.field}`:p.field,unqualifiedBridgeKey:E===1&&!R?p.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let f=i.findIndex(g=>Le(g)===c.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,c.field);if(R===null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} does not exist in APP${E.appId}.`);return d(E,f,c,R)}let u=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,c.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),p=i.filter(f=>l(f,c.field));if(u.length+p.length>1)throw new Error(`ArgumentError: B65 field ${c.field} is ambiguous across multiple sources.`);if(u.length===1&&p.length===0){let f=u[0];return d(f.table,f.tableIndex,c,f.code)}throw p.length===1?new Error(`ArgumentError: B65 field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${c.field} does not exist in a physical APP source.`)}}async function Ea(e,t,n,r){ii.delete(e);let i=re(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Jh(e,t,n,r),s=fc(e,a,dc);s&&ii.set(e,s)}function Qh(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=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.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \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";return`${e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"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 nu(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?St({...e,orderBy:[]}):St(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Mf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(Qh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Nl(e,t){try{return await t()}catch(n){Mf(e,n)}}function yt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Zh(e){return e.from.appId===0&&e.from.cteName===Xe}function aa(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"?aa(e.left)||aa(e.right):e.type==="STRING_FUNC"?ru(e):!1}function eA(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Qr(e)}function Qr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?ru(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Qr(e.left)||Qr(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"?aa(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Qr(n))):!1}function ru(e){return e.args.some(t=>eA(t))}function tA(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(aa(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(ru(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Qr(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 nA(e){if(e.joins.length>0||e.where||re(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.");tA(e);let t=Js([{}],e.columns),{rows:n,columns:r}=Vr(t,e.columns),i=Fo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function rA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Bf(e):e,s=Bi(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await au(e,t,r),c=lu(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,eu(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,g=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,y=e.orderBy.length===0&&m!==null&&m<=p&&!Ee(e.where)?m:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let b=await sd({client:t,app:s.app,fields:s.fields,query:Vs(e),offset:e.offset??0,limit:e.limit});S=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(g)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?V(e.where):"";S=await be(t.getRecords,s.app,b,l,{parallel:R,maxRecords:p,stopAfter:y,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`),jl(t,e.from.appId)}})}let A=S.map(b=>Et(b,null));g||(A=qs(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Xs(e.columns,void 0,c.row,u)),A=Fo(A,e.limit,e.offset));let{rows:I,columns:w}=Vr(A,e.columns,void 0,c.row,void 0,u),C=await cu(e,I,w,t,r);return{type:"SELECT",rows:I,columns:C,rowCount:I.length,warnings:[...f]}}async function iA(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=Bi(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,$t(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(p=>!Ws(p));if(l.length===0)continue;let d=await te(a,n,r);if(d.length===0)continue;let c=new Set(d.map(p=>p.code)),u=l.filter(p=>!c.has(p));if(u.length>0)throw new Error(`ArgumentError: unknown field code(s): ${u.join(", ")} (APP${a})`)}}function sf(e){return e.cteName??`APP${e.appId}`}function oA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function aA(e,t){return Ws(t)||e.validCodes.has(t)}function hl(e,t){return e.table.cteName!==null?e.validCodes.has(t):aA(e,t)}function sA(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 lA(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=Le(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Xe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:sf(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Xe)return;let p=await te(c.appId,t,r);s.set(c,{table:c,label:sf(c),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of oA(c.table))l.set(u,c);for(let c of e.joins)for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!hl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=hc(e);for(let[c,u]of d.bySource){let p=s.get(c);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(E=>!hl(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let c of d.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>hl(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${p})`)}}async function Qo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Qo(e.left,t,n,r,i),await Qo(e.right,t,n,r,i);return}await lA(e,t,n,r);for(let o of sA(e))await Qo(o,t,n,r,i)}}function Ff(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ur(e.where,{tableAlias:e.from.alias}):null}var iu=new WeakMap;function Ra(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let n=[e.from,...e.joins.map(u=>u.table)];if(n.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let r=n.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=Zp(e.where,r),o=ed(i,r),a=new Map,s=new Map;for(let[u,p]of o.fetchQueriesByAlias)s.set(u,p);for(let u of o.items)s.has(u.targetAlias)||s.set(u.targetAlias,Kn(u,r)),a.set(u.targetAlias,u.predicate);let l=e.from.alias,d=a.get(l)??null,c=new Map(a);return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ga(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,Ff(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=ur(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,c]=await Promise.all([Ie(s,t,n),bA(s,t,n)]),u=uA(l).filter(p=>d.get(p)==="STATUS");if(u.length>0){let p=await ma(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 u)c.set(E,f)}}return[s,d,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function uA(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 gt(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"&&sa(e.left.expr,t),e.right.type==="CASE_VALUE"&&sa(e.right.expr,t);return;case"LOGICAL":gt(e.left,t),gt(e.right,t);return;case"NOT":case"GROUP":gt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function sa(e,t){for(let n of e.branches)gt(n.condition,t)}function cA(e){let t=[];gt(e.where,t),gt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&sa(n.expr,t);return t}function Le(e){return e.alias??e.cteName}function xf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function ou(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function au(e,t,n){let r=cA(e);if(r.length===0)return new Map;let i=new Set,o=ou(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=xf(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 Ie(s,t,n)]));return new Map(a)}function Be(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 su(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Jt(t,n)}function Jt(e,t){if(e.type==="FIELD_REF"){t.push(Be(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Jt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?Hn(n,t):n.type!=="ARRAY"&&Jt(n,t)}function Hn(e,t){if(e.type==="AGG_REF"){su(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Hn(e.left,t),Hn(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Cl(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Hn(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Zr(n,t)}}function Zr(e,t){if(e.type==="STRING_FUNC"){Cl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zr(e.left,t),Zr(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"?Cl(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Hn(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Zr(r,t)}}function pA(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;su(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function dA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?su(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Hn(n.expr,t):n.type==="STRFUNC_COL"?Cl(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&pA(n.expr,t);return t}var fA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function EA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":fA.has(e.fieldType)?"string":void 0}async function Kf(e,t,n,r){let i=dA(e.columns);if(i.length===0)return;let o=new Set,a=ou(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=xf(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(g=>E.get(g)?.fieldType==="STATUS"))return;let R=await du(f,t,n);R&&l.set(f,R)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??Z(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 g=c.find(m=>Le(m)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(g.appId)?.get(Te(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(e.from.appId)?.get(Te(e.from,f.field))}else{let g=c.flatMap(m=>{if(m.cteName!==null){let S=r?.get(m.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let y=s.get(m.appId)?.get(Te(m,f.field));return y?[u(y,m.appId)]:[]});return g.length!==1?void 0:g[0]}if(!E)return;let R=f.tableAlias!==null?c.find(g=>Le(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function Te(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Zo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ot(e,t){let n=e.semantics??Z(e);return{sortKind:EA(e),fieldType:e.fieldType,semantics:t===void 0?n:_n(n,t,e.code)}}function Bf(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:x(e)}}function xe(){return{semantics:x("string","KSQL_UNKNOWN")}}function Gf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Qt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Z({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var RA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function an(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return RA.has(e.func)?z("number"):z("string")}function Yn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Gf():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?xe():sn(e.arg,t):e.func==="GROUP_CONCAT"?z("string"):z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?an(e):e.type==="FIELD_REF"?t(Be(e.field))??xe():e.type==="FIELD"?t(e)??xe():xe()}function ya(e){if(e.length===0)return xe();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&&Ji(n(r.semantics),n(t.semantics)))?e.every(i=>Ji(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Gf("KSQL_MIXED_UNSUPPORTED"):xe()}function sn(e,t){if(e.type==="FIELD_REF")return t(Be(e.field))??xe();if(e.type==="FIELD")return t(e)??xe();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 an(e);let n=e.branches.map(r=>Yn(r.result,t));return e.elseResult&&n.push(Yn(e.elseResult,t)),ya(n)}function $f(e,t){return e.windowKind==="VALUE"?sn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?z("number"):e.arg.type==="WILDCARD"?xe():sn(e.arg,t):z("number")}function ea(e,t){return{...e??{},displayName:t}}function gA(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")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function la(e,t,n,r,i,o=!1){let a=new Map;gA(e)&&await Promise.all(ou(e).map(async R=>{if(a.has(R.appId))return;let g=await te(R.appId,n,r);a.set(R.appId,new Map(g.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 S=a.get(e.from.appId)?.get(R.field);return S?ot(S,e.from.appId):void 0}let m=s.find(S=>Le(S)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let y=a.get(m.appId)?.get(Te(m,R.field));return y?ot(y,m.appId):Qt(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(Te(e.from,R.field));return m?ot(m,e.from.appId):Qt(R.field)}let g=s.flatMap(m=>{if(m.cteName!==null){let A=i?.get(m.cteName);return A?.columns.includes(R.field)?[A.columnMeta?.get(R.field)]:[]}let y=a.get(m.appId)?.get(Te(m,R.field)),S=y?ot(y,m.appId):Qt(R.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(m=>{if(R.tableAlias!==null&&Le(m)!==R.tableAlias)return!1;let y=Te(m,R.field);return a.get(m.appId)?.has(y)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let m=c(g);return R&&m!==void 0?{...R,publicSourceApp:m}: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 g=Be(R),m=u(d(g),g);p.set(R,ea(m,m?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),m=u(d(g),g);p.set(R,ea(m,m?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!m)return;let y;if(R.type==="FIELD"){let S=Be(R.field);y=u(d(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?y=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"?y=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(y=sn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")y=z("number");else if(R.type==="GROUPING_COL")y=z("number");else if(R.type==="LITERAL_COL")y=z("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?y=an(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?y=z("number"):S.type==="FIELD"?y=d(S):y=z("string")}else if(R.type==="STRFUNC_COL")y=an(R.expr);else if(R.type==="WINDOW_COL")y=$f(R,d);else if(R.type==="CASE_COL"){let S=R.expr.branches.map(A=>Yn(A.result,d));R.expr.elseResult&&S.push(Yn(R.expr.elseResult,d)),y=ya(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(y=xe());p.set(m,ea(y,R.aliasDisplay??m))}),p}function Vf(e,t){let n=pe.get(e),r=pe.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),c;if(s&&d){let u=ya([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,ea(c,s?.displayName??o))}),i}function lu(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(c=>Le(c)===s.tableAlias);return!d||d.cteName!==null?void 0:Zo(d,s.field)??t.get(d.appId)?.get(Te(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Zo(e.from,s.field)??t.get(e.from.appId)?.get(Te(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let c=Zo(d,s.field)??t.get(d.appId)?.get(Te(d,s.field));return c?[c]:[]});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 Wf=new WeakSet,Hf=new WeakMap;function Ol(e){return Wf.add(e),e}function yA(e,t){return Hf.set(e,t),t}function Yf(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&re(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function mA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function hA(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":V(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new on;if(!mA(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Vr([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function AA(e,t,n,r,i,o=!0,a,s,l){let d=Hf.get(e);if(Wf.has(e)&&d!==void 0&&Yf(e,d)){let F=await hA(e,t);if(F!==null)return F}let c=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,r,i),ui(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([ga(e,t,r),au(e,t,r),Kf(e,t,r,i)]),g=lu(e,E),m=await di(e,t,r,i,nt(e.having)||eu(e)),y=Uf(e,m),S=iu.get(e);if(S&&!Bn(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ra(e,f)??Cn(e,f);za(A);let I="joinPlan"in A?A:null,w=I&&Bn(I.joinPlan)?I:null,C=t,b=A.mainCondition,D=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let N=s?s.prefilterWhere:w?null:b,_=w?.queriesByAlias.get(e.from.alias)??"",U=await fE(e.columns,t,n,r,i),L=yt(e.where),v=L?Promise.resolve([]):ei(e,e.from,C,c,p,!0,n.onLimitReached??"error",u,N,w?!1:o,l,_),h=[],P=[];for(let F of e.joins){if(L){h.push({join:F,promise:Promise.resolve([])});continue}let de=F.table.alias?w?.queriesByAlias.get(F.table.alias)??"":"",En=w?null:F.table.alias?D.get(F.table.alias)??null:null;En!==null||de!==""?h.push({join:F,promise:ei(e,F.table,C,c,p,!1,n.onLimitReached??"error",u,En,!0,l,de)}):P.push(F)}let M=a?Promise.resolve(a):oi(e,t,r,i);M.catch(()=>{});let O=await v,K=new Map;K.set(e.from.alias,O);for(let{join:F,promise:de}of h)K.set(F.table.alias,await de);await Promise.all(P.map(async F=>{let En=await Zf(e,F,K,C,c,p,n.onLimitReached??"error",u,null,l,"")??await ei(e,F.table,C,c,p,!1,n.onLimitReached??"error",u,null,!0,l,"");K.set(F.table.alias,En)}));let{optionOrders:j,sortKinds:q,semantics:k}=await M,{rows:$,columns:X}=el({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:m,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await cu(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}function jf(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
11
+ UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}async function zf(e,t,n,r,i=!1,o=!1){let a=nu(e,n,null);return Nl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?zf(e.left,t,s,r,i,o):Ft(Ol(e.left),t,s,r,void 0,i,o,"DERIVED"),Ft(Ol(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=d.columns;jf(c,u);let p=d.rows.map(m=>{let y={};return c.forEach((S,A)=>{y[S]=m[u[A]??S]??""}),y}),f=[...l.rows,...p],E=e.all?f:qf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&pe.set(g,Vf(l,d)),g})}function qf(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 uu(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Pt(e))return Ft(Nt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let d of e.ctes){let c;d.query.type==="SHOW_APPS"?c=await uE(t):d.query.type==="DESCRIBE"?c=await cE(d.query,t,r):c=await mt(d.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(d.name,{rows:c.rows,columns:c.columns,columnMeta:pe.get(c)})}let l=await mt(e.query,t,n,a,r,o);return Zl(l,[...s])}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Qo(e,t,r,i),e.type==="UNION"){let[d,c]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),u=d.columns,p=c.columns;jf(u,p);let f=c.rows.map(y=>{let S={};return u.forEach((A,I)=>{S[A]=y[p[I]??A]??""}),S}),E=[...d.rows,...f],R=e.all?E:qf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],m={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&pe.set(m,Vf(d,c)),m}if(!(e.from.cteName!=null&&e.from.cteName!==Xe||e.joins.some(d=>d.table.cteName!=null)))return Ft(e,t,n,i,r,o,!1,"DERIVED");let l=await SA(e,t,n,r,i);return o&&pe.set(l,await la(e,l.columns,t,i,r)),l}async function SA(e,t,n,r,i){await Ea(e,t,i,r);let o=ii.get(e),a=await tu(e,t,i,r),s=new Set,l=G=>{if(G.alias!==null||G.cteName===null)return G;let F=Le(G);return s.add(F),{...G,alias:F}};e={...e,from:l(e.from),joins:e.joins.map(G=>({...G,table:l(G.table)}))};let d=new Set;for(let G of[e.from,...e.joins.map(F=>F.table)]){let F=Le(G);if(F!==null){if(d.has(F))throw new Error(`ArgumentError: effective alias ${F} is used by multiple tables.`);d.add(F)}}let c=G=>{let F=r.get(G);if(!F)throw new Error(`ArgumentError: materialized source ${G} is not available.`);return F};for(let G of[e.from,...e.joins.map(F=>F.table)])G.cteName!==null&&c(G.cteName);let{resolver:u}=await tn(e,t,i,r,Df(e)),p=vf(e,u,"DERIVED"),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,i,r),ui(e.having,t,n,i,r),pE(e,t,n,i,r)]);let g=ye(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(g)}).`);let m=await oi(e,t,i,r),y=oa(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:m.semantics,maxRecords:f,hasKlike:Ee(e.where)}):null,S=nu(e,n,y),A=S.effectiveOptions,[I,w,C]=await Promise.all([ga(e,t,i),au(e,t,i),Kf(e,t,i,r)]),b=lu(e,w),D=await di(e,t,i,r,nt(e.having)||eu(e)),N=Uf(e,D),_=Ra(e,I)??Cn(e,I);za(_);let U=t,L=await fE(e.columns,t,A,i,r),v=Promise.resolve(m);v.catch(()=>{});let h=new Map,P=new Map;if(e.from.cteName!=null){let G=c(e.from.cteName);h.set(e.from.alias,G.rows.map(lf)),P.set(e.from.alias,G.columns)}else{let G=await Nl(S,()=>ei(e,e.from,U,f,R,!0,A.onLimitReached??"error",E,_.mainCondition,g.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,G)}let M=e.joins.map(G=>Nl(S,async()=>{if(G.table.cteName!=null){let F=c(G.table.cteName);h.set(G.table.alias,F.rows.map(lf)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,En=await Zf(e,G,h,U,f,R,A.onLimitReached??"error",E,F,a)??await ei(e,G.table,U,f,R,!1,A.onLimitReached??"error",E,F,!0,a);h.set(G.table.alias,En)}}));await Promise.all(M);let{optionOrders:O,sortKinds:K,semantics:j}=await v,q=e.joins.length===0&&e.from.cteName!=null?c(e.from.cteName).columns:void 0,{rows:k,columns:$}=el({tables:h,stmt:e,scalarCache:L,optionOrders:O,sortKinds:K,orderSemantics:j,fieldTypeResolver:b.row,fieldSemanticsResolver:D,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:N,aggregateSortKindResolver:C,appliedKlikes:_.appliedKlikes,sourceColumns:q,tableColumns:P,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),X=await cu(e,k,$,t,i);return Zl({type:"SELECT",rows:k,columns:X,rowCount:k.length,warnings:[...E]},p)}async function cu(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 dd(o,e.from.subtableCode,()=>ma(e.from.appId,r,i))}function lf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ei(e,t,n,r,i,o,a,s,l=null,d=!0,c,u=""){let p=$t(e,t,c),f=m=>{if(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`),jl(n,t.appId),Bp(e,t,o))throw new Pe(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${m} \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`,!0)};if(!t.subtableCode){let m=o&&d?yc(e,t.appId).query:"",y=[l!==null?V(l):"",u].filter(w=>w!==""),S=y.length>1?y.map(w=>`(${w})`).join(" and "):y[0]??"",A=m&&S?`(${m}) and (${S})`:m||S;return(await He(n.getRecords,t.appId,A,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let g=(await He(n.getRecords,t.appId,"",p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Ld(g,t.subtableCode)}var Xf=50;function TA(e){let t=_e(e);return t!==null?JSON.stringify(t):e}function Ll(e){return JSON.stringify(e)}function ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?TA(n):n))}function fi(e,t){let n=e.raw.get(Ll(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(ln(t,e.numericKey))}async function Ei(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},c=(g,m,y)=>{let S=g.get(m);(S===void 0||y>S)&&g.set(m,y)},u=(g,m)=>{c(d.raw,Ll(g),m),l.some(Boolean)&&c(d.normalized,ln(g,l),m)},p=new Set,f=[],E=new Set;for(let g of n){let m=Ll(g);E.has(m)||(E.add(m),g.some(y=>y==="")?f.push(g):p.add(g[0]))}let R=["$id",...t];for(let g of jn([...p],Xf)){let m=`${t[0]} in (${g.map(ua).join(",")})`,y=await be(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let S of y){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(I=>Jf(S[I]?.value)),A)}}for(let g of f){let m=t.map((S,A)=>`${S} = ${ua(g[A])}`).join(" and "),y=await be(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});y.length!==0&&u(g,IA(y))}return d}function IA(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 Jf(e){return typeof e=="string"?e:e==null?"":String(e)}function ua(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function jn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Qf=50,wA=6,uf=Qf*wA;async function Zf(e,t,n,r,i,o,a,s,l=null,d,c=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let u=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!u||!p)return null;let f,E,R;if(u===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&&u!==t.table.alias)f=u,E=t.on.left.field,R=t.on.right.field;else return null;let g=n.get(f);if(!g)return null;let m=new Set;for(let b of g){let D=b[E]?.value,N=Jf(D).trim();N.length>0&&m.add(N)}let y=[...m];if(y.length===0)return[];if(y.length>uf)return s.add(`JOIN\u30AD\u30FC\u304C ${y.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 ${uf} \u4EF6\uFF09\u3002`),null;let S=$t(e,t.table,d),A=b=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${b} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${b} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),jl(r,t.table.appId)},I=jn(y,Qf),w=[],C=new Set;for(let b of I){let D=`${R} in (${b.map(ua).join(",")})`,_=[l!==null?V(l):"",c].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,D),U=await He(r.getRecords,t.table.appId,_,S,{parallel:o,maxRecords:i,onLimit:a,onTruncate:A});for(let L of U.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;C.has(v)||(C.add(v),w.push(L))}}return w}var _l=new Map,Dl=new Map,vl=new Map,Ul=new Map,kl=new Map,Ml=new Map;function pu(e){_l.delete(e),Dl.delete(e),vl.delete(e),Ul.delete(e),kl.delete(e),Ml.delete(e)}function zn(e,t,n){return e.get(t)?.get(n)}function qn(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=zn(Ul,n,e);if(r)return r;let i=t.getFields(e);return qn(Ul,n,e,i),i}async function st(e,t,n){let r=zn(Ml,n,e);if(r)return r;let i=t.getNumberPrecision(e);return qn(Ml,n,e,i),i}async function ma(e,t,n){let r=zn(kl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return qn(kl,n,e,i),i}async function du(e,t,n){let r=await ma(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ie(e,t,n){let r=zn(_l,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return qn(_l,n,e,o),o}async function Fl(e,t,n){let r=zn(Dl,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 qn(Dl,n,e,o),o}async function bA(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 cf(e,t,n){let r=zn(vl,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 qn(vl,n,e,o),o}function PA(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 NA(e,t,n,r){let i=PA(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await te(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(u.field);return R?ot(R,e.from.appId):void 0}let f=o.find(R=>Le(R)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let E=s.get(f.appId)?.get(Te(f,u.field));return E?ot(E,f.appId):Qt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(Te(e.from,u.field));return f?ot(f,e.from.appId):Qt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),m=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(Te(f,u.field)),R=E?ot(E,f.appId):Qt(u.field);return R?[R]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},d=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Be(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=z("number");else if(u.type==="WINDOW_COL")p=$f(u,l);else if(u.type==="GROUPING_COL")p=z("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=z("string");else if(u.type==="STRFUNC_COL")p=an(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=xe();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(E=>Yn(E.result,l));u.expr.elseResult&&f.push(Yn(u.expr.elseResult,l)),p=ya(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=sn(u.arg,l)):p=u.func==="GROUP_CONCAT"?z("string"):z("number"));p?.semantics&&d.set(u.alias,p.semantics)}let c=new Map;for(let u of i){let p=d.get(u)??l(Be(u))?.semantics;if(!p){let E=Be(u);E.tableAlias===null&&a.has(E.field)&&c.set(u,Z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await ma(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}c.set(u,f)}return c}async function oi(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([CA(e,t,n),OA(e,t,n),NA(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function CA(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 OA(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 cf(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 cf(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function eE(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 LA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function _A(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||LA.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function qe(e,t,n,r){let i=await te(e,n,r);return _A(e,t,i),i}async function ht(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?st(e,r,i):void 0}function un(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??"",c=Oe(d,l,r);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let u=["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:u?d:c.value}}})}async function DA(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=await Cr({statement:e,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",At),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return lS(e,a,o)}async function vA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await tE(e,t,n,r,i);return cS(e,a,o)}async function tE(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=sE(e),l=new Set;for(let g of s){let m=ln(g,e.keyFields.map(y=>a.get(y)==="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 Ei(e.appId,e.keyFields,s,t,n,a),c=s.map(g=>fi(d,g)),u=new Map,p=[...new Set(c.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of jn(p,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of m.records){let S=Number(y.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,y)}}let E=c.map((g,m)=>({sourceRowIndex:m,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),R=await vp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",At),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function UA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await qe(e.appId,e.fields,t,r),o=await Cr({statement:e,fieldInfos:i,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",At),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),loadNumberPrecision:()=>st(e.appId,t,r)}),a=vs(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ha(a),applyDiagnostic:a}))throw new ce("INSERT",o.guards.parentRows);let s=await xp(o,t,a);return{...s,diagnostic:ke(a,s)}}async function kA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await tE(e,t,n,r,1),o=Us(i);if(n.confirm){let s=ha(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ce("UPDATE",i.guards.parentRows)}let a=await Kp(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:ke(o,a)}}function MA(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 ha(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=MA(n?qo(n):[],r?qo(r):[]),a=FA(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),c=o.reduce((p,f)=>p+f.removeRows,0),u={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:c,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{...u,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=qo(n),f=qo(r);return{...u,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 u}function qo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=rn(t,"APPEND"),r=rn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function rn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function FA(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:rn(n,"ADD"),removedValues:rn(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 fu(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return DA(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return vA(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await aE(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Eu(e,t,n,r,i,o)).result}var ai=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Eu(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 c=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,u=await qe(e.appId,c,t,r);e.type==="UPDATE"&&await Vn(e,t,r);let p=new Map(u.map(v=>[v.code,v])),f=await ht(e.appId,c,u,t,r),E=Ze(u,d),R=_d(E),g=(await xA(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,h)=>v.rowNumber-h.rowNumber),m=g.filter(v=>v.mode==="update"),y=e.type==="UPDATE"?GA:e.type.startsWith("UPSERT")?v=>$A(v,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,A=m.length>0&&S!==void 0,I=new Map;if(A){ws(m,c,u);let v=await S({appId:e.appId,candidates:m,fields:R}),h=new Map;for(let P of m){if(P.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${P.rowNumber}).`);let M=v.get(P.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${P.targetId}.`);let O=Dd(M,P.record??{});h.set(P.rowNumber,O)}f===void 0&&[...h.values()].some(P=>jt(P,E))&&(f=await st(e.appId,t,r));for(let P of m){let M=h.get(P.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${P.rowNumber}.`);I.set(P.rowNumber,zt(M,E,f,o,P.rowNumber,l))}}let w=bs(g,l,d,c,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:C,invalidRows:b,invalidRowNumbers:D}=w;if(A){let v=new Map(w.candidateResults.map(h=>[h.rowNumber,h]));C=[],D=new Set;for(let h of g){let P=v.get(h.rowNumber);if(!P)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let K=[...P.preErrors,...P.builtInErrors,...P.checkErrors];C.push(...K),K.length>0&&D.add(h.rowNumber);continue}let M=I.get(h.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let O=vd({rowNumber:h.rowNumber,setFields:c,normalizedPostImage:M.normalizedRecord,preErrors:P.preErrors,postImageErrors:M.errors,checkErrors:P.checkErrors});h.record=O.writeRecord,C.push(...O.errors);for(let K of O.invalidRowNumbers)D.add(K)}b=D.size}let N=[...d,...Un],_={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-b,invalidRows:b,errorCount:C.length,columns:N,errors:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let v of d){if(v==="$id"){U.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Z({fieldType:"RECORD_NUMBER"})});continue}let h=p.get(v);h&&U.set(v,ot(h,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of Un)U.set(v,z(L.has(v)?"number":"string"));return pn.set(_,U),{result:_,candidates:g,invalidRowNumbers:D,columnMeta:U}}async function xl(e,t,n,r,i,o){let a=await Eu(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");at(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Ke,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ai(`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 ce(E,d.length)}let c={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 g=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(g.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...c}}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,...c}}let u=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<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.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,...c}}async function xA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return BA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")pf(e,e.fields),p=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),cn(e,p),l=e.values.map(A=>A.map((I,w)=>I.type==="CASE_VALUE"?Ut(I.expr,{},a.get(e.fields[w])?.fieldType):I));else{let A=await gu.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.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(I&&new Set(A.columns).size!==A.columns.length)throw ge("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");pf(e,A.columns),d=A.rows,c=A.importPresence,u=A.importRowErrors;let w=A.columnMeta;p=new Map(A.columns.map(C=>{let b=w?.get(C),D=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[C,D]})),cn(e,p),l=A.rows.map(C=>A.columns.map(b=>C[b]??""))}let f=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,C)=>c&&!c[I]?.has(w)?[]:[[w,A[C]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:d?.[I]??Object.fromEntries(e.fields.map((w,C)=>[w,Qe(A[C])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([A,I])=>[A,I.fieldType])),R=f.map(A=>e.keyFields.map(I=>Qe(A.payload.get(I)))),g=e.keyFields.map(A=>E.get(A)==="NUMBER"),m=new Map;for(let A of R){let I=ln(A,g);m.set(I,(m.get(I)??0)+1)}let y=fa.has(e);if(y&&[...m.values()].some(A=>A>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 S=await Ei(e.appId,e.keyFields,R,n,r,E);return f.forEach((A,I)=>{let w=R[I],C=fi(S,w);A.mode=C===void 0?"create":"update",C!==void 0&&(A.targetId=C),e.keyFields.forEach((b,D)=>{w[D]===""&&A.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(m.get(ln(w,g))??0)>1&&A.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 Ru(e){return e.checkGroups?Dn(e.checkGroups):[]}function pf(e,t){let n=new Set(t);for(let r of Ru(e)){if(r.tableAlias!==null)throw ge(`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 ge(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var KA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function cn(e,t){if(e.checkGroups)for(let n of ep(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(KA.has(i??""))throw ge(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function BA(e,t,n,r,i,o){if(e.from)return WA(e,e.from,t,n,r,i,o);await dE(e.assignments,t,n,r);let a=await Ie(e.appId,t,r),s=nE(e,a);cn(e,Kl(a,e.appId));let l,d=new Map,c=new Map;if(so(e)){let u=ls(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(f.records),d=c,l=cs(e,f.records,a).flatMap(E=>E.records)}else{let u=hr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(f.records),d=c,l=Ar(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await He(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(p.records),l=Ar(e,[...c.keys()],a).flatMap(f=>f.records)}else{let p=await Io(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ar(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:c.get(u.id),evaluationRow:VA(d.get(u.id),e.appId),evaluationFieldTypes:Kl(a,e.appId)}))}function ta(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 GA(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 $A(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 Pe(`\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 jn(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,c=Number(d);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,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 nE(e,t){if(e.from)return[];let n=new Set;for(let r of Ru(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw ge(`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 ge(`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 VA(e,t){if(!e)return{};let n=Et(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Kl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function WA(e,t,n,r,i,o,a){let s=await IE(e,t,n,i,o);cn(e,s.evaluationTypes);let l=await rE(e,t,n,r,i,o,a),d=await Ie(e.appId,n,i),c=ds(e,l,d).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?ta(l.map(f=>f.target)):new Map;return c.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:jS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var HA=Xf,YA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function rE(e,t,n,r,i,o,a){let s=await jA(e,t,n,i),l=await IE(e,t,n,i,o),d=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...d])],u=await zA(t,c,d,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=df(I[t.joinKeyField],s,"source");if(p.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);p.set(w,I),f.set(w,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...dS(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":hr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],y=new Set,S=0;for(let I of jn([...f.values()],HA)){let w=`${t.targetJoinField} in (${I.map(ua).join(",")})`,C=g?`(${w}) and (${g})`:w,b=await He(n.getRecords,e.appId,C,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=b.records.length,S>E)throw new Pe(`\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 b.records){let N=D.$id?.value;if(typeof N!="string"||N==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(N)||(y.add(N),m.push(D))}}let A=[];for(let I of m){let w=I[t.targetJoinField]?.value,C=df(w,s,"target");if(C===null)continue;let b=p.get(C);b!==void 0&&A.push({target:I,source:b})}return A}async function jA(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 zA(e,t,n,r,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!c.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return c.rows}let s=await Ie(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 c of n){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let u=c==="$id"?"RECORD_NUMBER":s.get(c);if(YA.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${c}).`)}return(await He(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>Et(c,null))}function df(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=_e(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 Eu(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$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 ce(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];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)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),d=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),c=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});c+=p.ids.length}for(let u=0;u<d.length;u+=100)await t.putRecords({app:e.appId,records:d.slice(u,u+100)});return{type:"UPSERT",insertedCount:c,updatedCount:d.length}}async function qA(e,t,n,r){if(e.applyBlocks?.length)return UA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return RS(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await ht(e.appId,e.fields,i,t,r),a=await Ie(e.appId,t,r),s=ao(e,a);un(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let c=await t.postRecords(d);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function XA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Xe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function iE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=xd(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.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 k=new Set(e.targets.filter($=>$.kind==="SUBTABLE").map($=>$.subtableCode));if(e.replaceSubtables.some($=>!k.has($)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let $ of e.targets.filter(X=>X.kind==="SUBTABLE"))if(!$.rowIdSourceHeader||!e.replaceSubtables.includes($.subtableCode))throw new Error(`ArgumentError: CSV subtable ${$.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await te(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),E=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await st(e.appId,t,r):void 0,R=await Wo(o,new Map),g=e.source.kind==="JSON"?Vd(e.source,R,u,n.maxRecords??1e4):Wd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=zd(g,u,p,E,m);if(e.source.kind==="CSV")return JA(e,g,y,p,t,n,i);dl(y,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],A=El(y.errors,S),I=[...S,...fl],w=y.invalidParentRows.size,C={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-w,invalid:w,mutationCandidates:y.parents.filter(k=>k.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:m,validatedRows:y.parents.length,validRows:y.parents.length-w,invalidRows:w,errorCount:A.length,columns:I,errors:A,importDetail:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&at(i,e.validationErrorTable,I,A,n.tempTableMaxRows??Ke,new Map),e.validateOnly)return b;if(Xd(g),y.errors.length>0&&!e.onErrorSkip){let k=y.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");at(i,e.errorTable,I,A,n.tempTableMaxRows??Ke,new Map)}let D=y.parents.filter(k=>k.valid),N=new Map(p.map(k=>[k.code,k.fieldType])),_=D.map(()=>{});if(e.keyFields){for(let F of e.keyFields)if(!e.fields.includes(F))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${F}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(F=>N.get(F)==="NUMBER"),$=new Set,X=D.map(F=>e.keyFields.map(de=>String(F.top[de]?.value??"")));for(let F of X){let de=ln(F,k);if($.has(de))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");$.add(de)}let G=await Ei(e.appId,e.keyFields,X,t,n,N);X.forEach((F,de)=>{_[de]=fi(G,F)})}let U=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),L=new Map,v=_.filter(k=>k!==void 0);for(let k of jn([...new Set(v)],100)){let $=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let X of $.records){let G=Number(X.$id?.value),F=Number(X.$revision?.value);Number.isFinite(G)&&L.set(G,{id:G,...Number.isFinite(F)?{revision:F}:{},record:X})}}let h=Jd(D,_,L),P={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(k=>k.mode==="INSERT").length,updatedParents:h.filter(k=>k.mode==="UPDATE").length,hasDeletes:h.some(k=>k.tables.some($=>$.deleteRows>0)),parents:h.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new ce(e.keyFields?"UPDATE":"INSERT",h.length)}let M=k=>new Map(Object.entries(k).map(([$,X])=>[$,X.value])),O=k=>qd(M(k.top),new Map([...k.subtables].map(([$,X])=>[$,X.map(G=>({values:M(G)}))]))),K=h.filter(k=>k.mode==="INSERT"),j=h.filter(k=>k.mode==="UPDATE"),q=[];for(let k=0;k<K.length;k+=100){let $=await t.postRecords({app:e.appId,records:K.slice(k,k+100).map(O)});q.push($.ids)}for(let k=0;k<j.length;k+=100)await t.putRecords({app:e.appId,records:j.slice(k,k+100).map($=>({id:$.targetId,...$.revision===void 0?{}:{revision:$.revision},record:O($)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return QA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:XA(),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};fa.set(s,l);let d=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await fu(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&at(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??Ke,pn.get(u)??new Map),d(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",xl(s,t,n,r,i,1));return d(u)}let c=await(s.type==="UPSERT_SELECT"?Au(s,t,n,r,i):yu(s,t,n,r,i));return d(c)}async function JA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Qd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=yl(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],c=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],u=await be(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of u){let v=Number(L.$id?.value),h=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(h)?{revision:h}:{},record:L});for(let P of c){let M=L[P]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let K=f.get(O.id)??[];K.push({parentId:v,table:P}),f.set(O.id,K)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let h=[...L.errors];for(let M of l.errors[v])h.push({operation:"UPDATE",parentRow:L.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[v].top});let P=E[v];return P!==void 0&&!p.has(P)&&h.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:h.length===0,errors:h}}),g=Zd(t.records,R,E,p,f),m=g.flatMap(L=>[...L.errors]),y=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),S={...n,parents:R,errors:m,invalidParentRows:y};dl(S,e.rejectLimit);let A=g.filter(L=>L.valid),I=g.flatMap(L=>L.tables),w=(L,v)=>I.filter(h=>h.table===L).reduce((h,P)=>h+Number(P[v]),0),C=Object.fromEntries(d.map(L=>[L,{existingRows:w(L,"existingRows"),inputRows:w(L,"inputRows"),updateRows:w(L,"updateRows"),addRows:w(L,"addRows"),deleteRows:w(L,"deleteRows"),rowIdNotFound:w(L,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:A.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:A.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:y.size,parents:A.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))],N=El(m,D),_=[...D,...fl];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&at(a,e.validationErrorTable,_,N,o.tempTableMaxRows??Ke,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:N.length,columns:_,errors:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:y.size,mutationCandidates:A.length},tables:C,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let L=m[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.");at(a,e.errorTable,_,N,o.tempTableMaxRows??Ke,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new ce("UPDATE",A.length)}let U=L=>new Map(Object.entries(L).map(([v,h])=>[v,h.value]));for(let L of A){let v=Rl(U(L.top),new Map([...L.subtables].map(([h,P])=>[h,P.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:U(M.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:A.length,affectedRows:A.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function QA(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 qe(e.appId,e.fields,n,i),s=await ht(e.appId,e.fields,a,n,i),l=await Wo(t,new Map),d=ul(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=d.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let u=yl(c,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let D=f.slice(b,b+100),N=await n.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let _ of N.records){let U=_.$id?.value;typeof U=="string"&&U!==""&&p.add(U.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(b=>[b.code,b])),R=new Map(e.fields.map(b=>[b,E.get(b)?.fieldType??"SINGLE_LINE_TEXT"])),g=d.rows.map((b,D)=>{let N=u.normalized[D],_=[...d.importRowErrors?.[D]??[],...u.errors[D]];return N!==null&&!p.has(N)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${N} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...N!==null&&p.has(N)?{targetId:Number(N)}:{},payload:new Map([[e.recordNumberSourceHeader,c[D]],...e.fields.map(U=>[U,b[U]??""])]),preErrors:_,record:{},evaluationRow:b,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],y=bs(g,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),S=[...m,...Un],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:S,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&at(o,e.validationErrorTable,S,y.errors,r.tempTableMaxRows??Ke,new Map),A}if(!e.onErrorSkip&&y.invalidRows>0){let b=y.errors[0];throw new Error(`DmlValidationError: ${b.$err_code} ${b.$err_message} (row=${b.$err_row}, field=${b.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(at(o,e.errorTable,S,y.errors,r.tempTableMaxRows??Ke,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new ai(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=g.filter(b=>!y.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ce("UPDATE",I.length);let w=I.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<w.length;b+=100)await n.putRecords({app:e.appId,records:w.slice(b,b+100)});let C={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(C,{insertedCount:0,importAudit:d.importAudit}),C}async function ZA(e,t,n,r,i,o){let a=fa.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await Ft(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:pe.get(R)}}let s=await Wo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?ll(a.source,s,c,l):ul(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=ef(a.source.projection),f=new Map(i??[]);f.set(gl,u);let E=await mt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:pe.get(E)}}var gu={materialize:ZA};function oE(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 yu(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await ht(e.appId,e.fields,o,t,r),s=await gu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(oE(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 ce("INSERT",l.length);let c=await Ie(e.appId,t,r),u=l.map((f,E)=>{let R={};return e.fields.forEach((g,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let y=f[d[m]]??"";R[g]={value:eE(y,c.get(g))}}),R});u.forEach(f=>un([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let E=u.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 Bl(e,t,n,r,i){if(e.applyBlocks?.length)return aE(e,t,n,r);if(e.checkGroups?.length&&yt(e.where)){let E=await qe(e.appId,e.assignments.map(g=>g.field),t,r);await ht(e.appId,e.assignments.map(g=>g.field),E,t,r);let R=await Ie(e.appId,t,r);return nE(e,R),cn(e,Kl(R,e.appId)),await Vn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Ri(e,t,n,r,i);if(e.subtableCode)return await Vn(e,t,r),gS(e,t,n,r);let o=await qe(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await ht(e.appId,a,o,t,r);if(await Vn(e,t,r),yt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return pS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await dE(e.assignments,t,n,r);let d=await Ie(e.appId,t,r);if(so(e)){let E=ls(e),g=(await He(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=cs(e,g,d);if(un(m.flatMap(y=>y.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new ce("UPDATE",g.length);for(let y of m)await t.putRecords(y);return{type:"UPDATE",updatedCount:g.length}}let c=hr(e),p=(await Io(t.getRecords,c.app,c.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ar(e,p,d);if(un(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ce("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function aE(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!ut(e.where))return eS(e,t,n,r,i);let o=await te(e.appId,t,r),a=ft(e,o),s=uo(e,o),l=ms(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 c=Number(d.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);Eo(d.records[0]);let u=yp({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Ze(o,e.assignments.map(I=>I.field)),f=jt(u.postImage,p)?await st(e.appId,t,r):void 0,E=zt(u.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=Ge(n.dmlMaxRows,"dmlMaxRows",At),g=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),m=u.parentRows>R||u.changedSubtableRows>g;if(e.validateOnly){let I=Lr({plans:[u],records:wr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:m}}),w={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:si(I.branches[0]),guards:li(I.branches[0]),deletedRows:{total:u.tables.reduce((C,b)=>C+b.deletedRows,0),parentRows:u.tables.some(C=>C.deletedRows>0)?1:0},diagnostic:I};return pn.set(w,Aa(E.columns,o,e.appId)),w}if(u.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${R}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let y=po(u,E.normalizedRecord),S=wr(y),A=Lr({plans:[y],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:m}});if(n.confirm){let I=ha(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new ce("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:ke(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function eS(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",At),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),s=await te(e.appId,t,r),l=ft(e,s),d;if(ca(e))d=await iS(e,t,n,s,r);else{let f=uo(e,s),E=hr(e).query,R=o+1;d=await be(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 c=await mo({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});if(e.validateOnly)return uS(e,c,s);Qu("phase15b",e);let u=Lr(c);if(n.confirm){let f=ha(u);if(!await n.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new ce("UPDATE",c.guards.parentRows)}let p=await Fp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ca(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(It(e.where)||Ee(e.where))}function tS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ca(t)&&Ee(t.where)}var nS=`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
11
12
  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
12
- 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 XA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${qA}`)}async function JA(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=Ks(e.where,{fieldTypes:s,fieldOptions:l});XA(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(lo(e,r));for(let E of QA(e.where))u.add(E);let p=await ZA(e.appId,e.where,a,t,i);return(await be(t.getRecords,e.appId,c,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:ft(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function QA(e){return zl(e)}async function ZA(e,t,n,r,i){let s=[...eS(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await uu(e,r,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":n.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return Ln(Z({fieldType:"__ID__"}),e,"$id");let u=n.get(c.field);if(!u)return;let p=u.semantics??Z(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return Ln(f,e,u.code)}}}function eS(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 tS(e,t,n){let r=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,u)=>c+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ze(n,e.fields).payloadFields,...Nr],a=t.guards.parentRows,s=Ls(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:si(l),guards:li(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return cn.set(d,ha(o,n,e.appId)),d}function nS(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ze(n,e.assignments.map(d=>d.field)).payloadFields,...Nr],s=Lr(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:si(s.branches[0]),guards:li(s.branches[0]),deletedRows:{total:t.plans.reduce((d,c)=>d+c.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return cn.set(l,ha(a,n,e.appId)),l}function rS(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??[...Ze(n,e.fields).payloadFields,...Nr],l=_s(t),d=l.branches.find(E=>E.branch==="insert"),c=l.branches.find(E=>E.branch==="update"),u=si(d),p=si(c),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:[...u,...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:u,guards:li(d)},update:{apply:p,guards:li(c)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((g,m)=>g+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return cn.set(f,ha([...s],n,e.appId)),f}function si(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:rn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:rn(t,"ADD"),removedValues:rn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function li(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,me=500;function Ge(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 ha(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:Z({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ot(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function iS(e,t,n,r,i,o){let a=await Zf(e,t,n,r,i,o),s=await Ie(e.appId,n,i),l=us(e,a,s),d=e.assignments.map(p=>p.field),c=await te(e.appId,n,i),u=await mt(e.appId,d,c,n,i);if(ln(l.flatMap(p=>p.records.map(f=>f.record)),d,c,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ce("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function oS(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 aS(e,t,n,r){if(await $n(e,t,r),gt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return cS(e,t,n,r);let i=sp(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 ce("DELETE",a.length);let s=lp(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function sS(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return CA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await mt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ie(e.appId,t,r),d=rE(e),c=await Ei(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((g,m)=>{let y=p[m];y.type==="CASE_VALUE"?E[g]={value:Ut(y.expr,{},l.get(g))}:E[g]={value:pt(y,l.get(g))}});let R=fi(c,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),ln([...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 ce("UPDATE",p)}let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});u.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:u.flat().length,updatedCount:s.length}}function rE(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"?Ce(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Ru(e,t,n,r){if(t.length===0)return;let i=await Ie(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 lS(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 be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Aa(a),l=new Map;for(let c of e.values){let u=cf(c[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,g)=>{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:cf(c[g])}}});let E=l.get(u);E?E.push(f):l.set(u,[f])}let d=[];for(let[c,u]of l.entries()){let p=s.get(c),E=[...gi(p,i),...u];d.push(iE(e.appId,c,yi(p),i,E))}for(let c of d)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function uS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Rt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&aa(p.value.expr,o);let a=await Ru(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=gu(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ce("UPDATE",d.length);let c=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=c.get(p.parentId);f||(f=new Map,c.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:so(R.value,p.flat,a)}}f.set(p.rowId,E)}let u=Aa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let g=gi(E,i).map(m=>{let y=m.id??"";if(!y)return m;let S=f.get(y);return S?{id:y,value:S}:{id:y}});await t.putRecords(pS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function cS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Rt(e.where,o);let a=await Ru(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=gu(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new ce("DELETE",d.length);let c=new Map;for(let p of d){let f=c.get(p.parentId);f?f.push(p.rowIndex):c.set(p.parentId,[p.rowIndex])}let u=Aa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let R=gi(E,i),g=new Set(f),m=R.filter((y,S)=>!g.has(S));await t.putRecords(iE(e.appId,p,yi(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function Aa(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function gu(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=yi(r),a=gi(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...uo(l,s),_pid:i};for(let[c,u]of Object.entries(r))c!==t&&(d[`_p.${c}`]=xl(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function gi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function yi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function iE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function pS(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function dS(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 cf(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?Ce(e.expr,{}):e.elements.map(t=>t.value).join(",")}function xl(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 ti(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ti(e.left)||ti(e.right);case"NOT":case"GROUP":return ti(e.expr);default:return!1}}async function fS(e,t,n,r){let i=[];Rt(e.where,i);let o=await Ru(e.appId,i,t,r),a=await te(e.appId,t,r);if(gt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Z(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return x("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??x("string")},d=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=gu(d,e.subtableCode),u=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&ne(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new ce("UPDATE",u.size);let p=Aa(d);for(let f of u){let E=p.get(f);if(!E)continue;let g=gi(E,e.subtableCode).map((y,S)=>({row:y,i:S,flat:ES(E,e.subtableCode,y,S)}));g.sort((y,S)=>RS(y.flat,S.flat,e.by,l));let m=g.map(y=>y.row.id??"");await t.putRecords(dS(e.appId,f,yi(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:u.size}}function ES(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}`]=xl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=xl(a?.value);return i}function RS(e,t,n,r){for(let i of n){let o=pf(i.key,e),a=pf(i.key,t),s=i.key.type==="FIELD_NAME"?r(Be(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?an(i.key.expr).semantics??x("string"):x("number"),l=Dt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function pf(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(le(e.expr,t));case"FUNC_KEY":return ue(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function yu(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await mt(e.appId,e.fields,o,t,r),s=await fu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(tE(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 c=[],u=[],p=await Ie(e.appId,t,r),f=l.map((m,y)=>{let S={};return e.fields.forEach((A,I)=>{if(s.importPresence&&!s.importPresence[y]?.has(A))return;let w=m[d[I]]??"";S[A]={value:Xf(w,p.get(A))}}),S});f.forEach(m=>ln([m],e.fields.filter(y=>y in m),o,a));let E=f.map(m=>e.keyFields.map(y=>String(m[y]?.value??"")));if(da.has(e)){let m=e.keyFields.map(S=>p.get(S)==="NUMBER"),y=new Set;for(let S of E){let A=sn(S,m);if(y.has(A))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(A)}}let R=await Ei(e.appId,e.keyFields,E,t,n,p);if(f.forEach((m,y)=>{let S=fi(R,E[y]);S!==void 0?u.push({id:S,record:m}):c.push(m)}),n.confirm&&c.length+u.length>0){let m=c.length+u.length;if(!await n.confirm(m,"UPDATE"))throw new ce("UPDATE",m)}let g=[];for(let m=0;m<c.length;m+=100){let y=await t.postRecords({app:e.appId,records:c.slice(m,m+100)});g.push(y.ids)}for(let m=0;m<u.length;m+=100)await t.putRecords({app:e.appId,records:u.slice(m,m+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}async function oE(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 aE(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","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function gS(e,t=!1){try{let n=new Ot(e).tokenize(),r=new Lt(n,{import:t}).parse();return An("phase15b",r),We(r),r}catch(n){throw n instanceof Se||n instanceof T,n}}async function ui(e,t,n,r,i){let o=[];ta(e,t,n,r,o,i),await Promise.all(o)}async function sE(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(ui(s.condition,t,n,r,i));await Promise.all(o)}function ni(e,t,n,r,i){return i!==void 0&&i.size>0?yt(e,t,n,i,r):Ft(e,t,n,r)}function ta(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(ni(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(ni(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":ta(e.left,t,n,r,i,o),ta(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":ta(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(ni(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function lE(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Ft(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 uE(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let c=e[d];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(c.query),p=o.get(u);p||(p=ni(c.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(u,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],c)=>l.set(d,s[c])),l}var cE=new WeakMap,Kl=new WeakMap,pE=new WeakMap,dE=new WeakMap;async function fE(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async g=>(o.add(g),t.getFields(g)),getProcessStatuses:async g=>(a.add(g),t.getProcessStatuses(g)),getNumberPrecision:async g=>(s.add(g),t.getNumberPrecision(g))},d=new Map,c=new Map,u=new Map,p=new Set,f=i??await pi(e,l,n),E=g=>f.nodes.find(m=>m.source===g||JSON.stringify(m.source)===JSON.stringify(g)),R=async g=>{if(g===null||typeof g!="object"||p.has(g))return;if(p.add(g),Array.isArray(g)){await Promise.all(g.map(R));return}let m=g;if(m.type==="SELECT"){let y=g;await fa(y,l,n);let S=[y.from,...y.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(re(y).type==="PLAIN"&&!S){let U=await Ql(y,l,n);U&&u.set(y,U)}let A=[y.from,...y.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(nt(y.where)||y.orderBy.length>0||y.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&A.forEach(U=>o.add(U));let{resolver:w,rewrites:C}=await tn(y,l,n);C.length>0&&Kl.set(y,C);let b=ge(y.where,w),D=E(y);if(b.capability==="UNSUPPORTED"&&!D)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(b)}).`);d.set(y,b);let _=tu.get(y)??Ea(y,await Ra(y,l,n));if(_&&cE.set(y,_),y.orderBy.length>0||y.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await oi(y,l,n);if(y.orderMode!=="KINTONE_NATIVE")for(let L of U.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(ia(y)&&!S&&D?.allowed!==!1){let L=b.capability==="EXACT_PUSHDOWN"?Ue(y):"FULL_SCAN";c.set(y,(y.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:y,staticMode:L,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:fe(y.where)}))}}}else if(m.type==="VALIDATE"){let y=g;o.add(y.appId);let S=await te(y.appId,l,n),A=new Map(S.filter(h=>!h.inSubtable).map(h=>[h.code,h])),I=new Set(S.filter(h=>h.inSubtable).map(h=>h.code)),w=Ps(y,S),C=_n(y.checkGroups??[]),b=zl(y.where);for(let h of C){if(h.field!=="$id"&&!A.has(h.field)&&!I.has(h.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u306F APP${y.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(h.field!=="$id"&&!A.has(h.field)&&I.has(h.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let h of b){if(h!=="$id"&&!A.has(h)&&!I.has(h))throw new Error(`ArgumentError: WHERE field ${h} does not exist in APP${y.appId}.`);if(h!=="$id"&&!A.has(h)&&I.has(h))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let D=new Map([...A].map(([h,P])=>[h,P.fieldType]));D.set("$id","RECORD_NUMBER"),un(y,D);let N=ge(y.where,h=>h.field==="$id"?Z({fieldType:"__ID__"}):A.get(h.field)?.semantics??(A.has(h.field)?Z(A.get(h.field)):void 0));if(N.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(N)}).`);let _=new Map([...A].map(([h,P])=>[h,P.fieldType])),U=new Map([...A.values()].flatMap(h=>h.optionOrder?[[h.code,new Set(Object.keys(h.optionOrder))]]:[])),L=y.where===null?null:N.capability==="EXACT_PUSHDOWN"?y.where:bn(y.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:U,allowKlike:!1}),v=w.some(h=>h.field.fieldType==="NUMBER");v&&(s.add(y.appId),await st(y.appId,l,n)),pE.set(y,{targetFields:w.map(h=>h.subtableCode?`${h.subtableCode}(${h.field.code})`:h.field.code),fetchFields:[...new Set(["$id",...w.map(h=>h.subtableCode??h.field.code),...b,...C.map(h=>h.field)])],subtables:new Map([...new Set(w.flatMap(h=>h.subtableCode?[h.subtableCode]:[]))].map(h=>[h,w.filter(P=>P.subtableCode===h).length])),capability:N,prefilter:L,numberPrecision:v})}else if(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(g.appId),m.type==="UPDATE"&&g.applyBlocks?.length){let S=g,A=await te(S.appId,l,n);if(dt(S,A),ua(S)){let I=A.filter(C=>!C.inSubtable),w=Ks(S.where,{fieldTypes:new Map(I.map(C=>[C.code,C.fieldType])),fieldOptions:new Map(I.flatMap(C=>C.optionOrder?[[C.code,new Set(Object.keys(C.optionOrder))]]:[]))});dE.set(S,w)}}let y=g;(y.type!=="UPDATE"||!ua(y))&&E(y)?.allowed!==!1&&await $n(y,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&bt(e)){let g=Pt(e),{resolver:m,rewrites:y}=await tn(g,l,n);y.length>0&&Kl.set(g,y);let S=ge(g.where,m),A=E(g);if(S.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(S)}).`);if(d.set(g,S),ia(g)&&A?.allowed!==!1){let I=await oi(g,l,n);c.set(g,(g.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:g,staticMode:S.capability==="EXACT_PUSHDOWN"?Ue(g):"FULL_SCAN",whereCapability:S.capability,whereReasons:S.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:fe(g.where)}))}}return{capabilities:d,orderPlans:c,plainGroupByPlans:u,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Bl(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 yS(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 df(e){return e==="<>"?"!=":e}function je(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(je).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return je(t.expr);case"GROUPING_FIELD":return`GROUPING(${je(t.ref)})`;case"GROUPING_REF":return je(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${je(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${je(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(je).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(je).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Zt(e){try{let t=e;switch(t.type){case"BINARY":return`${je(t.left)} ${yS(t.op)} ${je(t.right)}`;case"NULL_CHECK":return`${je(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Zt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Zt(t.right)})`;case"NOT":return`NOT (${Zt(t.expr)})`;case"GROUP":return`(${Zt(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?mS(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=ml(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${yl(d)}: ${d}`,` ${hl(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${c}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Zt(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=ml(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=df(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${yl(l)}: ${l}`,` ${hl(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${ff(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=ml(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=df(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${yl(l)}: ${l}`,` ${hl(l)}: kintone server exact prefilter`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=V(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Zt(o.residualWhere)}`,` ${ff(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 mS(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,c=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((d||c)&&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 yl(e){return J(e)?"relative date function":"kintone function"}function ml(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 hl(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function ff(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var EE=Symbol("ksql.explainFetchPlan");function mu(e){return e[EE]}function RE(e,t){e[EE]=t}async function gE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=me){let d=$l(r);try{let c=ql(e,a),u=Ja(c),p=Ds(c,n),f=bf(c,p),E=new Map,R=[],g=[];for(let y=0;y<c.length;y++){let S=c[y],A=S.type==="SET_VARIABLE"?S.expr.type==="SCALAR_SUBQUERY"?{...S,expr:ra(S.expr,E)}:S:ra(S,E);We(A);let I=await pi(A,t,d),w=await fE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?Gl(I):[...Gl(I),...yE(hS(A,u.statements[y],w.capabilities,w.orderPlans,s,l,C),o)],D=Bl(w);R.push({index:y,type:u.statements[y].statementType,plan:b.length===0?D:[b[0],...D,...b.slice(1)]}),g.push({index:y,fetch:hu(C.sources),sources:C.sources}),(S.type==="SET_VARIABLE"||S.type==="DECLARE_VARIABLE")&&E.set(S.name,S.type==="DECLARE_VARIABLE"&&S.annotation==="RELATIVE_DATE"?{type:"relative-date",value:f.get(S.name)}:S.type==="SET_VARIABLE"&&S.expr.type==="ARRAY"?{type:"array",elements:S.expr.elements.map(N=>({type:"string",value:N.value}))}:{type:"string",value:`@${S.name}`,placeholder:!0})}let m={statementCount:c.length,statements:R};return RE(m,{statements:g}),m}finally{lu(d)}}function hS(e,t,n,r,i=100,o=me,a={sources:[]}){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 ${Ke} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Jr(e.query,t,n,r,a,"main").map(s=>` ${s}`)];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 s=ca(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:",...Jr(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}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 e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`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 Jr(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`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"],l=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return l.forEach((d,c)=>{s.push(l.length>1?` subquery[${c+1}]:`:" subquery:");let u=ca(d.query)?t:{...t,tempTablesReferenced:[]};s.push(...Jr(d.query,u,n,r,a).map(p=>` ${p}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Sa(e,void 0,n,r,i,o):Jr(e,t,n,r,a)}function ca(e){if(Array.isArray(e))return e.some(ca);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(ca)}return!1}function Jr(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return Sa(e,void 0,n,r,100,me,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.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"&&a.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`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.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 s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}async function AS(e,t,n,r,i,o=100,a=me,s){let l=s??await pi(e.query,t,n),d=await fE(e.query,t,n,r,l),c={sources:[]},u=Gl(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Bl(d),...u]:[...Bl(d),...u,...yE(Sa(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans,!0,c),i)],f=na(p,c.sources),E={type:"SELECT",columns:["plan"],rows:f.map(R=>({plan:R})),rowCount:f.length};return RE(E,{statements:[{index:0,fetch:hu(c.sources),sources:c.sources}]}),E}function yE(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 Sa(e,t,n,r,i=100,o=me,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=bS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="WITH"){let f=PS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="INSERT")return OS(e,t,i,o);if(e.type==="INSERT_SELECT")return LS(e,t,n,r,s);if(e.type==="UPSERT")return US(e,t,i,o);if(e.type==="UPSERT_SELECT")return kS(e,t,n,r,s);if(e.type==="UPDATE")return _S(e,t,n,r,i,o,a);if(e.type==="DELETE")return vS(e,t);if(e.type==="REORDER")return MS(e,t);if(e.type==="VALIDATE")return IS(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.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",...R.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 f=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(R=>R.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} 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",...E?[" 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&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[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)"]}let p=ze(e,t,n,r,s,!0,!0,u,c);return l?na(p,u.sources):p}var Ef={none:0,count_only:1,exact:2,prefiltered:3,all:4};function hu(e){return e.reduce((t,n)=>Ef[t]>=Ef[n.fetch]?t:n.fetch,"none")}function na(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${hu(t).toUpperCase()}`,...n]}function SS(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function qo(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:SS(o)};return e.sources.push(s),s}function TS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Xo(e){return` fetch: ${TS(e)}`}function IS(e,t){let n=pE.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?jl:Yl).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 wS(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function ze(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let d=n?.get(e)??(n?[...n].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),c=r?.get(e)??(r?[...r].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),p=o&&d!==void 0&&Vf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=NS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Kp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Kl.get(e)??Cf.get(e)??[])R.push(wS(I));g&&(R.push(` grouping source: ${g.source}`),R.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),R.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let m=re(e);if(m.type==="PLAIN"){let I=m.allItems;if(u)u.items.forEach((w,C)=>{let b=I[C];b?.type==="FIELD_NAME"&&w.kind==="PHYSICAL"&&R.push(` group key ${b.name}: PHYSICAL (source=${w.sourceIndex}, field=${w.fieldCode})`)});else if([e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null))for(let w of I)w.type==="FIELD_NAME"&&R.push(` group key ${w.name}: DEFERRED (materialized schema unavailable)`)}for(let I of e.columns){if(I.type!=="WINDOW_COL"||I.windowKind!=="AGGREGATE")continue;let w=[];I.partitionBy.length>0&&w.push(`PARTITION BY ${I.partitionBy.map(C=>C.tableAlias?`${C.tableAlias}.${C.field}`:C.field).join(", ")}`),I.orderBy.length>0&&w.push(`ORDER BY ${I.orderBy.map(mE).join(", ")}`),R.push(` window ${I.alias}: ${I.aggFunc} OVER (${w.join(" ")})`),R.push(I.frame===null?" frame: PARTITION ENTIRE":` frame: ${I.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${I.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`)}if(p){let I=e.where===null?"":V(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${I}${I?" ":""}limit 1`),a){let w=qo(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${I}${I?" ":""}limit 1`);R.push(Xo(w))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}c?(R.push(` order plan: ${c.kind}`),c.reasonCodes.length>0&&R.push(` order reason: ${c.reasonCodes.join(", ")}`),c.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):c.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${c.scanRows}`))):g&&R.push(" order plan: CANONICAL_LOCAL");let y=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,S=At(y);c?.requiresCompleteInput&&S.add("LOCAL_ORDER");let A=gt(e.where);if(S.size>0&&(!A||g!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...S].join(", ")}`),R.push(" onLimit=truncate: disabled")),A)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let I=Ki(c?.kind==="CANONICAL_REST_TOP_N"?Ff(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=c?.kind==="KORDER_CURSOR"?Bs(e):I.query;if(R.push(` kintone query: ${w||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let C=w?"EXACT":"ALL";R.push(Xo(qo(s,e.from.appId,e.from.alias,l,C,w)))}R.push(` fields: ${I.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":I.fields.join(", ")}`)}else{let I=cE.get(e),w=I??Nn(e);if(e.joins.length>0)if(I){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),I.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${I.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${I.joinPlan.residualWhere===null?"(none)":Zt(I.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${I.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${I.joinPlan.allKlikes.length-I.joinPlan.appliedKlikes.size}`),I.joinPlan.residualWhere!==null)for(let P of I.joinPlan.rejections)R.push(` join pushdown not applied: ${P.reason}`)}else{let P=e.joins.some(M=>M.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied"),R.push(` join pushdown not applied: ${P}`)}let C=$t(e,e.from,u),b=e.from.alias?` AS ${e.from.alias}`:"",D=w.mainCondition,N=Uf(e),_=e.joins.length===0&&d?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!wt(e.where)?V(e.where):"",U=e.from.alias?I?.queriesByAlias.get(e.from.alias):void 0,L=U||(D!==null?V(D):_||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${b} (${e.from.appId})`),R.push(` kintone query: ${L}`);let v=I?.joinPlan.items.find(P=>P.targetAlias===e.from.alias),h=I?.joinPlan.serverFunctionConsumptions.find(P=>P.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let P=!I&&N!==null,M=L==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":P?"PREFILTERED":v?.relation==="exact"||h||_!==""?"EXACT":"PREFILTERED";R.push(Xo(qo(s,e.from.appId,e.from.alias,l,M,L,P)))}v||h?(R.push(` pushdown applied: ${U}`),R.push(` relation: ${v?.relation??"exact"}`)):!I&&N!==null&&R.push(` pushdown candidate: ${V(N)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${C.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":C.join(", ")}`);for(let P of e.joins){let M=$t(e,P.table,u),O=P.table.alias?` AS ${P.table.alias}`:"",K=P.type==="INNER"?"JOIN":`${P.type} JOIN`,j=P.table.alias?w.joinConditions.get(P.table.alias)??null:null,q=P.table.alias&&!P.table.subtableCode&&P.table.cteName===null&&e.where?ur(e.where,{tableAlias:P.table.alias}):null,k=P.table.alias?I?.queriesByAlias.get(P.table.alias):void 0,$=k||(j!==null?V(j):"(\u5168\u4EF6\u53D6\u5F97)");R.push(` ${K}: APP${P.table.appId}${O} (${P.table.appId})`),R.push(` kintone query: ${$}`);let X=I?.joinPlan.items.find(F=>F.targetAlias===P.table.alias),G=I?.joinPlan.serverFunctionConsumptions.find(F=>F.targetAlias===P.table.alias);if(a&&P.table.cteName===null){let F=!I&&q!==null,pe=$==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":F?"PREFILTERED":X?.relation==="exact"||G?"EXACT":"PREFILTERED";R.push(Xo(qo(s,P.table.appId,P.table.alias,"join",pe,$,F)))}X||G?(R.push(` pushdown applied: ${k}`),R.push(` relation: ${X?.relation??"exact"}`)):!I&&q!==null&&R.push(` pushdown candidate: ${V(q)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return R.push(...CS(e,n,r,i,s)),R}function bS(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,d)=>{d>0&&s.push(""),s.push(...ze(l,`[union:${d+1}]`,t,n,r,!0,!0,i,"union"))}),s}function PS(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)a.query.type==="SELECT"&&(o.push(...ze(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...Sa(e.query,"[main]",t,n,100,me,1e4,r,!1,i)),bt(e)){o.push("");let a=Pt(e);o.push(...ze(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function NS(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=re(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"),wt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Tt(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 CS(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function OS(e,t,n=ht,r=me){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,...Au(Ao(e,n,r))]:a}function LS(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function _S(e,t,n,r,i=100,o=me,a=1e4){if(e.applyBlocks?.length)return DS(e,t,i,o,a);let s=rp(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=ao(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?ci(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${ci(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(gt(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"),c&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!c&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),d){let f=FS(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${KS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ze(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function DS(e,t,n,r,i){let o=Ao(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"}),c=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],u=c.includes("REMOVE"),p=dE.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: ${ci(e.where)}`,`parent cardinality: ${ut(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${c.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=${u?"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: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Au(o)]}function vS(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ci(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(gt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function US(e,t,n=ht,r=me){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,...Au(Ao(e,n,r))]:a}function Au(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 kS(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function MS(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(mE).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,gt(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: ${ci(e.where)}`),o}function mE(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ci(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 FS(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&pa(n,t),n.type==="STRING_FUNC"&&pa(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&ri(n,t);return[...t]}function pa(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"&&(pa(e.left,t),pa(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t)}async function hE(e,t,n,r,i){let o=du(e),a=await Ie(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 Ie(t.appId,n,r),d=new Set,c=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 Re(`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 Re(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else throw Re(`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 Re(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw Re(`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 u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...c],evaluationTypes:u}}function xS(e,t,n){if(!e)return{};let r=ft(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 ri(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_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(ri(e.left,t),ri(e.right,t))}function KS(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} = ${AE(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 AE(e){return`${Rf(e.left)} ${e.op} ${Rf(e.right)}`}function Rf(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"?`(${AE(e)})`:"..."}var ce=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 we=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 Su(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 $e(e){return new we("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new we("PARSE_ERROR",e,t)}function SE(){let e=new on;return new we("SEARCH_ABORTED",e.message,e)}function mi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function BS(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 pn(e){return e instanceof we?e:e instanceof Se||e instanceof T?new we("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new we("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new we("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new we("CLIENT_ERROR",e.message,e.cause):BS(e)?new we("CLIENT_ERROR",mi(e),e):new we("EXECUTION_ERROR",mi(e),e)}function Ta(e,t){let n=pn(e);if(e instanceof Q){let r=t[e.statementIndex];if(r!==void 0)return Su(n,e.statementIndex,r.type)}return n}var GS=2,Ia=5,$S=3e4,VS=10*6e4+3e4,wa=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??GS;if(!Number.isSafeInteger(r)||r<1||r>Ia)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ia}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??$S,this.quarantineMs=n.quarantineMs??VS}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 _o(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>Ia)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ia}.`)}};function WS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function HS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=WS){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 YS(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 TE(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 YS(HS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function IE(e){return wE(e,zS(e))}function wE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=qS(o.options),s=XS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ba(o.minValue),maxValue:ba(o.maxValue),minLength:ba(o.minLength),maxLength:ba(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!jS.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...wE(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var jS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function zS(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 ba(e){return e==null||e===""?void 0:e}function qS(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 XS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function bE(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 JS="Filter aborted because of too many search results";function PE(e){return e?.includes(JS)===!0}var NE="/k/v1/records.json",Pa="/k/v1/records/cursor.json",QS=4096,ZS=2,Tu=e=>kintone.api.url(e,!0);function eT(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(NE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=QS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Tu(NE),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 hi(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(`
13
- `));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 tT(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return hi({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}),hi(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}),hi(n)}}function nT(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function dn(e,t,n){try{return await kintone.api(Tu(e),t,n)}catch(r){throw hi(r)}}function rT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function iT(e={}){let t=e.cursorMaxActive??ZS;rT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=eT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await tT(l);let d=await l.json();return PE(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw hi(s)}},async openCursor(a){let s=Tu(Pa),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 wa(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(),c;try{c=await n.runCreate(()=>dn(Pa,"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 Do(R))}let u=c.id,p=TE(Number(c.totalCount),{get:()=>dn(Pa,"GET",{id:u}),delete:()=>dn(Pa,"DELETE",{id:u}),isAlreadyReleasedError:nT,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 dn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of d.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await dn("/k/v1/app/form/fields.json","GET",{app:a});return IE(s.properties)},async getNumberPrecision(a){let s=await dn("/k/v1/app/settings.json","GET",{app:a});return Tp(s)},async getProcessStatuses(a){let s=await dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:bE(s.states)}}}}var CE=new Set(["postRecords","putRecords","deleteRecords"]),Ai=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 xt(e){try{return await e()}catch(t){throw new Ai(t)}}function oT(e){return()=>{throw $e(`${String(e)} is blocked by the readonly client`)}}function Jn(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 xt(()=>t(l));if(d.searchAborted===!0)throw SE();return d},openCursor:async l=>{let d=await xt(()=>n(l)),c=d.nextPage.bind(d),u=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>xt(()=>c()),close:()=>xt(()=>u())}},getApps:()=>xt(()=>r()),getFields:l=>xt(()=>i(l)),getNumberPrecision:l=>xt(()=>o(l)),getProcessStatuses:l=>xt(()=>a(l))});return new Proxy(s,{get(l,d,c){return CE.has(d)?oT(d):Reflect.get(l,d,c)},has(l,d){return CE.has(d)?!1:Reflect.has(l,d)}})}function aT(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 Ai(o.reason)})(),n)}}}async function Qn(e,t){let n=aT(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 sT="A-Za-z",lT="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",wu=`${sT}${lT}`,LE=`${wu}0-9_`,uT=new RegExp(`^[${wu}]$`,"u"),cT=new RegExp(`^[${LE}]$`,"u"),pT=new RegExp(`^[${wu}][${LE}]{0,63}$`,"u");function dT(e){return uT.test(e)}function fT(e){return cT.test(e)}function bu(e){let t=e.normalize("NFC").toUpperCase();if(!pT.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function Iu(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function ET(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function RT(e,t){let n=t>0?e[t-1]:"";if(Iu(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!dT(e[l]??""))return null;for(l++;l<e.length&&fT(e[l]);)l++;s=l;try{o=bu(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&Iu(e[l]);)l++;if(l===f)return null}let d=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&ET(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Iu(u))return null;let p={profile:c,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:d,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Pu(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
14
- `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=RT(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function OE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function _E(e,t="dev",n){let r=Pu(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let m=a(g.profile),y=o.get(g.appId);y||(y=new Set,o.set(g.appId,y)),y.add(m.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let m=a(g.profile).toLowerCase(),y=`logical:${g.logicalName}@${m}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${m} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,m);l.set(y,S),s.add(S)}let d=new Map,c=new Map;for(let[g,m]of o.entries()){let y=[...m].sort();if(!(y.length<=1))for(let S of y){let A=OE(s);d.set(`physical:${g}@${S}`,A),c.set(A,{source:"physical",mappedAppId:A,appId:g,profile:S})}}let u=[],p=[],f=0,E=0,R=(g,m,y,S)=>{if(!g&&m===y)return;let A=f;u.push(g),f+=g.length,p.push({normalizedStart:A,normalizedEnd:f,sourceStart:m,sourceEnd:y,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let m=a(g.profile).toLowerCase(),y;if(g.source==="physical")y={source:"physical",mappedAppId:d.get(`physical:${g.appId}@${m}`)??g.appId,appId:g.appId,profile:m};else{let I=`logical:${g.logicalName}@${m}`,w=d.get(I);w===void 0&&(w=OE(s),d.set(I,w)),y={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:m}}c.set(y.mappedAppId,y),R(e.slice(E,g.start),E,g.start);let S=e.slice(g.referenceValueEnd,g.appEnd),A=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${y.mappedAppId}${S}`:`APP${y.mappedAppId}${S}`;R(A,g.start,g.fullEnd,y.mappedAppId),E=g.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:p}}var DE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),vE=new Set([...DE,"onLimitReached"]),gT=new Set([...vE,"variables","tempTableMaxRows"]);function UE(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Si(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function kE(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 yT(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 ME(e){if(e===void 0)return;if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("logicalApps must be an object");let t={};for(let[n,r]of Object.entries(e)){let i;try{i=bu(n)}catch{throw new TypeError(`logicalApps key "${n}" is invalid`)}if(Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(`logicalApps key "${n}" duplicates "${i}" after canonical normalization`);Si(r,`logicalApps.${n}`),t[i]=r}return t}function FE(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&&Si(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Si(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Si(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 Nu(e,t){UE(e);let n=t==="run"?vE:DE;kE(e.client);let r=FE(e,n,t==="run"?"runQuery":"explainQuery"),i=ME(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function xE(e){UE(e),kE(e.client),e.variables!==void 0&&yT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=FE(e,gT,"runBatch"),n=ME(e.logicalApps);return{client:e.client,...n===void 0?{}:{logicalApps:n},executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function Na(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,d)=>{let c=t.get(Number(l));return`${c.source==="logical"?r==="physical"?`LAPP_${c.logicalName} -> APP${c.appId}`:`LAPP_${c.logicalName}@${c.profile}`:r==="physical"?`APP${c.appId}`:`APP${c.appId}@${c.profile}`}${d??""}`})}return Array.isArray(e)?e.map(i=>Na(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Na(o,t,n)])):e}function mT(e,t,n){return e.slice(t,n)}function Ti(e,t,n){let r=Pu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${mT(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=_E(e,"browser",{resolveLogicalApp(d){let c=n?.[d];if(c===void 0)throw new Error(`ArgumentError: logical app LAPP_${d} is not defined.`);return c}}),a=[...o.appBindingByMappedApp.values()].filter(d=>d.source==="logical"),s=d=>o.appBindingByMappedApp.get(d)?.appId??d,l={getRecords:d=>t.getRecords({...d,app:s(d.app)}),openCursor:d=>t.openCursor({...d,app:s(d.app)}),getApps:()=>t.getApps(),getFields:d=>t.getFields(s(d)),getNumberPrecision:d=>t.getNumberPrecision(s(d)),getProcessStatuses:d=>t.getProcessStatuses(s(d))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function Ii(e,t){if(t.length===0)return e;let n=t.map(r=>`LAPP_${r.logicalName} -> APP${r.appId}`).filter((r,i,o)=>o.indexOf(r)===i);return e.message=`${e.message} [logical apps: ${n.join(", ")}]`,e}function wi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Na(e,n,{logicalAppDisplay:"physical"})}function Ca(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 hT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function AT(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,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function Oa(e,t=e.metrics){let n=gf(e);return{type:"query",rows:e.rows.map(hT),columns:e.columns.map(r=>AT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ca(t)}}function KE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parse();return We(r),r}function BE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parseStatements();return r.forEach(We),r}function Cu(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 GE(e){if(e instanceof se)return Xn(e.message,e);let t=pn(e);return t.code==="PARSE_ERROR"?t:Xn("SQL statement could not be parsed",e)}function ST(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return KE(e,{import:!0})}catch(t){let n=GE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Xn("This API accepts one statement; use runBatch for multiple statements",t):n}}function $E(e){if(Oi(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function VE(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return BE(e,{import:!0})}catch(t){throw GE(t)}}function TT(e){let t=$E(e),n=t.type;if(n==="IMPORT")throw $e("IMPORT is disabled by default in engine library queries");if(!gn(t))throw $e(`${n} statements are not read-only`);if(Cu(t))throw $e("APPLY statements are not allowed in engine library queries");if(!xu(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function WE(e){let t=$E(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw $e("IMPORT is disabled by default in engine library batches");if(!gn(n))throw $e(`${n.type} statements are not read-only`);if(Cu(n))throw $e("APPLY statements are not allowed in engine library batches");if(St(n.type))throw $e("DML VALIDATE ONLY statements are not supported by runBatch")}function HE(e){let t=ST(e);return TT(t),t}function YE(e){let t=VE(e);return t.forEach(WE),t}function jE(e){let t=e.trim(),n=VE(t);n.forEach(WE);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 IT(e){let t=e.error,n=t?.cause!==void 0?pn(t.cause):new we("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Su(n,e.index,e.type)}async function wT(e,t){let n=[],r=[];try{let i=xE(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=YE(o.sql);let a=await Qn(o.client,c=>wf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw IT(s);let l=[],d=a.statements.map(c=>{let u={index:c.index,type:c.type,status:c.status};if(c.tempTable!==void 0&&(u.tempTable=c.tempTable),c.rowCount!==void 0&&(u.rowCount=c.rowCount),c.error!==void 0&&(u.error={code:c.error.code,message:c.error.message}),c.skippedReason!==void 0&&(u.skippedReason=c.skippedReason),c.status==="success"&&c.result?.type==="SELECT"){u.resultIndex=l.length;let p=Oa(c.result,a.metrics);l.push(n[c.index]?.type==="EXPLAIN"?wi(p,r):p)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw Ii(Ta(i,n),r)}}function zE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function bT(e,t){let n=[];try{let r=Nu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=HE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await Qn(i.client,l=>Vl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return zE(s),Oa(s)}catch(r){throw Ii(pn(r),n)}}async function PT(e,t){let n=[],r=[];try{let i=Nu(t,"explain"),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings;let a=jE(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await Qn(o.client,f=>Vl(a.legacySql,Jn(f),i.executeOptions));zE(c);let u=wi(c.rows.map(f=>String(f.plan??"")),r),p=mu(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
15
- `),plan:p,metrics:Ca(c.metrics)}}let s=await Qn(o.client,c=>gE(o.sql,Jn(c),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=wi(s.statements.flatMap(c=>[...s.statementCount>1?[`[${c.index+1}] ${c.type}`]:[],...c.plan]),r),d=mu(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
16
- `),plan:d,metrics:Ca()}}catch(i){throw Ii(Ta(i,n),r)}}var xO="3.49.0";export{we as KsqlEngineError,iT as createReadonlyKintoneClient,PT as explainQuery,wT as runBatch,bT as runQuery,xO as version};
13
+ 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 rS(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${nS}`)}async function iS(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=$s(e.where,{fieldTypes:s,fieldOptions:l});rS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(uo(e,r));for(let E of oS(e.where))u.add(E);let p=await aS(e.appId,e.where,a,t,i);return(await be(t.getRecords,e.appId,c,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Et(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function oS(e){return Jl(e)}async function aS(e,t,n,r,i){let s=[...sS(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await du(e,r,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":n.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return _n(Z({fieldType:"__ID__"}),e,"$id");let u=n.get(c.field);if(!u)return;let p=u.semantics??Z(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return _n(f,e,u.code)}}}function sS(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 lS(e,t,n){let r=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,u)=>c+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ze(n,e.fields).payloadFields,...Nr],a=t.guards.parentRows,s=vs(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:si(l),guards:li(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return pn.set(d,Aa(o,n,e.appId)),d}function uS(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ze(n,e.assignments.map(d=>d.field)).payloadFields,...Nr],s=Lr(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:si(s.branches[0]),guards:li(s.branches[0]),deletedRows:{total:t.plans.reduce((d,c)=>d+c.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return pn.set(l,Aa(a,n,e.appId)),l}function cS(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??[...Ze(n,e.fields).payloadFields,...Nr],l=Us(t),d=l.branches.find(E=>E.branch==="insert"),c=l.branches.find(E=>E.branch==="update"),u=si(d),p=si(c),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:[...u,...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:u,guards:li(d)},update:{apply:p,guards:li(c)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((g,m)=>g+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return pn.set(f,Aa([...s],n,e.appId)),f}function si(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:rn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:rn(t,"ADD"),removedValues:rn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function li(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 At=100,me=500;function Ge(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 Aa(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:Z({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ot(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function pS(e,t,n,r,i,o){let a=await rE(e,t,n,r,i,o),s=await Ie(e.appId,n,i),l=ds(e,a,s),d=e.assignments.map(p=>p.field),c=await te(e.appId,n,i),u=await ht(e.appId,d,c,n,i);if(un(l.flatMap(p=>p.records.map(f=>f.record)),d,c,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ce("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function dS(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 fS(e,t,n,r){if(await Vn(e,t,r),yt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return yS(e,t,n,r);let i=up(e),a=(await Io(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 ce("DELETE",a.length);let s=cp(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function ES(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return kA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await ht(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ie(e.appId,t,r),d=sE(e),c=await Ei(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((g,m)=>{let y=p[m];y.type==="CASE_VALUE"?E[g]={value:Ut(y.expr,{},l.get(g))}:E[g]={value:dt(y,l.get(g))}});let R=fi(c,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),un([...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 ce("UPDATE",p)}let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});u.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:u.flat().length,updatedCount:s.length}}function sE(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"?Ce(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function mu(e,t,n,r){if(t.length===0)return;let i=await Ie(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 RS(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 be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Sa(a),l=new Map;for(let c of e.values){let u=ff(c[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,g)=>{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:ff(c[g])}}});let E=l.get(u);E?E.push(f):l.set(u,[f])}let d=[];for(let[c,u]of l.entries()){let p=s.get(c),E=[...gi(p,i),...u];d.push(lE(e.appId,c,yi(p),i,E))}for(let c of d)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function gS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];gt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&sa(p.value.expr,o);let a=await mu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=hu(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ce("UPDATE",d.length);let c=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=c.get(p.parentId);f||(f=new Map,c.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:lo(R.value,p.flat,a)}}f.set(p.rowId,E)}let u=Sa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let g=gi(E,i).map(m=>{let y=m.id??"";if(!y)return m;let S=f.get(y);return S?{id:y,value:S}:{id:y}});await t.putRecords(mS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function yS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];gt(e.where,o);let a=await mu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=hu(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new ce("DELETE",d.length);let c=new Map;for(let p of d){let f=c.get(p.parentId);f?f.push(p.rowIndex):c.set(p.parentId,[p.rowIndex])}let u=Sa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let R=gi(E,i),g=new Set(f),m=R.filter((y,S)=>!g.has(S));await t.putRecords(lE(e.appId,p,yi(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function Sa(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function hu(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=yi(r),a=gi(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...co(l,s),_pid:i};for(let[c,u]of Object.entries(r))c!==t&&(d[`_p.${c}`]=Gl(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function gi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function yi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function lE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function mS(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function hS(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 ff(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?Ce(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Gl(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 ti(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ti(e.left)||ti(e.right);case"NOT":case"GROUP":return ti(e.expr);default:return!1}}async function AS(e,t,n,r){let i=[];gt(e.where,i);let o=await mu(e.appId,i,t,r),a=await te(e.appId,t,r);if(yt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Z(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return x("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??x("string")},d=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=hu(d,e.subtableCode),u=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&ne(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new ce("UPDATE",u.size);let p=Sa(d);for(let f of u){let E=p.get(f);if(!E)continue;let g=gi(E,e.subtableCode).map((y,S)=>({row:y,i:S,flat:SS(E,e.subtableCode,y,S)}));g.sort((y,S)=>TS(y.flat,S.flat,e.by,l));let m=g.map(y=>y.row.id??"");await t.putRecords(hS(e.appId,f,yi(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:u.size}}function SS(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}`]=Gl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Gl(a?.value);return i}function TS(e,t,n,r){for(let i of n){let o=Ef(i.key,e),a=Ef(i.key,t),s=i.key.type==="FIELD_NAME"?r(Be(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?an(i.key.expr).semantics??x("string"):x("number"),l=vt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Ef(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(le(e.expr,t));case"FUNC_KEY":return ue(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Au(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await ht(e.appId,e.fields,o,t,r),s=await gu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(oE(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 c=[],u=[],p=await Ie(e.appId,t,r),f=l.map((m,y)=>{let S={};return e.fields.forEach((A,I)=>{if(s.importPresence&&!s.importPresence[y]?.has(A))return;let w=m[d[I]]??"";S[A]={value:eE(w,p.get(A))}}),S});f.forEach(m=>un([m],e.fields.filter(y=>y in m),o,a));let E=f.map(m=>e.keyFields.map(y=>String(m[y]?.value??"")));if(fa.has(e)){let m=e.keyFields.map(S=>p.get(S)==="NUMBER"),y=new Set;for(let S of E){let A=ln(S,m);if(y.has(A))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(A)}}let R=await Ei(e.appId,e.keyFields,E,t,n,p);if(f.forEach((m,y)=>{let S=fi(R,E[y]);S!==void 0?u.push({id:S,record:m}):c.push(m)}),n.confirm&&c.length+u.length>0){let m=c.length+u.length;if(!await n.confirm(m,"UPDATE"))throw new ce("UPDATE",m)}let g=[];for(let m=0;m<c.length;m+=100){let y=await t.postRecords({app:e.appId,records:c.slice(m,m+100)});g.push(y.ids)}for(let m=0;m<u.length;m+=100)await t.putRecords({app:e.appId,records:u.slice(m,m+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var IS=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),wS=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function uE(e){let t=await e.getApps(),n=[...IS],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 cE(e,t,n){let r=await te(e.appId,t,n),i=[...wS],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function bS(e,t=!1){try{let n=new Lt(e).tokenize(),r=new _t(n,{import:t}).parse();return Sn("phase15b",r),We(r),r}catch(n){throw n instanceof Se||n instanceof T,n}}async function ui(e,t,n,r,i){let o=[];na(e,t,n,r,o,i),await Promise.all(o)}async function pE(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(ui(s.condition,t,n,r,i));await Promise.all(o)}function ni(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):Ft(e,t,n,r)}function na(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(ni(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(ni(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":na(e.left,t,n,r,i,o),na(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":na(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(ni(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function dE(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Ft(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 fE(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let c=e[d];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(c.query),p=o.get(u);p||(p=ni(c.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(u,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],c)=>l.set(d,s[c])),l}var EE=new WeakMap,$l=new WeakMap,RE=new WeakMap,gE=new WeakMap;async function yE(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async g=>(o.add(g),t.getFields(g)),getProcessStatuses:async g=>(a.add(g),t.getProcessStatuses(g)),getNumberPrecision:async g=>(s.add(g),t.getNumberPrecision(g))},d=new Map,c=new Map,u=new Map,p=new Set,f=i??await pi(e,l,n),E=g=>f.nodes.find(m=>m.source===g||JSON.stringify(m.source)===JSON.stringify(g)),R=async g=>{if(g===null||typeof g!="object"||p.has(g))return;if(p.add(g),Array.isArray(g)){await Promise.all(g.map(R));return}let m=g;if(m.type==="SELECT"){let y=g;await Ea(y,l,n);let S=[y.from,...y.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(re(y).type==="PLAIN"&&!S){let U=await tu(y,l,n);U&&u.set(y,U)}let A=[y.from,...y.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(nt(y.where)||y.orderBy.length>0||y.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&A.forEach(U=>o.add(U));let{resolver:w,rewrites:C}=await tn(y,l,n);C.length>0&&$l.set(y,C);let b=ye(y.where,w),D=E(y);if(b.capability==="UNSUPPORTED"&&!D)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(b)}).`);d.set(y,b);let _=iu.get(y)??Ra(y,await ga(y,l,n));if(_&&EE.set(y,_),y.orderBy.length>0||y.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await oi(y,l,n);if(y.orderMode!=="KINTONE_NATIVE")for(let L of U.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(oa(y)&&!S&&D?.allowed!==!1){let L=b.capability==="EXACT_PUSHDOWN"?Ue(y):"FULL_SCAN";c.set(y,(y.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:y,staticMode:L,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:Ee(y.where)}))}}}else if(m.type==="VALIDATE"){let y=g;o.add(y.appId);let S=await te(y.appId,l,n),A=new Map(S.filter(h=>!h.inSubtable).map(h=>[h.code,h])),I=new Set(S.filter(h=>h.inSubtable).map(h=>h.code)),w=Os(y,S),C=Dn(y.checkGroups??[]),b=Jl(y.where);for(let h of C){if(h.field!=="$id"&&!A.has(h.field)&&!I.has(h.field))throw ge(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u306F APP${y.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(h.field!=="$id"&&!A.has(h.field)&&I.has(h.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let h of b){if(h!=="$id"&&!A.has(h)&&!I.has(h))throw new Error(`ArgumentError: WHERE field ${h} does not exist in APP${y.appId}.`);if(h!=="$id"&&!A.has(h)&&I.has(h))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let D=new Map([...A].map(([h,P])=>[h,P.fieldType]));D.set("$id","RECORD_NUMBER"),cn(y,D);let N=ye(y.where,h=>h.field==="$id"?Z({fieldType:"__ID__"}):A.get(h.field)?.semantics??(A.has(h.field)?Z(A.get(h.field)):void 0));if(N.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(N)}).`);let _=new Map([...A].map(([h,P])=>[h,P.fieldType])),U=new Map([...A.values()].flatMap(h=>h.optionOrder?[[h.code,new Set(Object.keys(h.optionOrder))]]:[])),L=y.where===null?null:N.capability==="EXACT_PUSHDOWN"?y.where:Pn(y.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:U,allowKlike:!1}),v=w.some(h=>h.field.fieldType==="NUMBER");v&&(s.add(y.appId),await st(y.appId,l,n)),RE.set(y,{targetFields:w.map(h=>h.subtableCode?`${h.subtableCode}(${h.field.code})`:h.field.code),fetchFields:[...new Set(["$id",...w.map(h=>h.subtableCode??h.field.code),...b,...C.map(h=>h.field)])],subtables:new Map([...new Set(w.flatMap(h=>h.subtableCode?[h.subtableCode]:[]))].map(h=>[h,w.filter(P=>P.subtableCode===h).length])),capability:N,prefilter:L,numberPrecision:v})}else if(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(g.appId),m.type==="UPDATE"&&g.applyBlocks?.length){let S=g,A=await te(S.appId,l,n);if(ft(S,A),ca(S)){let I=A.filter(C=>!C.inSubtable),w=$s(S.where,{fieldTypes:new Map(I.map(C=>[C.code,C.fieldType])),fieldOptions:new Map(I.flatMap(C=>C.optionOrder?[[C.code,new Set(Object.keys(C.optionOrder))]]:[]))});gE.set(S,w)}}let y=g;(y.type!=="UPDATE"||!ca(y))&&E(y)?.allowed!==!1&&await Vn(y,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Pt(e)){let g=Nt(e),{resolver:m,rewrites:y}=await tn(g,l,n);y.length>0&&$l.set(g,y);let S=ye(g.where,m),A=E(g);if(S.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(S)}).`);if(d.set(g,S),oa(g)&&A?.allowed!==!1){let I=await oi(g,l,n);c.set(g,(g.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:g,staticMode:S.capability==="EXACT_PUSHDOWN"?Ue(g):"FULL_SCAN",whereCapability:S.capability,whereReasons:S.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:Ee(g.where)}))}}return{capabilities:d,orderPlans:c,plainGroupByPlans:u,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Vl(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 PS(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 Rf(e){return e==="<>"?"!=":e}function je(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(je).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return je(t.expr);case"GROUPING_FIELD":return`GROUPING(${je(t.ref)})`;case"GROUPING_REF":return je(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${je(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${je(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(je).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(je).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Zt(e){try{let t=e;switch(t.type){case"BINARY":return`${je(t.left)} ${PS(t.op)} ${je(t.right)}`;case"NULL_CHECK":return`${je(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Zt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Zt(t.right)})`;case"NOT":return`NOT (${Zt(t.expr)})`;case"GROUP":return`(${Zt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Wl(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?NS(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=Sl(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Al(d)}: ${d}`,` ${Tl(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${c}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Zt(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=Sl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=Rf(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${Al(l)}: ${l}`,` ${Tl(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${gf(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=Sl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=Rf(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${Al(l)}: ${l}`,` ${Tl(l)}: kintone server exact prefilter`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=V(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Zt(o.residualWhere)}`,` ${gf(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 NS(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,c=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((d||c)&&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 Al(e){return J(e)?"relative date function":"kintone function"}function Sl(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 Tl(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function gf(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var mE=Symbol("ksql.explainFetchPlan");function Su(e){return e[mE]}function hE(e,t){e[mE]=t}async function AE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=me){let d=Hl(r);try{let c=Ql(e,a),u=Za(c),p=ks(c,n),f=Cf(c,p),E=new Map,R=[],g=[];for(let y=0;y<c.length;y++){let S=c[y],A=S.type==="SET_VARIABLE"?S.expr.type==="SCALAR_SUBQUERY"?{...S,expr:ia(S.expr,E)}:S:ia(S,E);We(A);let I=await pi(A,t,d),w=await yE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?Wl(I):[...Wl(I),...SE(CS(A,u.statements[y],w.capabilities,w.orderPlans,s,l,C),o)],D=Vl(w);R.push({index:y,type:u.statements[y].statementType,plan:b.length===0?D:[b[0],...D,...b.slice(1)]}),g.push({index:y,fetch:Tu(C.sources),sources:C.sources}),(S.type==="SET_VARIABLE"||S.type==="DECLARE_VARIABLE")&&E.set(S.name,S.type==="DECLARE_VARIABLE"&&S.annotation==="RELATIVE_DATE"?{type:"relative-date",value:f.get(S.name)}:S.type==="SET_VARIABLE"&&S.expr.type==="ARRAY"?{type:"array",elements:S.expr.elements.map(N=>({type:"string",value:N.value}))}:{type:"string",value:`@${S.name}`,placeholder:!0})}let m={statementCount:c.length,statements:R};return hE(m,{statements:g}),m}finally{pu(d)}}function CS(e,t,n,r,i=100,o=me,a={sources:[]}){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 ${Ke} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Jr(e.query,t,n,r,a,"main").map(s=>` ${s}`)];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 s=pa(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:",...Jr(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}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 e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`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 Jr(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`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"],l=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return l.forEach((d,c)=>{s.push(l.length>1?` subquery[${c+1}]:`:" subquery:");let u=pa(d.query)?t:{...t,tempTablesReferenced:[]};s.push(...Jr(d.query,u,n,r,a).map(p=>` ${p}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Ta(e,void 0,n,r,i,o):Jr(e,t,n,r,a)}function pa(e){if(Array.isArray(e))return e.some(pa);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(pa)}return!1}function Jr(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return Ta(e,void 0,n,r,100,me,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.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"&&a.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`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.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 s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}async function OS(e,t,n,r,i,o=100,a=me,s){let l=s??await pi(e.query,t,n),d=await yE(e.query,t,n,r,l),c={sources:[]},u=Wl(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Vl(d),...u]:[...Vl(d),...u,...SE(Ta(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans,!0,c),i)],f=ra(p,c.sources),E={type:"SELECT",columns:["plan"],rows:f.map(R=>({plan:R})),rowCount:f.length};return hE(E,{statements:[{index:0,fetch:Tu(c.sources),sources:c.sources}]}),E}function SE(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 Ta(e,t,n,r,i=100,o=me,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=US(e,n,r,s,u);return l?ra(f,u.sources):f}if(e.type==="WITH"){let f=kS(e,n,r,s,u);return l?ra(f,u.sources):f}if(e.type==="INSERT")return xS(e,t,i,o);if(e.type==="INSERT_SELECT")return KS(e,t,n,r,s);if(e.type==="UPSERT")return VS(e,t,i,o);if(e.type==="UPSERT_SELECT")return WS(e,t,n,r,s);if(e.type==="UPDATE")return BS(e,t,n,r,i,o,a);if(e.type==="DELETE")return $S(e,t);if(e.type==="REORDER")return HS(e,t);if(e.type==="VALIDATE")return DS(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.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",...R.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 f=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(R=>R.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} 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",...E?[" 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&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[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)"]}let p=ze(e,t,n,r,s,!0,!0,u,c);return l?ra(p,u.sources):p}var yf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Tu(e){return e.reduce((t,n)=>yf[t]>=yf[n.fetch]?t:n.fetch,"none")}function ra(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Tu(t).toUpperCase()}`,...n]}function LS(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Xo(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:LS(o)};return e.sources.push(s),s}function _S(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Jo(e){return` fetch: ${_S(e)}`}function DS(e,t){let n=RE.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?Xl:ql).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 vS(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function ze(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let d=n?.get(e)??(n?[...n].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),c=r?.get(e)??(r?[...r].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),p=o&&d!==void 0&&Yf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=MS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Gp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of $l.get(e)??_f.get(e)??[])R.push(vS(I));g&&(R.push(` grouping source: ${g.source}`),R.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),R.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let m=re(e);if(m.type==="PLAIN"){let I=m.allItems;if(u)u.items.forEach((w,C)=>{let b=I[C];b?.type==="FIELD_NAME"&&w.kind==="PHYSICAL"&&R.push(` group key ${b.name}: PHYSICAL (source=${w.sourceIndex}, field=${w.fieldCode})`)});else if([e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null))for(let w of I)w.type==="FIELD_NAME"&&R.push(` group key ${w.name}: DEFERRED (materialized schema unavailable)`)}for(let I of e.columns){if(I.type!=="WINDOW_COL"||I.windowKind===void 0||I.windowKind==="RANKING")continue;let w=[];I.partitionBy.length>0&&w.push(`PARTITION BY ${I.partitionBy.map(C=>C.tableAlias?`${C.tableAlias}.${C.field}`:C.field).join(", ")}`),I.orderBy.length>0&&w.push(`ORDER BY ${I.orderBy.map(TE).join(", ")}`),I.windowKind==="VALUE"?R.push(` window ${I.alias}: ${I.valueFunc}(offset=${I.offset}) OVER (${w.join(" ")})`):I.windowKind==="AGGREGATE"&&(R.push(` window ${I.alias}: ${I.aggFunc} OVER (${w.join(" ")})`),R.push(I.frame===null?" frame: PARTITION ENTIRE":` frame: ${I.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${I.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let I=e.where===null?"":V(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${I}${I?" ":""}limit 1`),a){let w=Xo(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${I}${I?" ":""}limit 1`);R.push(Jo(w))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}c?(R.push(` order plan: ${c.kind}`),c.reasonCodes.length>0&&R.push(` order reason: ${c.reasonCodes.join(", ")}`),c.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):c.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${c.scanRows}`))):g&&R.push(" order plan: CANONICAL_LOCAL");let y=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,S=St(y);c?.requiresCompleteInput&&S.add("LOCAL_ORDER");let A=yt(e.where);if(S.size>0&&(!A||g!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...S].join(", ")}`),R.push(" onLimit=truncate: disabled")),A)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let I=Bi(c?.kind==="CANONICAL_REST_TOP_N"?Bf(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=c?.kind==="KORDER_CURSOR"?Vs(e):I.query;if(R.push(` kintone query: ${w||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let C=w?"EXACT":"ALL";R.push(Jo(Xo(s,e.from.appId,e.from.alias,l,C,w)))}R.push(` fields: ${I.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":I.fields.join(", ")}`)}else{let I=EE.get(e),w=I??Cn(e);if(e.joins.length>0)if(I){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),I.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${I.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${I.joinPlan.residualWhere===null?"(none)":Zt(I.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${I.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${I.joinPlan.allKlikes.length-I.joinPlan.appliedKlikes.size}`),I.joinPlan.residualWhere!==null)for(let P of I.joinPlan.rejections)R.push(` join pushdown not applied: ${P.reason}`)}else{let P=e.joins.some(M=>M.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied"),R.push(` join pushdown not applied: ${P}`)}let C=$t(e,e.from,u),b=e.from.alias?` AS ${e.from.alias}`:"",D=w.mainCondition,N=Ff(e),_=e.joins.length===0&&d?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!bt(e.where)?V(e.where):"",U=e.from.alias?I?.queriesByAlias.get(e.from.alias):void 0,L=U||(D!==null?V(D):_||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${b} (${e.from.appId})`),R.push(` kintone query: ${L}`);let v=I?.joinPlan.items.find(P=>P.targetAlias===e.from.alias),h=I?.joinPlan.serverFunctionConsumptions.find(P=>P.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let P=!I&&N!==null,M=L==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":P?"PREFILTERED":v?.relation==="exact"||h||_!==""?"EXACT":"PREFILTERED";R.push(Jo(Xo(s,e.from.appId,e.from.alias,l,M,L,P)))}v||h?(R.push(` pushdown applied: ${U}`),R.push(` relation: ${v?.relation??"exact"}`)):!I&&N!==null&&R.push(` pushdown candidate: ${V(N)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${C.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":C.join(", ")}`);for(let P of e.joins){let M=$t(e,P.table,u),O=P.table.alias?` AS ${P.table.alias}`:"",K=P.type==="INNER"?"JOIN":`${P.type} JOIN`,j=P.table.alias?w.joinConditions.get(P.table.alias)??null:null,q=P.table.alias&&!P.table.subtableCode&&P.table.cteName===null&&e.where?ur(e.where,{tableAlias:P.table.alias}):null,k=P.table.alias?I?.queriesByAlias.get(P.table.alias):void 0,$=k||(j!==null?V(j):"(\u5168\u4EF6\u53D6\u5F97)");R.push(` ${K}: APP${P.table.appId}${O} (${P.table.appId})`),R.push(` kintone query: ${$}`);let X=I?.joinPlan.items.find(F=>F.targetAlias===P.table.alias),G=I?.joinPlan.serverFunctionConsumptions.find(F=>F.targetAlias===P.table.alias);if(a&&P.table.cteName===null){let F=!I&&q!==null,de=$==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":F?"PREFILTERED":X?.relation==="exact"||G?"EXACT":"PREFILTERED";R.push(Jo(Xo(s,P.table.appId,P.table.alias,"join",de,$,F)))}X||G?(R.push(` pushdown applied: ${k}`),R.push(` relation: ${X?.relation??"exact"}`)):!I&&q!==null&&R.push(` pushdown candidate: ${V(q)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return R.push(...FS(e,n,r,i,s)),R}function US(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,d)=>{d>0&&s.push(""),s.push(...ze(l,`[union:${d+1}]`,t,n,r,!0,!0,i,"union"))}),s}function kS(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)a.query.type==="SELECT"&&(o.push(...ze(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...Ta(e.query,"[main]",t,n,100,me,1e4,r,!1,i)),Pt(e)){o.push("");let a=Nt(e);o.push(...ze(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function MS(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=re(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"),bt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),It(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 FS(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function xS(e,t,n=At,r=me){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,...Iu(So(e,n,r))]:a}function KS(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function BS(e,t,n,r,i=100,o=me,a=1e4){if(e.applyBlocks?.length)return GS(e,t,i,o,a);let s=op(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=so(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?ci(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${ci(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(yt(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"),c&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!c&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),d){let f=YS(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${zS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ze(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function GS(e,t,n,r,i){let o=So(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"}),c=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],u=c.includes("REMOVE"),p=gE.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: ${ci(e.where)}`,`parent cardinality: ${ut(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${c.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=${u?"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: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Iu(o)]}function $S(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ci(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(yt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function VS(e,t,n=At,r=me){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,...Iu(So(e,n,r))]:a}function Iu(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 WS(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function HS(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(TE).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,yt(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: ${ci(e.where)}`),o}function TE(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ci(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 YS(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&da(n,t),n.type==="STRING_FUNC"&&da(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&ri(n,t);return[...t]}function da(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"&&(da(e.left,t),da(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t)}async function IE(e,t,n,r,i){let o=Ru(e),a=await Ie(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 Ie(t.appId,n,r),d=new Set,c=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 ge(`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 ge(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else throw ge(`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 ge(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw ge(`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 u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...c],evaluationTypes:u}}function jS(e,t,n){if(!e)return{};let r=Et(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 ri(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_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(ri(e.left,t),ri(e.right,t))}function zS(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} = ${wE(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 wE(e){return`${mf(e.left)} ${e.op} ${mf(e.right)}`}function mf(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"?`(${wE(e)})`:"..."}var ce=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 we=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 wu(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 $e(e){return new we("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new we("PARSE_ERROR",e,t)}function bE(){let e=new on;return new we("SEARCH_ABORTED",e.message,e)}function mi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function qS(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 dn(e){return e instanceof we?e:e instanceof Se||e instanceof T?new we("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new we("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new we("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new we("CLIENT_ERROR",e.message,e.cause):qS(e)?new we("CLIENT_ERROR",mi(e),e):new we("EXECUTION_ERROR",mi(e),e)}function Ia(e,t){let n=dn(e);if(e instanceof Q){let r=t[e.statementIndex];if(r!==void 0)return wu(n,e.statementIndex,r.type)}return n}var XS=2,wa=5,JS=3e4,QS=10*6e4+3e4,ba=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??XS;if(!Number.isSafeInteger(r)||r<1||r>wa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wa}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??JS,this.quarantineMs=n.quarantineMs??QS}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 Do(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>wa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wa}.`)}};function ZS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function eT(e,t=r=>new Promise(i=>setTimeout(i,r)),n=ZS){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 tT(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 PE(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 tT(eT(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function NE(e){return CE(e,rT(e))}function CE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=iT(o.options),s=oT(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Pa(o.minValue),maxValue:Pa(o.maxValue),minLength:Pa(o.minLength),maxLength:Pa(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!nT.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...CE(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var nT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function rT(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 Pa(e){return e==null||e===""?void 0:e}function iT(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 oT(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function OE(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 aT="Filter aborted because of too many search results";function LE(e){return e?.includes(aT)===!0}var _E="/k/v1/records.json",Na="/k/v1/records/cursor.json",sT=4096,lT=2,bu=e=>kintone.api.url(e,!0);function uT(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(_E,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=sT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:bu(_E),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 hi(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(`
14
+ `));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 cT(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return hi({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}),hi(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}),hi(n)}}function pT(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function fn(e,t,n){try{return await kintone.api(bu(e),t,n)}catch(r){throw hi(r)}}function dT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function fT(e={}){let t=e.cursorMaxActive??lT;dT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=uT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await cT(l);let d=await l.json();return LE(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw hi(s)}},async openCursor(a){let s=bu(Na),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 ba(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(),c;try{c=await n.runCreate(()=>fn(Na,"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 vo(R))}let u=c.id,p=PE(Number(c.totalCount),{get:()=>fn(Na,"GET",{id:u}),delete:()=>fn(Na,"DELETE",{id:u}),isAlreadyReleasedError:pT,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 fn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of d.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await fn("/k/v1/app/form/fields.json","GET",{app:a});return NE(s.properties)},async getNumberPrecision(a){let s=await fn("/k/v1/app/settings.json","GET",{app:a});return wp(s)},async getProcessStatuses(a){let s=await fn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:OE(s.states)}}}}var DE=new Set(["postRecords","putRecords","deleteRecords"]),Ai=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 xt(e){try{return await e()}catch(t){throw new Ai(t)}}function ET(e){return()=>{throw $e(`${String(e)} is blocked by the readonly client`)}}function Jn(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 xt(()=>t(l));if(d.searchAborted===!0)throw bE();return d},openCursor:async l=>{let d=await xt(()=>n(l)),c=d.nextPage.bind(d),u=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>xt(()=>c()),close:()=>xt(()=>u())}},getApps:()=>xt(()=>r()),getFields:l=>xt(()=>i(l)),getNumberPrecision:l=>xt(()=>o(l)),getProcessStatuses:l=>xt(()=>a(l))});return new Proxy(s,{get(l,d,c){return DE.has(d)?ET(d):Reflect.get(l,d,c)},has(l,d){return DE.has(d)?!1:Reflect.has(l,d)}})}function RT(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 Ai(o.reason)})(),n)}}}async function Qn(e,t){let n=RT(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 gT="A-Za-z",yT="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Nu=`${gT}${yT}`,UE=`${Nu}0-9_`,mT=new RegExp(`^[${Nu}]$`,"u"),hT=new RegExp(`^[${UE}]$`,"u"),AT=new RegExp(`^[${Nu}][${UE}]{0,63}$`,"u");function ST(e){return mT.test(e)}function TT(e){return hT.test(e)}function Cu(e){let t=e.normalize("NFC").toUpperCase();if(!AT.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function Pu(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function IT(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function wT(e,t){let n=t>0?e[t-1]:"";if(Pu(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!ST(e[l]??""))return null;for(l++;l<e.length&&TT(e[l]);)l++;s=l;try{o=Cu(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&Pu(e[l]);)l++;if(l===f)return null}let d=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&IT(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Pu(u))return null;let p={profile:c,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:d,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Ou(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
15
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=wT(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function vE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function kE(e,t="dev",n){let r=Ou(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let m=a(g.profile),y=o.get(g.appId);y||(y=new Set,o.set(g.appId,y)),y.add(m.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let m=a(g.profile).toLowerCase(),y=`logical:${g.logicalName}@${m}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${m} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,m);l.set(y,S),s.add(S)}let d=new Map,c=new Map;for(let[g,m]of o.entries()){let y=[...m].sort();if(!(y.length<=1))for(let S of y){let A=vE(s);d.set(`physical:${g}@${S}`,A),c.set(A,{source:"physical",mappedAppId:A,appId:g,profile:S})}}let u=[],p=[],f=0,E=0,R=(g,m,y,S)=>{if(!g&&m===y)return;let A=f;u.push(g),f+=g.length,p.push({normalizedStart:A,normalizedEnd:f,sourceStart:m,sourceEnd:y,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let m=a(g.profile).toLowerCase(),y;if(g.source==="physical")y={source:"physical",mappedAppId:d.get(`physical:${g.appId}@${m}`)??g.appId,appId:g.appId,profile:m};else{let I=`logical:${g.logicalName}@${m}`,w=d.get(I);w===void 0&&(w=vE(s),d.set(I,w)),y={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:m}}c.set(y.mappedAppId,y),R(e.slice(E,g.start),E,g.start);let S=e.slice(g.referenceValueEnd,g.appEnd),A=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${y.mappedAppId}${S}`:`APP${y.mappedAppId}${S}`;R(A,g.start,g.fullEnd,y.mappedAppId),E=g.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:p}}var ME=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),FE=new Set([...ME,"onLimitReached"]),bT=new Set([...FE,"variables","tempTableMaxRows"]);function xE(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Si(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function KE(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 PT(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 BE(e){if(e===void 0)return;if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("logicalApps must be an object");let t={};for(let[n,r]of Object.entries(e)){let i;try{i=Cu(n)}catch{throw new TypeError(`logicalApps key "${n}" is invalid`)}if(Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(`logicalApps key "${n}" duplicates "${i}" after canonical normalization`);Si(r,`logicalApps.${n}`),t[i]=r}return t}function GE(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&&Si(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Si(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Si(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 Lu(e,t){xE(e);let n=t==="run"?FE:ME;KE(e.client);let r=GE(e,n,t==="run"?"runQuery":"explainQuery"),i=BE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function $E(e){xE(e),KE(e.client),e.variables!==void 0&&PT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=GE(e,bT,"runBatch"),n=BE(e.logicalApps);return{client:e.client,...n===void 0?{}:{logicalApps:n},executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function Ca(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,d)=>{let c=t.get(Number(l));return`${c.source==="logical"?r==="physical"?`LAPP_${c.logicalName} -> APP${c.appId}`:`LAPP_${c.logicalName}@${c.profile}`:r==="physical"?`APP${c.appId}`:`APP${c.appId}@${c.profile}`}${d??""}`})}return Array.isArray(e)?e.map(i=>Ca(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ca(o,t,n)])):e}function NT(e,t,n){return e.slice(t,n)}function Ti(e,t,n){let r=Ou(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${NT(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=kE(e,"browser",{resolveLogicalApp(d){let c=n?.[d];if(c===void 0)throw new Error(`ArgumentError: logical app LAPP_${d} is not defined.`);return c}}),a=[...o.appBindingByMappedApp.values()].filter(d=>d.source==="logical"),s=d=>o.appBindingByMappedApp.get(d)?.appId??d,l={getRecords:d=>t.getRecords({...d,app:s(d.app)}),openCursor:d=>t.openCursor({...d,app:s(d.app)}),getApps:()=>t.getApps(),getFields:d=>t.getFields(s(d)),getNumberPrecision:d=>t.getNumberPrecision(s(d)),getProcessStatuses:d=>t.getProcessStatuses(s(d))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function Ii(e,t){if(t.length===0)return e;let n=t.map(r=>`LAPP_${r.logicalName} -> APP${r.appId}`).filter((r,i,o)=>o.indexOf(r)===i);return e.message=`${e.message} [logical apps: ${n.join(", ")}]`,e}function wi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ca(e,n,{logicalAppDisplay:"physical"})}function Oa(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 CT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function OT(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,displayName:n?.displayName??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=hf(e);return{type:"query",rows:e.rows.map(CT),columns:e.columns.map(r=>OT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Oa(t)}}function VE(e,t={}){let n=new Lt(e).tokenize(),r=new _t(n,t).parse();return We(r),r}function WE(e,t={}){let n=new Lt(e).tokenize(),r=new _t(n,t).parseStatements();return r.forEach(We),r}function _u(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 HE(e){if(e instanceof se)return Xn(e.message,e);let t=dn(e);return t.code==="PARSE_ERROR"?t:Xn("SQL statement could not be parsed",e)}function LT(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return VE(e,{import:!0})}catch(t){let n=HE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Xn("This API accepts one statement; use runBatch for multiple statements",t):n}}function YE(e){if(Li(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function jE(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return WE(e,{import:!0})}catch(t){throw HE(t)}}function _T(e){let t=YE(e),n=t.type;if(n==="IMPORT")throw $e("IMPORT is disabled by default in engine library queries");if(!yn(t))throw $e(`${n} statements are not read-only`);if(_u(t))throw $e("APPLY statements are not allowed in engine library queries");if(!Gu(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function zE(e){let t=YE(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw $e("IMPORT is disabled by default in engine library batches");if(!yn(n))throw $e(`${n.type} statements are not read-only`);if(_u(n))throw $e("APPLY statements are not allowed in engine library batches");if(Tt(n.type))throw $e("DML VALIDATE ONLY statements are not supported by runBatch")}function qE(e){let t=LT(e);return _T(t),t}function XE(e){let t=jE(e);return t.forEach(zE),t}function JE(e){let t=e.trim(),n=jE(t);n.forEach(zE);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 DT(e){let t=e.error,n=t?.cause!==void 0?dn(t.cause):new we("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return wu(n,e.index,e.type)}async function vT(e,t){let n=[],r=[];try{let i=$E(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=XE(o.sql);let a=await Qn(o.client,c=>Nf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw DT(s);let l=[],d=a.statements.map(c=>{let u={index:c.index,type:c.type,status:c.status};if(c.tempTable!==void 0&&(u.tempTable=c.tempTable),c.rowCount!==void 0&&(u.rowCount=c.rowCount),c.error!==void 0&&(u.error={code:c.error.code,message:c.error.message}),c.skippedReason!==void 0&&(u.skippedReason=c.skippedReason),c.status==="success"&&c.result?.type==="SELECT"){u.resultIndex=l.length;let p=La(c.result,a.metrics);l.push(n[c.index]?.type==="EXPLAIN"?wi(p,r):p)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw Ii(Ia(i,n),r)}}function QE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function UT(e,t){let n=[];try{let r=Lu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=qE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await Qn(i.client,l=>Yl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return QE(s),La(s)}catch(r){throw Ii(dn(r),n)}}async function kT(e,t){let n=[],r=[];try{let i=Lu(t,"explain"),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings;let a=JE(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await Qn(o.client,f=>Yl(a.legacySql,Jn(f),i.executeOptions));QE(c);let u=wi(c.rows.map(f=>String(f.plan??"")),r),p=Su(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
16
+ `),plan:p,metrics:Oa(c.metrics)}}let s=await Qn(o.client,c=>AE(o.sql,Jn(c),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=wi(s.statements.flatMap(c=>[...s.statementCount>1?[`[${c.index+1}] ${c.type}`]:[],...c.plan]),r),d=Su(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
+ `),plan:d,metrics:Oa()}}catch(i){throw Ii(Ia(i,n),r)}}var jO="3.51.0";export{we as KsqlEngineError,fT as createReadonlyKintoneClient,kT as explainQuery,vT as runBatch,UT as runQuery,jO as version};