@rex0220/kintone-sql-tools 3.48.0 → 3.49.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,15 +1,16 @@
1
- "use strict";(()=>{async function be(e,t,n,r,i={}){let o=i.pageSize??tR,a=Math.max(1,i.parallel??nR),s=i.maxRecords??rR,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=Mu(n,R),y=await ku(e,t,m,u,o,g);if(Uu(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=Fu(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=Mu(n,R),b=await Promise.all(w.map(N=>ku(e,t,C,u,o,N)));for(let N of b)Uu(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=Fu(N.records),g=0}}return p}function Uu(e,t){e.searchAborted&&t.onSearchAborted?.()}function xu(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 tR=500,nR=1,rR=1e4,La=1e4;async function ku(e,t,n,r,i,o){let a=iR(n,i,o);return e({app:t,query:a,fields:r})}function Mu(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 iR(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Fu(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 oR=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function aR(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=oR.exec(e.trim());if(t===null)return null;let n=aR(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 sR(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 Ku(e){let t=_e(e);return t===null?null:sR(t)}function lR(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=lR(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 Ae(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Ku(t)??t}function Bu(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 uR(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=uR(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 Gu(e){return re(e).type!=="NONE"}function $u(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 cR(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)&&(cR(e.type)||St(e.type))}function Vu(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 Wu=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Se(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"&&Wu.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"&&!Wu.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":Se(t,Rn(e));break;case"UNION":Se(t,Yu(e));break;case"WITH":for(let n of e.ctes)Se(t,At(n.query));Se(t,At(e.query));break;case"CREATE_TEMP_TABLE":Se(t,At(e.query));break;default:break}return Ni(e)&&t.add("STATISTICAL_AGGREGATE"),Ci(e)&&t.add("AGGREGATE"),t}function Hu(e){return At(e).size>0}function Yu(e){let t=e.left.type==="SELECT"?Rn(e.left):Yu(e.left);return Se(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"&&Se(t,Rn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Se(t,En(i.condition));return Se(t,En(e.where)),Se(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")&&Se(t,Rn(e.right.query));break;case"LOGICAL":Se(t,En(e.left)),Se(t,En(e.right));break;case"NOT":case"GROUP":Se(t,En(e.expr));break;case"EXISTS":Se(t,Rn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function ju(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function zu(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 pR=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 dR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function fR(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 dR(e,()=>ER(t,pR[e]))}function ER(e,t){let n=fR(e);if(n===null)return;if(n.type==="UPSERT"){gR(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"){yR(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"),mR(i.where,t.multipleParents),Xu(r,t)}function Xu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Ju(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"&&qu(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"&&qu(r.selector.where,t.idxSelectors)}}}}function Ju(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 RR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Qu(e,t){if(Ju(e),e.targetKind==="MULTI_VALUE"){if(!RR.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 gR(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"),Xu(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 yR(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 ec(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 mR(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 qu(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=hR(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 hR(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 tc(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 Ee(e){if(e===null)return!1;if(It(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 AR(e);case"NULL_CHECK":return TR(e);case"LOGICAL":return IR(e);case"NOT":return wR(e);case"GROUP":return bR(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 AR(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=rc(e.left),n=SR(e.op),r=PR(e.right,e.op);return`${t} ${n} ${r}`}function SR(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 TR(e){let t=rc(e.field);return e.not?`${t} != ""`:`${t} = ""`}function IR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=nc(e.left)?`(${t})`:t,o=nc(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function wR(e){return V(tr(e.expr))}function bR(e){return`(${V(e.expr)})`}function rc(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 UR(e.field)}function PR(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 ic(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return oc(e);case"IN_LIST":return DR(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 ic(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function oc(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return NR(e)}function NR(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"||!LR(e.args.offset,e.args.offsetText)||!CR.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&&!OR.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"||!_R(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var CR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),OR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function LR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function _R(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 DR(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 vR(e.values),`(${e.values.map(r=>r.type==="STRING"?ic(r):r.type==="NUMBER"?H(r):oc(r)).join(",")})`}function vR(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 UR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function nc(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 ac(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 lc(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(lc).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`${ac(e.left)} ${e.op.replace("_"," ")} ${lc(e.right)}`;case"NULL_CHECK":return`${ac(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 sc(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 ${sc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${sc(e.elseResult)}`;return`CASE ${t}${n} END`}function kR(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(kR).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 MR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e,!0):Gt(e)}function ae(e,t,n){let r=MR(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 uc=Symbol("ksql.groupingRowMeta"),cc=new WeakMap;function pc(e,t){return Object.defineProperty(e,uc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function FR(e){return e[uc]}function xR(e){return FR(e)?.includedCanonicalIds}function dc(e,t){cc.set(e,t)}function In(e,t){let n=xR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=cc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Ec=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 KR(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 BR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function fc(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 GR(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).`);dc(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 $R(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 Rc(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=$u(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)GR(c,t,a);let l=BR(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)||fc(u)||Ka(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of $R(c.key))u.tableAlias===null&&l.has(u.field)||fc(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(!KR(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 VR(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||VR(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"&&Ac(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 gc(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 gc(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function gc(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(WR).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:HR(e.columns),totalCount:!1}}function hc(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=Tc(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 WR(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 HR(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 YR(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"?YR(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)jR(n,t)}function jR(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)yc(n.result,t);e.elseResult&&yc(e.elseResult,t)}}function yc(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"&&zR(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 zR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ar(e,t):wn(e,t)}function Ac(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"?Ac(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>mc(t.result))||e.elseResult!==null&&mc(e.elseResult):!1}function mc(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 Sc(e,t){let n=new Set,r=Tc(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Tc(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=qR(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")&&XR(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 qR(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 XR(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||Gu(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:Ic(e.left,t)};case"NULL_CHECK":return{...e,field:Ic(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 Ic(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function bn(e,t={}){return lr(e,n=>JR(n,t))}function ur(e,t={}){return lr(e,n=>wc(n,t)||bc(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 JR(e,t){return QR(e,t)||tg(e,t)?!0:wc(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":eg(e,t)}function QR(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 ZR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function eg(e,t){if(!bc(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||!ZR.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 tg(e,t){return!ng(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function ng(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 wc(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 bc(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||!og(l,a)||o===null||!Pc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ig(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 rg(c,e,l),c}function rg(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(!Pc(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 ig(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 og(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Pc(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 Nc(e){Cc(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 Cc(e){switch(e.type){case"SELECT":Cn(e);return;case"UNION":za(e);return;case"WITH":Oc(e);return;case"EXPLAIN":Cc(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)&&Ee(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&&Ee(e.where)&&!lg(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&&Ee(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):Oc(e)}function za(e){ja(e.left),Cn(e.right)}function Oc(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(sg(e),Ee(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(ag(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 ag(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 sg(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 lg(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&&ug(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 ug(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 Lc(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(cg(t))throw new pr;return;default:return}}function cg(e){let t=!1;return Yi(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||pg(n.where)&&(t=!0)}),t}function pg(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){dg(e),Lc(e),Nc(e)}function dg(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,_c=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 fg=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&&fg.has(String(r.op));qa(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function Eg(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&&Eg(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>_c)throw new Q(`ParseError: batch exceeds ${_c} 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:ju(u),insertValuesCount:zu(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:Hu(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 Te=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 Te(`\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 Te("\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 Te("\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 Te("\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&&Dc(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 Te("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Dc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Te(`@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 Te("\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 Te("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";(()=>{async function be(e,t,n,r,i={}){let o=i.pageSize??nR,a=Math.max(1,i.parallel??rR),s=i.maxRecords??iR,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=Mu(n,R),y=await ku(e,t,m,u,o,g);if(Uu(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=Fu(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=Mu(n,R),b=await Promise.all(w.map(N=>ku(e,t,C,u,o,N)));for(let N of b)Uu(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=Fu(N.records),g=0}}return p}function Uu(e,t){e.searchAborted&&t.onSearchAborted?.()}function xu(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 nR=500,rR=1,iR=1e4,La=1e4;async function ku(e,t,n,r,i,o){let a=oR(n,i,o);return e({app:t,query:a,fields:r})}function Mu(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 oR(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Fu(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 aR=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function sR(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=aR.exec(e.trim());if(t===null)return null;let n=sR(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 lR(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 Ku(e){let t=_e(e);return t===null?null:lR(t)}function uR(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=uR(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 Ae(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Ku(t)??t}function Bu(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 cR(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=cR(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 Gu(e){return re(e).type!=="NONE"}function $u(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 pR(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)&&(pR(e.type)||St(e.type))}function Vu(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 Wu=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Se(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"&&Wu.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"&&!Wu.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":Se(t,Rn(e));break;case"UNION":Se(t,Yu(e));break;case"WITH":for(let n of e.ctes)Se(t,At(n.query));Se(t,At(e.query));break;case"CREATE_TEMP_TABLE":Se(t,At(e.query));break;default:break}return Ni(e)&&t.add("STATISTICAL_AGGREGATE"),Ci(e)&&t.add("AGGREGATE"),t}function Hu(e){return At(e).size>0}function Yu(e){let t=e.left.type==="SELECT"?Rn(e.left):Yu(e.left);return Se(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"&&Se(t,Rn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Se(t,En(i.condition));return Se(t,En(e.where)),Se(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")&&Se(t,Rn(e.right.query));break;case"LOGICAL":Se(t,En(e.left)),Se(t,En(e.right));break;case"NOT":case"GROUP":Se(t,En(e.expr));break;case"EXISTS":Se(t,Rn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function ju(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function zu(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 dR=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 fR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function ER(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 fR(e,()=>RR(t,dR[e]))}function RR(e,t){let n=ER(e);if(n===null)return;if(n.type==="UPSERT"){yR(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"){mR(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"),hR(i.where,t.multipleParents),Xu(r,t)}function Xu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Ju(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"&&qu(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"&&qu(r.selector.where,t.idxSelectors)}}}}function Ju(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 gR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Qu(e,t){if(Ju(e),e.targetKind==="MULTI_VALUE"){if(!gR.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 yR(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"),Xu(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 mR(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 ec(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 hR(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 qu(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=AR(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 AR(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 tc(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 Ee(e){if(e===null)return!1;if(It(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 SR(e);case"NULL_CHECK":return IR(e);case"LOGICAL":return wR(e);case"NOT":return bR(e);case"GROUP":return PR(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 SR(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=rc(e.left),n=TR(e.op),r=NR(e.right,e.op);return`${t} ${n} ${r}`}function TR(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 IR(e){let t=rc(e.field);return e.not?`${t} != ""`:`${t} = ""`}function wR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=nc(e.left)?`(${t})`:t,o=nc(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function bR(e){return V(tr(e.expr))}function PR(e){return`(${V(e.expr)})`}function rc(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 kR(e.field)}function NR(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 ic(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return oc(e);case"IN_LIST":return vR(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 ic(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function oc(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return CR(e)}function CR(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"||!_R(e.args.offset,e.args.offsetText)||!OR.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&&!LR.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"||!DR(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var OR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),LR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function _R(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function DR(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 vR(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 UR(e.values),`(${e.values.map(r=>r.type==="STRING"?ic(r):r.type==="NUMBER"?H(r):oc(r)).join(",")})`}function UR(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 kR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function nc(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 ac(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 lc(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(lc).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`${ac(e.left)} ${e.op.replace("_"," ")} ${lc(e.right)}`;case"NULL_CHECK":return`${ac(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 sc(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 ${sc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${sc(e.elseResult)}`;return`CASE ${t}${n} END`}function MR(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(MR).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 FR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e,!0):Gt(e)}function ae(e,t,n){let r=FR(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 uc=Symbol("ksql.groupingRowMeta"),cc=new WeakMap;function pc(e,t){return Object.defineProperty(e,uc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function xR(e){return e[uc]}function KR(e){return xR(e)?.includedCanonicalIds}function dc(e,t){cc.set(e,t)}function In(e,t){let n=KR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=cc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Ec=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 BR(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 GR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function fc(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 $R(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).`);dc(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 VR(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 Rc(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=$u(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)$R(c,t,a);let l=GR(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)||fc(u)||Ka(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of VR(c.key))u.tableAlias===null&&l.has(u.field)||fc(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(!BR(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 WR(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||WR(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"&&Ac(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 gc(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 gc(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function gc(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(HR).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:YR(e.columns),totalCount:!1}}function hc(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=Tc(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 HR(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 YR(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 jR(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"?jR(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)zR(n,t)}function zR(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)yc(n.result,t);e.elseResult&&yc(e.elseResult,t)}}function yc(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"&&qR(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 qR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ar(e,t):wn(e,t)}function Ac(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"?Ac(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>mc(t.result))||e.elseResult!==null&&mc(e.elseResult):!1}function mc(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 Sc(e,t){let n=new Set,r=Tc(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Tc(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=XR(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")&&JR(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 XR(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 JR(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||Gu(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:Ic(e.left,t)};case"NULL_CHECK":return{...e,field:Ic(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 Ic(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function bn(e,t={}){return lr(e,n=>QR(n,t))}function ur(e,t={}){return lr(e,n=>wc(n,t)||bc(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 ZR(e,t)||ng(e,t)?!0:wc(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":tg(e,t)}function ZR(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 eg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function tg(e,t){if(!bc(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||!eg.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 ng(e,t){return!rg(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function rg(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 wc(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 bc(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||!ag(l,a)||o===null||!Pc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:og(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 ig(c,e,l),c}function ig(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(!Pc(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 og(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 ag(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Pc(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 Nc(e){Cc(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 Cc(e){switch(e.type){case"SELECT":Cn(e);return;case"UNION":za(e);return;case"WITH":Oc(e);return;case"EXPLAIN":Cc(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)&&Ee(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&&Ee(e.where)&&!ug(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&&Ee(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):Oc(e)}function za(e){ja(e.left),Cn(e.right)}function Oc(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(lg(e),Ee(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(sg(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 sg(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 lg(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 ug(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&&cg(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 cg(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 Lc(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(pg(t))throw new pr;return;default:return}}function pg(e){let t=!1;return Yi(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||dg(n.where)&&(t=!0)}),t}function dg(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){fg(e),Lc(e),Nc(e)}function fg(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,_c=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 Eg=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&&Eg.has(String(r.op));qa(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function Rg(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&&Rg(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>_c)throw new Q(`ParseError: batch exceeds ${_c} 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:ju(u),insertValuesCount:zu(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:Hu(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 Te=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 Te(`\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 Te("\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 Te("\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 Te("\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&&Dc(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 Te("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Dc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Te(`@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 Te("\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 Te("\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 Te("\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||Rg(t)}function Dc(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 Rg(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Uc=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"}),Mc=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"}),XI=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),gg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),yg=new Set(gg);function mg(e){return yg.has(e)}var Fc=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 kc(e){return Er[e]!==void 0}var hg=Object.freeze([...Li]),Ag=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Sg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Tg(e){return Ag.has(e)}function Ig(e){return Sg.has(e)}function wg(e){return Number.isInteger(e)&&e>=1&&e<=31}var JI=Object.freeze(Array.from(new Set([...Object.keys(Za),...Mc,...Object.keys(fr),...Object.keys(Fc),...Object.keys(Er),...hg,"IF"]))),bg=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 Pg(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!bg.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"}},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>Uc)throw new T(`batch exceeds ${Uc} 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&&Pg(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("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u3092\u5F0F\u306B\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002CTE \u3067\u4E00\u5EA6\u5B9F\u4F53\u5316\u3057\u3066\u304F\u3060\u3055\u3044",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 Fc[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("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u3092\u5F0F\u306B\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002CTE \u3067\u4E00\u5EA6\u5B9F\u4F53\u5316\u3057\u3066\u304F\u3060\u3055\u3044",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"?Ae(`-${H(n)}`):{type:"AGG_ARITH",left:Ae("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ae(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 Ae(`${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:Ae("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ae(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 Ae(`+${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"?Ae(`-${H(n)}`):{type:"ARITH",left:Ae("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ae(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(Mc.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=Ng(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(!mg(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(!Tg(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(!Ig(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(!wg(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(kc(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(Ae(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(Ae(`${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=Bu(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(Ae(`${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(Ae(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(kc(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 Ng(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 Cg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Og=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":Og.has(e.fieldType)?t="option":Cg.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 Lg(e,t){return e<t?-1:e>t?1:0}function xc(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 _g(e,t){let n=xc(e),r=xc(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 Dg(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 vg(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 Bc(e,t){let n=t.optionOrder??new Map,i=[...new Set(vg(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(Gc),i}function Gc(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 Ug(e,t,n){let r=Bc(e,n),i=Bc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Gc(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 _g(e,t);case"recordNumber":return Dg(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Ug(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 $c(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):Lg(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 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 vt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Yc(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 Re(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 kg(e){return e>=55296&&e<=56319}function Mg(e){return e>=56320&&e<=57343}function Zi(e,t){return t>0&&t<e.length&&kg(e.charCodeAt(t-1))&&Mg(e.charCodeAt(t))}function Vc(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 Fg(e,t){let n=Math.max(0,e.length-t);return Zi(e,n)&&(n+=1),e.slice(n)}function xg(e,t,n){let r=Vc(t,e.length),i=Vc(n,e.length);return i<=r?"":(Zi(e,r)&&(r+=1),Zi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Kg(e,t){let n=e.repeat(Math.ceil(t/e.length));return ts(n,t)}var Bg=200,Rr=new Map;function Gg(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=Gg(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>=Bg){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function $g(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Vg(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 Wg(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 Hg(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 Wg(n,o,c,l?s:void 0)})}function ue(e,t,n,r){ji(e.func,e.args);let i=e.args.map(o=>Zg(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 xg(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?"":Fg(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=Kg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return $c(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":{$g(i[2]);let o=Vg(i[4]),a=es(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Hg(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 Jg(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(Hc(i[0])):"";case"DATE_FORMAT":return jg(i[0]??"",i[1]??"");case"DATEDIFF":return zg(i[0]??"",i[1]??"");case"DATE_ADD":return qg(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return Xg(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 Wc(e){let t=eo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Yg(e){return Wc(e).getUTCFullYear()}function Hc(e){let t=Wc(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 jg(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(Hc(e)).padStart(2,"0"):"";case"%G":return l?String(Yg(e)).padStart(4,"0"):"";default:return d}})}function zg(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 qg(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 Xg(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 Jg(e,t){if(/^-?\d+$/.test(t.trim()))return Qg(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 Qg(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 Zg(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 ey(e,t,n,r,i);case"NULL_CHECK":return ay(e,t);case"LOGICAL":return sy(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 ey(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=ep(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=ny(e.left,a,i);return ty(e.op,o,e.right,t,a,n,s,i)}function ty(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(oy(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=iy(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=rs(n,r,o);return Zc(t,d)}if(e==="NOT_LIKE"){let d=rs(n,r,o);return!Zc(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 jc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ny(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(jc.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(jc.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 zc=new Set(["CHECK_BOX","MULTI_SELECT"]),qc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),ry=new Set(["CREATOR","MODIFIER"]);function iy(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(zc.has(n)||qc.has(n)||ry.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return zc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):qc.has(n)?!Array.isArray(i)||!i.every(Xc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Xc(i)?t.has(i.code):r()}function Xc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function oy(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 ay(e,t){let n=ep(e.field,t);return e.not?n!=="":n===""}function sy(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 ep(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 ly(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 Qc(i.result,t,n,r);return e.elseResult!==null?Qc(e.elseResult,t,n,r):""}function Yc(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 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"?String(le(e,t)):String(Re(e,t,n,r))}function tp(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 ly(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,uy=200;function Zc(e,t){if(!tc(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>=uy&&to.clear(),to.set(t,n)}return n.test(e)}function _n(e){return rp(e)}function np(e){return rp(e.flatMap(t=>t.rules.map(n=>n.condition)))}function rp(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 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=Re(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 cy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),py=new Set(["CHECK_BOX","MULTI_SELECT"]);function oo(e,t=new Map){let n=e.values.map(r=>dy(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function dy(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=gp(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=fy(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function fy(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 sp(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"?lp(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Dn(n,t):n.type==="STRING_FUNC"?as(n,t):n.type==="CASE_VALUE"&&up(n.expr,t);return gp(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function lp(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"?lp(e,t):e.type==="STRING_FUNC"&&as(e,t)}function as(e,t){for(let n of e.args)Ey(n,t)}function Ey(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"&&up(e,t)}function io(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ry(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 Ry(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):Dn(e,t)}function ip(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 up(e,t){for(let n of e.branches)ro(n.condition,t),ip(n.result,t);e.elseResult!==null&&ip(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=cp(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(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 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 gy=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=cp(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(gy.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(Re(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 cp(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=op(e.left,t),r=op(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 op(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 pp(e){return is(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function dp(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function fp(e){return cy.has(e??"")}function yy(e){return py.has(e??"")}function my(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 hy(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Ep(e,t){return fp(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):yy(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?my(e):t==="DATE"?hy(e):e}function Rp(e,t){return fp(t)?e.map(n=>({code:n})):e}function ap(e,t,n){if(e.type==="ARRAY")return Rp(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"?Ep(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 gp(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 ap(r.result,t,n);return e.elseResult!==null?ap(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:Ay(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Ay(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 Ep(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Rp(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"]),Sy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function yp(e,t,n){let r=Ty(n.fieldType,e.field),i=Iy(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 Ty(e,t){return ds.has(e)||Sy.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Iy(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),wy(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(Qu(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 wy(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]=Ip(i?.value);return n}function hp(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}.`),Sp(t,n,i,o)}function Ap(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),Sp(e,o,r,a)})}function Sp(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(yp(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=Ly(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=Ny(_,p,E,c.field);_.expectRows&&mp(_.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=Py(_,p,E,c.field);_.expectRows&&mp(_.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=_y(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 mp(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:by(e,r,t,n)}))}function by(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 Py(e,t,n,r){return Tp(e.selector,t,n,r)}function Ny(e,t,n,r){return Tp(e.selector,t,n,r)}function Tp(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=Cy(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Oy(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Cy(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 Oy(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 Ly(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 _y(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ip(r?.value);return t}function Ip(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),Dy(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function wp(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 Dy(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 bp(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 Pp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=bp(t.digits,"digits",1,30),r=bp(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 Np(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 vy=new Set(["CHECK_BOX","MULTI_SELECT"]),Uy=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=ky(e);if(i!==""&&!My(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:Fy(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}=Np(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)&&Uy.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 ky(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 My(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(vy.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 Fy(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 xy(e){return ws(e).length>0}function Ky(e){return e.fieldType==="NUMBER"||xy(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=Ky;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 By=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"&&!By.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=Gy(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:Cp(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:Cp(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 Cp(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 Gy(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;Op(o,"dmlMaxRows"),Op(a,"dmlMaxSubtableRows");for(let S of n)fo(S);let l=Ap(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 Lp({plans:g,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Op(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Lp(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))Lp(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)_p(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),_p(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 $y(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;Dp(r,"dmlMaxRows"),Dp(i,"dmlMaxSubtableRows");let a=e.metadata??mo(t,n),s=$y(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 vp({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 _p(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 Dp(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 vp(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))vp(n,t);return Object.freeze(e)}async function kp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Up(i,"dmlMaxRows"),Up(o,"dmlMaxSubtableRows"),jy(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Vy(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=Wy(t,m.sourceRowIndex,y),I=A.applyBlocks?.length?dt(A,r):Hy(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=Yy(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:zy(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 Vy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Wy(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 Hy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function Yy(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 jy(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 zy(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 Up(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",[xp(e)])}function Ls(e){return Un("INSERT",[Fp(e)])}function _s(e){return Un("UPSERT",[Fp(e.create),xp(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 Fp(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 xp(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:Mp(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:Mp(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 Mp(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=>qy(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 qy(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=wp(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 Bp(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 Gp(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 Xy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Jy(e){if(!Xy.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 Qy(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Jy(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=Qy(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 Zy(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 Zy(i)?!0:Object.values(i).some(n)};return n(e)}function $p(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 Vp(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:xu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],em=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),tm=new Set(Me),nm=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"])]]),rm=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),im=["=","!=","in","not in"],om=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(im)]]),am=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"]),Yp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function jp(e){return om.get(e)??new Set}function zp(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)&&jp(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 sm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ks():cm(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:Xp(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 dm(e.op,n,r)}}}function sm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return lm(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Wp(n))return Hp(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?Hp(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(!qp(i.fieldType,o))return kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!pm(i.fieldType,e))return kn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=jp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Wp(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 Wp(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function Hp(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=nm.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):rm.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 lm(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?um(n)?tm.has(i)?!em.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 um(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 cm(e,t,n){let r=n(e);return r?qp(r.fieldType,t)?!Ms.has(r.fieldType)&&!Yp.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 qp(e,t){let n=am.get(e);return n===void 0||n.has(t)}function pm(e,t){return Ms.has(e)?!0:Yp.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 dm(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 Xp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function fm(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"||!Xp(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 Em(e){if(e.capability==="EXACT_PUSHDOWN"||!fm(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 Em(Jp(e))}var Rm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),gm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),ym=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)?Zp(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"}):Zp(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_")||ye(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=Tm(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function ed(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"}):ye(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 td(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:id(Mn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=mm(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(Sm(e,t)),fetchQueriesByAlias:new Map,...o})}function nd(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))||rd(Am(e))!==e.allKlikes.length))}function mm(e,t){if(e===null)return Qp(null);let n=Object.freeze([...de(e)]);if(n.length===0)return Qp(e);let r=hm(e,t,n);if(r!==null)return r;let i=Po(e),o=[],a=new Set;for(let u of i){let p=ed(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 hm(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),rd(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=ed(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 Qp(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 rd(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Am(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Sm(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(ld(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 id([...n,...r]);if(ld(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:od(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 id(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:od(i.relation,n.relation)}}return t}function Tm(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return gm.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Im(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===">")&&ad(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"||ym.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?sd(e.right.value)?"superset":"unsafe":n==="TIME"?wm(e.right.value)?"superset":"unsafe":bm(e.right.value)?"superset":"unsafe";if(Rm.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 Zp(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 od(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Im(e){return e.type==="NUMBER"&&ad(e)&&e.value>0}function ad(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function sd(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 wm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function bm(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!sd(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 ld(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 Pm(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Nm(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=Pm(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"&&!Nm(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 Cm=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 Om(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(Om(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}Cm.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 ud(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 cd=["$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 Lm=/^(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"?Lm.test(t.field):Object.values(t).some(Vs)}function _m(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 Dm=["_pid","_rid","_idx"];function $s(e){return[...new Set(e)]}function vm(e){switch(e.kind){case"APP":return $s([...e.fieldCodes,...cd]);case"SUBTABLE":return $s([...e.childFieldCodes,...Dm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return $s(e.columns)}}function pd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:vm(t(r,i))}))}function Um(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 km(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Mm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Fm(e,t,n){let r=Um(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:km(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Mm(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=_m(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 dd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Fm(r.name,t,n):{kind:"EXPRESSION"})}}var xm={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 fd(e,t){let n=xm[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 Ed(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=>fd(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=fd(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 Km(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(Rd(e,a,r.leftColumns),Rd(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 Rd(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 Bm(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function Id(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 Gm(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)=>Vm(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&&Id(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]));wd(d,l,n,r),s.push(d)}return s}function $m(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=gd(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,gd(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)}wd(f,p,n,r),pc(f,u),o.push(f)}}return o}function gd(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function wd(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(Re(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){Uo(e,t,o.expr,r);let a=_d(o.expr,t,r),s=l=>l.aggregateRef?Nd(l.aggregateRef,r):void 0;e[bd(o.alias,i)]=Ce(a,e,void 0,s)}}function bd(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 Vm(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=Pd(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 Pd(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 Wm(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?.(Wm(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 Nd(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 Hm(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function Ym(e,t,n,r,i){if(e.length===0)return e;let o=jm(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 jm(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 Ys(e,t,n,r,i,o){return t.length===0?e:Cd(e,t,n,r,i,o).rows.map(a=>a.row)}function Cd(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(Od.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:Xm(c,d,o)}))})),l=(d,c)=>zm(d,c,t,a);return s.sort(l),{rows:s,compare:l}}function zm(e,t,n,r){for(let i=0;i<n.length;i++){let o=qm(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function qm(e,t,n){return Dt(e.s,t.s,n.semantics)}var Od=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Xm(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(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=>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=>Qm(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=Cd(d,s.orderBy,n,r,i),u=c.rows;if(!_a(s)){Jm(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 Jm(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:Pd(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 Qm(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[bd(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(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=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=Sd(md(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=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(Sd(md(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 eh(e,t,n){return e.map((r,i)=>Ld(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=Ld(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Ld(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 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=yd(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=yd(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 yd(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function md(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 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=>hd(t.result))||e.elseResult!==null&&hd(e.elseResult):!1}function hd(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"?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"?_d(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 Ad(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 _d(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:Ad(r.result,t,n)})),elseResult:e.elseResult===null?null:Ad(e.elseResult,t,n)}}function Xs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>oh(r,t,n))}}function Sd(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 Td(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 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(_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(Od.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=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=>ft(N,A));let w=Ws(Td(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(Td(E?.get(_),_),void 0,L);S=Km(S,L,N,{leftColumns:w,rightColumns:v}),w=Ws(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=Bm(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=$m(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Id(t.columns))&&(S=Gm(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?Nd(N.aggregateRef,u):c?.(N);return S=Hm(S,t.having,d,D),S=zs(S,t.columns,i,o,y,u),t.distinct&&(S=Ym(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 Dd(e,t){let n=[];for(let r of e){let i=Qs(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=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 sh(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 vd(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Ud(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function kd(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 Fd(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 Fd(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 Md(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 xd(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":Md(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Md(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":xd(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=Fd(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 lh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Kn(t)}function uh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function ch(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return 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=ch(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Kd(e,t){let n=[];xd(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: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&&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: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=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??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=fh(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)])||!Rh(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 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($o(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 $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 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 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 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 Bd(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 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!==`
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 Te("\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||gg(t)}function Dc(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 gg(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Uc=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"}),Fc=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"}),JI=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),yg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),mg=new Set(yg);function hg(e){return mg.has(e)}var xc=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 kc(e){return Er[e]!==void 0}var Ag=Object.freeze([...Li]),Sg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Tg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ig(e){return Sg.has(e)}function wg(e){return Tg.has(e)}function bg(e){return Number.isInteger(e)&&e>=1&&e<=31}var QI=Object.freeze(Array.from(new Set([...Object.keys(Za),...Fc,...Object.keys(fr),...Object.keys(xc),...Object.keys(Er),...Ag,"IF"]))),Pg=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 Ng(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Pg.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"}},Mc=["\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>Uc)throw new T(`batch exceeds ${Uc} 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&&Ng(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(Mc,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 xc[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(Mc,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"?Ae(`-${H(n)}`):{type:"AGG_ARITH",left:Ae("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ae(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 Ae(`${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:Ae("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ae(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 Ae(`+${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"?Ae(`-${H(n)}`):{type:"ARITH",left:Ae("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ae(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(Fc.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=Cg(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(!hg(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(!Ig(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(!wg(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(!bg(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(kc(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(Ae(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(Ae(`${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=Bu(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(Ae(`${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(Ae(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(kc(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 Cg(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 Og=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Lg=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":Lg.has(e.fieldType)?t="option":Og.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 _g(e,t){return e<t?-1:e>t?1:0}function Kc(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 Dg(e,t){let n=Kc(e),r=Kc(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 Bc(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 vg(e,t,n){let r=Bc(e,n),i=Bc(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 Ug(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 Gc(e,t){let n=t.optionOrder??new Map,i=[...new Set(Ug(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($c),i}function $c(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 kg(e,t,n){let r=Gc(e,n),i=Gc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=$c(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 Dg(e,t);case"recordNumber":return vg(e,t,n.fieldType==="RECORD_NUMBER");case"option":return kg(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 Vc(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):_g(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 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 vt(e,t,n,r){switch(e.type){case"CASE_WHEN":return jc(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 Re(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 Mg(e){return e>=55296&&e<=56319}function Fg(e){return e>=56320&&e<=57343}function Zi(e,t){return t>0&&t<e.length&&Mg(e.charCodeAt(t-1))&&Fg(e.charCodeAt(t))}function Wc(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 xg(e,t){let n=Math.max(0,e.length-t);return Zi(e,n)&&(n+=1),e.slice(n)}function Kg(e,t,n){let r=Wc(t,e.length),i=Wc(n,e.length);return i<=r?"":(Zi(e,r)&&(r+=1),Zi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Bg(e,t){let n=e.repeat(Math.ceil(t/e.length));return ts(n,t)}var Gg=200,Rr=new Map;function $g(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=$g(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>=Gg){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function Vg(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Wg(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 Hg(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 Yg(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 Hg(n,o,c,l?s:void 0)})}function ue(e,t,n,r){ji(e.func,e.args);let i=e.args.map(o=>ey(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 Kg(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?"":xg(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=Bg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return Vc(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":{Vg(i[2]);let o=Wg(i[4]),a=es(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Yg(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 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 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(Yc(i[0])):"";case"DATE_FORMAT":return zg(i[0]??"",i[1]??"");case"DATEDIFF":return qg(i[0]??"",i[1]??"");case"DATE_ADD":return Xg(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return Jg(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 Hc(e){let t=eo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function jg(e){return Hc(e).getUTCFullYear()}function Yc(e){let t=Hc(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 zg(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(Yc(e)).padStart(2,"0"):"";case"%G":return l?String(jg(e)).padStart(4,"0"):"";default:return d}})}function qg(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 Xg(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 Jg(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 Zg(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 Zg(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 ey(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 ty(e,t,n,r,i);case"NULL_CHECK":return sy(e,t);case"LOGICAL":return ly(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 ty(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=tp(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=ry(e.left,a,i);return ny(e.op,o,e.right,t,a,n,s,i)}function ny(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(ay(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=oy(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=rs(n,r,o);return ep(t,d)}if(e==="NOT_LIKE"){let d=rs(n,r,o);return!ep(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 zc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ry(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(zc.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(zc.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 qc=new Set(["CHECK_BOX","MULTI_SELECT"]),Xc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),iy=new Set(["CREATOR","MODIFIER"]);function oy(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(qc.has(n)||Xc.has(n)||iy.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return qc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Xc.has(n)?!Array.isArray(i)||!i.every(Jc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Jc(i)?t.has(i.code):r()}function Jc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function ay(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 sy(e,t){let n=tp(e.field,t);return e.not?n!=="":n===""}function ly(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 tp(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 uy(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 jc(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):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(Re(e,t,n,r))}function np(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 uy(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,cy=200;function ep(e,t){if(!tc(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>=cy&&to.clear(),to.set(t,n)}return n.test(e)}function _n(e){return ip(e)}function rp(e){return ip(e.flatMap(t=>t.rules.map(n=>n.condition)))}function ip(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 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=Re(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 py=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),dy=new Set(["CHECK_BOX","MULTI_SELECT"]);function oo(e,t=new Map){let n=e.values.map(r=>fy(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function fy(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=yp(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=Ey(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Ey(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 lp(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"?up(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Dn(n,t):n.type==="STRING_FUNC"?as(n,t):n.type==="CASE_VALUE"&&cp(n.expr,t);return yp(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function up(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"?up(e,t):e.type==="STRING_FUNC"&&as(e,t)}function as(e,t){for(let n of e.args)Ry(n,t)}function Ry(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"&&cp(e,t)}function io(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&gy(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 gy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):Dn(e,t)}function op(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 cp(e,t){for(let n of e.branches)ro(n.condition,t),op(n.result,t);e.elseResult!==null&&op(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=pp(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(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 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 yy=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=pp(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(yy.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(Re(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 pp(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=ap(e.left,t),r=ap(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 ap(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 dp(e){return is(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function fp(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function Ep(e){return py.has(e??"")}function my(e){return dy.has(e??"")}function hy(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 Ay(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Rp(e,t){return Ep(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):my(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?hy(e):t==="DATE"?Ay(e):e}function gp(e,t){return Ep(t)?e.map(n=>({code:n})):e}function sp(e,t,n){if(e.type==="ARRAY")return gp(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"?Rp(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 yp(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 sp(r.result,t,n);return e.elseResult!==null?sp(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:Sy(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Sy(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 Rp(e.value,t);case"NUMBER":return H(e);case"ARRAY":return gp(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"]),Ty=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function mp(e,t,n){let r=Iy(n.fieldType,e.field),i=wy(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 Iy(e,t){return ds.has(e)||Ty.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function wy(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),by(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(Qu(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 by(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]=wp(i?.value);return n}function Ap(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}.`),Tp(t,n,i,o)}function Sp(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),Tp(e,o,r,a)})}function Tp(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(mp(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=_y(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=Cy(_,p,E,c.field);_.expectRows&&hp(_.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=Ny(_,p,E,c.field);_.expectRows&&hp(_.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=Dy(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 hp(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:Py(e,r,t,n)}))}function Py(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 Ny(e,t,n,r){return Ip(e.selector,t,n,r)}function Cy(e,t,n,r){return Ip(e.selector,t,n,r)}function Ip(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=Oy(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Ly(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Oy(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 Ly(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 _y(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 Dy(e){let t={};for(let[n,r]of Object.entries(e))t[n]=wp(r?.value);return t}function wp(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),vy(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function bp(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 vy(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 Pp(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 Np(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Pp(t.digits,"digits",1,30),r=Pp(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 Cp(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 Uy=new Set(["CHECK_BOX","MULTI_SELECT"]),ky=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=My(e);if(i!==""&&!Fy(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:xy(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}=Cp(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)&&ky.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 My(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 Fy(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(Uy.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 xy(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 Ky(e){return ws(e).length>0}function By(e){return e.fieldType==="NUMBER"||Ky(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=By;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 Gy=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"&&!Gy.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=$y(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:Op(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:Op(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 Op(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 $y(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;Lp(o,"dmlMaxRows"),Lp(a,"dmlMaxSubtableRows");for(let S of n)fo(S);let l=Sp(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 _p({plans:g,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Lp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}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)}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)Dp(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),Dp(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 Vy(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;vp(r,"dmlMaxRows"),vp(i,"dmlMaxSubtableRows");let a=e.metadata??mo(t,n),s=Vy(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 Up({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 Dp(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 vp(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 Up(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))Up(n,t);return Object.freeze(e)}async function Mp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;kp(i,"dmlMaxRows"),kp(o,"dmlMaxSubtableRows"),zy(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Wy(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=Hy(t,m.sourceRowIndex,y),I=A.applyBlocks?.length?dt(A,r):Yy(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=jy(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:qy(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 Wy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Hy(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 Yy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function jy(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 zy(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 qy(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 kp(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",[Kp(e)])}function Ls(e){return Un("INSERT",[xp(e)])}function _s(e){return Un("UPSERT",[xp(e.create),Kp(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 xp(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 Kp(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:Fp(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:Fp(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 Fp(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=>Xy(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 Xy(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 Bp(e,t,n){Sn("phase10c");let r=bp(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 Gp(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 $p(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 Jy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Qy(e){if(!Jy.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 Zy(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 Ds(e,t){let n=Zy(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 em(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 em(i)?!0:Object.values(i).some(n)};return n(e)}function Vp(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 Wp(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:xu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],tm=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),nm=new Set(Me),rm=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"])]]),im=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),om=["=","!=","in","not in"],am=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(om)]]),sm=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"]),jp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function zp(e){return am.get(e)??new Set}function qp(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)&&zp(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 lm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ks():pm(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:Jp(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 fm(e.op,n,r)}}}function lm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return um(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Hp(n))return Yp(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?Yp(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(!Xp(i.fieldType,o))return kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!dm(i.fieldType,e))return kn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=zp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Hp(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 Hp(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function Yp(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=rm.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):im.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 um(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?cm(n)?nm.has(i)?!tm.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 cm(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 pm(e,t,n){let r=n(e);return r?Xp(r.fieldType,t)?!Ms.has(r.fieldType)&&!jp.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 Xp(e,t){let n=sm.get(e);return n===void 0||n.has(t)}function dm(e,t){return Ms.has(e)?!0:jp.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 fm(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 Qp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Jp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Em(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"||!Jp(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 Rm(e){if(e.capability==="EXACT_PUSHDOWN"||!Em(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 Rm(Qp(e))}var gm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),ym=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),mm=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)?ed(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"}):ed(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_")||ye(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=Im(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function td(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"}):ye(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 nd(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:od(Mn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=hm(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(Tm(e,t)),fetchQueriesByAlias:new Map,...o})}function rd(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))||id(Sm(e))!==e.allKlikes.length))}function hm(e,t){if(e===null)return Zp(null);let n=Object.freeze([...de(e)]);if(n.length===0)return Zp(e);let r=Am(e,t,n);if(r!==null)return r;let i=Po(e),o=[],a=new Set;for(let u of i){let p=td(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 Am(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),id(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=td(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 id(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Sm(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Tm(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(ud(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 od([...n,...r]);if(ud(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:ad(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 od(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:ad(i.relation,n.relation)}}return t}function Im(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return ym.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return wm(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===">")&&sd(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"||mm.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?ld(e.right.value)?"superset":"unsafe":n==="TIME"?bm(e.right.value)?"superset":"unsafe":Pm(e.right.value)?"superset":"unsafe";if(gm.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 ed(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 ad(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function wm(e){return e.type==="NUMBER"&&sd(e)&&e.value>0}function sd(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function ld(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 bm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Pm(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!ld(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 ud(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 Nm(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Cm(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=Nm(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"&&!Cm(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 Om=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 Lm(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(Lm(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}Om.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 cd(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 pd=["$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 _m=/^(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"?_m.test(t.field):Object.values(t).some(Vs)}function Dm(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 vm=["_pid","_rid","_idx"];function $s(e){return[...new Set(e)]}function Um(e){switch(e.kind){case"APP":return $s([...e.fieldCodes,...pd]);case"SUBTABLE":return $s([...e.childFieldCodes,...vm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return $s(e.columns)}}function dd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Um(t(r,i))}))}function km(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 Mm(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Fm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function xm(e,t,n){let r=km(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:Mm(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Fm(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=Dm(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 fd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?xm(r.name,t,n):{kind:"EXPRESSION"})}}var Km={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 Ed(e,t){let n=Km[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 Rd(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=>Ed(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Ed(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 Bm(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(gd(e,a,r.leftColumns),gd(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 gd(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 Gm(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function wd(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 $m(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)=>Wm(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&&wd(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]));bd(d,l,n,r),s.push(d)}return s}function Vm(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=yd(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,yd(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)}bd(f,p,n,r),pc(f,u),o.push(f)}}return o}function yd(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function bd(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(Re(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){Uo(e,t,o.expr,r);let a=Dd(o.expr,t,r),s=l=>l.aggregateRef?Cd(l.aggregateRef,r):void 0;e[Pd(o.alias,i)]=Ce(a,e,void 0,s)}}function Pd(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 Wm(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=Nd(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 Nd(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 Hm(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?.(Hm(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 Cd(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 Ym(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function jm(e,t,n,r,i){if(e.length===0)return e;let o=zm(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 zm(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(eh(t,a,o))}function Ys(e,t,n,r,i,o){return t.length===0?e:Od(e,t,n,r,i,o).rows.map(a=>a.row)}function Od(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(Ld.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:Jm(c,d,o)}))})),l=(d,c)=>qm(d,c,t,a);return s.sort(l),{rows:s,compare:l}}function qm(e,t,n,r){for(let i=0;i<n.length;i++){let o=Xm(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Xm(e,t,n){return Dt(e.s,t.s,n.semantics)}var Ld=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Jm(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(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=>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=>Zm(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=Od(d,s.orderBy,n,r,i),u=c.rows;if(!_a(s)){Qm(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 Qm(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:Nd(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 Zm(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[Pd(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(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 eh(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=Td(hd(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=ih(t),l=rh(t),d=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=d?null:th(t,s,l),u=c??[];return d&&e.length===0?{rows:[],columns:nh(t,s,l)}:{rows:e.map((f,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Td(hd(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 th(e,t,n){return e.map((r,i)=>_d(r,i,t,n))}function nh(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=_d(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function _d(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 rh(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 ih(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=md(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=md(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 md(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function hd(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 oh(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=>Ad(t.result))||e.elseResult!==null&&Ad(e.elseResult):!1}function Ad(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=>oh(t))}function ah(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"?Dd(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 Sd(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 Dd(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:Sd(r.result,t,n)})),elseResult:e.elseResult===null?null:Sd(e.elseResult,t,n)}}function Xs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>ah(r,t,n))}}function Td(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 Id(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 sh(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(Ld.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=sh(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(Id(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(Id(E?.get(_),_),void 0,L);S=Bm(S,L,N,{leftColumns:w,rightColumns:v}),w=Ws(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=Gm(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=Vm(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||wd(t.columns))&&(S=$m(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?Cd(N.aggregateRef,u):c?.(N);return S=Ym(S,t.having,d,D),S=zs(S,t.columns,i,o,y,u),t.distinct&&(S=jm(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 vd(e,t){let n=[];for(let r of e){let i=Qs(r.$id?.value),o=lh(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 lh(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 Ud(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function kd(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function Md(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 xd(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 xd(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 Fd(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 Kd(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":Fd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Fd(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":Kd(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=xd(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 uh(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 ch(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function ph(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=ph(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Bd(e,t){let n=[];Kd(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=ch(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&&uh(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=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=dh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!fh(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=Rh(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=Eh(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)])||!gh(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 dh(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(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 $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 fh(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 Eh(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 Rh(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 gh(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 Gd(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 yh(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 mh(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
4
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===`
5
6
  `){d==="\r"&&e[a+1]===`
6
- `&&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 Wo(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 Gd(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 Et(e,t,n,r){throw new B(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function $d(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Vd(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 hh(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=mh(yh(e,t.encoding)),r,i;if(t.hasHeader?(r=n[0]??[],i=n.slice(1)):(i=n,r=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),hh(r),i.length===0)throw new 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 Ah=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Sh=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 $d(e,t,n){if(!Ah.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new qr;return Sh.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 Vd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Wd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
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===`
8
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:`
9
- `,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=Vd($d(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 Sh=new Set(["CHECK_BOX","MULTI_SELECT"]),Wd=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)&&!Wd.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."),Wd.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]=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 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]=Gd(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 Hd(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 Yd(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 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 ul(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Xd(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)jd(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)jd(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)&&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)||zd(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):zd(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 jd(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 zd(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=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 qd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:qd(t)?t.lexeme:t):e}function qd(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 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?"":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 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 Qd(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 Zd(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 ef(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 tf(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 fl="#__import_source";function nf(e){return{...e,from:{appId:0,alias:null,cteName:fl}}}function _h(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function El(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"}},me=new WeakMap;function Af(e){return me.get(e)}var cn=new WeakMap,da=new WeakMap,rf=new WeakMap,vh=1,Uh=1;function Sf(e,t){if(t)return t;let n=rf.get(e);return n||(n=`client:${vh++}`,rf.set(e,n)),n}function $l(e){return`${e}\0inv:${Uh++}`}async function Vl(e,t,n={}){let r=Date.now(),i=$l(Sf(t,n.cacheContext));try{let o=TS(e,n.enableImport===!0),a=Tf(),s=wf(t,a),l={aborted:!1},d=Hl(s,l,!Mh(o)||vs(o)),c=await Al(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...bf(c,l),metrics:a};if(c.type==="SELECT"){let p=me.get(c);p&&me.set(u,p)}return u}finally{lu(i)}}function Tf(){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 If=Symbol("limitMetricsSink");function Wl(e,t){let n=e[If];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function wf(e,t){return{[If]: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 of=Symbol("searchAbortFailClosed");function Hl(e,t,n){return n&&e[of]?e:{...e,...n?{[of]:!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 bf(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 af(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 ye(r.where,i)},dml:r=>Mf(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&&!eS(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 qh(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 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 Fh(e,t,n,r);case"SELECT":return Ft(Pl(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 au(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return zA(e,t,n,r);case"INSERT_SELECT":return Eu(e,t,n,r);case"UPSERT":return fS(e,t,n,r);case"UPSERT_SELECT":return yu(e,t,n,r);case"UPDATE":return Fl(e,t,n,r);case"DELETE":return dS(e,t,n,r);case"REORDER":return hS(e,t,n,r);case"SHOW_APPS":return uE(t);case"DESCRIBE":return cE(e,t,r);case"EXPLAIN":return PS(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",he):he,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 Lf(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 Pf(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 Fh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Nf(e,t,n,r)}async function Nf(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 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"),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=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: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 me.set(M,Pf(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||!Xi(i.semantics,r.semantics))return!1}return!0}var Gn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Cf(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"&&Kh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Ds(r,n.variables),a=Of(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=Tf(),d=wf(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=$l(Sf(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])),_=kh(N),U=await $h(Bh(r[y],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=bf(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 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 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=ra(e,a);if(We(d),await af(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 _f(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,sf(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=sf(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 af(l,n,i),l.type==="VALIDATE"){let d=await Nf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,me.get(d)??Pf(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 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 Gh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:me.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 Lf(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 Gh(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 $h(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 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)??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:Wh(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 Wh(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 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 Of(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 sf(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:tp(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=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 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 Lf(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 _f(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Vn(o.message):o}}}async function _f(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 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(Ie(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 Df=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=zp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Df.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function vf(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Uf(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 kf(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 Mf(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 $n(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Mf(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),Qh(e))return l=tA(e),o&&me.set(l,await sa(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,vf(e)),c=Uf(e,d,s),u=await Ql(e,t,r,i);await pE(e,t,n,r,i);let p=gA(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=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:Ee(e.where)}):null;await rA(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 nA(e,I,S.effectiveOptions,r,y,m):l=await hA(e,I,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,m,E,u)}catch(w){Ff(S,w)}return o&&me.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=pd(e,(d,c)=>o[c]),s=e.groupBy,l=dd(s,e.columns,a);return zh(e,s,l),l}function zh(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 qh(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await fa(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Xh(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=Ie(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 Xh(e,t,n,r),s=Rc(e,a,Ec);s&&ii.set(e,s)}function Jh(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 Ff(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(Jh(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){Ff(e,n)}}function gt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Qh(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 Zh(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=>Zh(t))}function eA(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 tA(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.");eA(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 nA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Gf(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&&!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 ud({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 rA(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 lf(e){return e.cteName??`APP${e.appId}`}function iA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function oA(e,t){return Gs(t)||e.validCodes.has(t)}function gl(e,t){return e.table.cteName!==null?e.validCodes.has(t):oA(e,t)}function aA(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 sA(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:lf(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:lf(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 iA(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=Sc(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 sA(e,t,n,r);for(let o of aA(e))await Jo(o,t,n,r,i)}}function xf(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=td(e.where,r),o=nd(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,xf(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([we(s,t,n),wA(s,t,n)]),u=lA(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 lA(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 uA(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=uA(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 we(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 cA(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 pA(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"&&cA(n.expr,t);return t}var dA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function fA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":dA.has(e.fieldType)?"string":void 0}async function Bf(e,t,n,r){let i=pA(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(Ie(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(Ie(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(Ie(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 Ie(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:fA(e),fieldType:e.fieldType,semantics:t===void 0?n:Ln(n,t,e.code)}}function Gf(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 $f(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 EA=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 EA.has(e.func)?z("number"):z("string")}function Hn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?$f():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")?$f("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 Vf(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 RA(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;RA(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(Ie(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(Ie(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(Ie(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=Ie(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=Vf(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 Wf(e,t){let n=me.get(e),r=me.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(Ie(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(Ie(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(Ie(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 Hf=new WeakSet,Yf=new WeakMap;function Pl(e){return Hf.add(e),e}function gA(e,t){return Yf.set(e,t),t}function jf(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 yA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function mA(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(!yA(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 hA(e,t,n,r,i,o=!0,a,s,l){let d=Yf.get(e);if(Hf.has(e)&&d!==void 0&&jf(e,d)){let F=await mA(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),Bf(e,t,r,i)]),g=ou(e,E),m=await di(e,t,r,i,nt(e.having)||Jl(e)),y=kf(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 fE(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 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,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 zf(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"?zf(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:qf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&me.set(g,Wf(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 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 uE(t):d.query.type==="DESCRIBE"?c=await cE(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:me.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:qf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],m={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&me.set(m,Wf(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 AA(e,t,n,r,i);return o&&me.set(l,await sa(e,l.columns,t,i,r)),l}async function AA(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,vf(e)),p=Uf(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=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:Ee(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),Bf(e,t,i,r)]),b=ou(e,w),D=await di(e,t,i,r,nt(e.having)||Jl(e)),N=kf(e,D),_=Ea(e,I)??Nn(e,I);Ya(_);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(uf)),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(uf)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,fn=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,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 Ed(o,e.from.subtableCode,()=>ya(e.from.appId,r,i))}function uf(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),$p(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?hc(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 Dd(g,t.subtableCode)}var Xf=50;function SA(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]?SA(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],Xf)){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,TA(y))}return d}function TA(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 Qf=50,IA=6,cf=Qf*IA;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>cf)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 ${cf} \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,Qf),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 we(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 wA(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 pf(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 bA(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 PA(e,t,n,r){let i=bA(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(Ie(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(Ie(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(Ie(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=Vf(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([NA(e,t,n),CA(e,t,n),PA(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function NA(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 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 pf(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 pf(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 OA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function LA(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||OA.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 LA(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 _A(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",he),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return sS(e,a,o)}async function DA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await tE(e,t,n,r,i);return uS(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=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 kp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function vA(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",he),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 Bp(o,t,a);return{...s,diagnostic:ke(a,s)}}async function UA(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=_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 Gp(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 kA(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=kA(n?zo(n):[],r?zo(r):[]),a=MA(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 MA(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 _A(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return DA(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 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=vd(E),g=(await FA(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"?BA:e.type.startsWith("UPSERT")?v=>GA(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=Ud(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=kd({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 FA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return KA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")df(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 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");df(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 df(e,t){let n=new Set(t);for(let r of du(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 xA=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 np(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(xA.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 KA(e,t,n,r,i,o){if(e.from)return VA(e,e.from,t,n,r,i,o);await dE(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=nE(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:$A(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 BA(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 GA(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 du(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 $A(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 VA(e,t,n,r,i,o,a){let s=await IE(e,t,n,i,o);un(e,s.evaluationTypes);let l=await rE(e,t,n,r,i,o,a),d=await we(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:WS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var WA=Xf,HA=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 YA(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 jA(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=ff(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([...pS(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()],WA)){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=ff(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 YA(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 jA(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 we(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(HA.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 ff(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 zA(e,t,n,r){if(e.applyBlocks?.length)return vA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return ES(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 we(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 qA(){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=Bd(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"?Hd(e.source,R,u,n.maxRecords??1e4):Yd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Xd(g,u,p,E,m);if(e.source.kind==="CSV")return XA(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(Qd(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=Zd(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 JA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:qA(),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 XA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");ef(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=tf(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 JA(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 QA(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:me.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=nf(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:me.get(E)}}var fu={materialize:QA};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 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(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 we(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=>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 aE(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 we(e.appId,t,r);return nE(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),RS(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 cS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await dE(e.assignments,t,n,r);let d=await we(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 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 ZA(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=hp({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",he),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 ZA(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",ht),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),s=await te(e.appId,t,r),l=dt(e,s),d;if(ua(e))d=await rS(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 lS(e,c,s);ec("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)||Ee(e.where))}function eS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ua(t)&&Ee(t.where)}var tS=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
10
+ `,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=Wd(Vd(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 Th=new Set(["CHECK_BOX","MULTI_SELECT"]),Hd=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 Ih(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function wh(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."),Ih(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."),!Th.has(t.fieldType)&&!Hd.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."),Hd.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]=wh(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]=$d(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 Yd(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 jd(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 bh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Ph=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 Jd(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)zd(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)zd(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=>Nh(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 Nh(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)||qd(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):qd(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 zd(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&&Ph.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function qd(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=Ch(e),d=Oe(l,t,n);d.ok?r[i]={value:Oh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Ch(e){return Xd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Xd(t)?t.lexeme:t):e}function Xd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Oh(e,t){return bh.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?"":Lh(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 Lh(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 Qd(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 ef(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 _h(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function tf(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 nf(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=_h(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 rf(e){return{...e,from:{appId:0,alias:null,cteName:fl}}}function Dh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function El(e,t){let n=e.map(Dh),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 vh="\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"}},me=new WeakMap;function Sf(e){return me.get(e)}var cn=new WeakMap,da=new WeakMap,of=new WeakMap,Uh=1,kh=1;function Tf(e,t){if(t)return t;let n=of.get(e);return n||(n=`client:${Uh++}`,of.set(e,n)),n}function $l(e){return`${e}\0inv:${kh++}`}async function Vl(e,t,n={}){let r=Date.now(),i=$l(Tf(t,n.cacheContext));try{let o=IS(e,n.enableImport===!0),a=If(),s=bf(t,a),l={aborted:!1},d=Hl(s,l,!Fh(o)||vs(o)),c=await Al(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Pf(c,l),metrics:a};if(c.type==="SELECT"){let p=me.get(c);p&&me.set(u,p)}return u}finally{lu(i)}}function If(){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 wf=Symbol("limitMetricsSink");function Wl(e,t){let n=e[wf];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function bf(e,t){return{[wf]: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 af=Symbol("searchAbortFailClosed");function Hl(e,t,n){return n&&e[af]?e:{...e,...n?{[af]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;return i}}}function Mh(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 Fh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Pf(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(vh),{...e,warnings:[...n]}}async function sf(e,t,n){let r=await pi(e,t,n);return rl(r),r}async function pi(e,t,n){return Bd(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return ye(r.where,i)},dml:r=>Ff(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&&!tS(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 Xh(e,t,r),e.type==="IMPORT")return oE(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 xh(e,t,n,r);case"SELECT":return Ft(Pl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return qf(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 qA(e,t,n,r);case"INSERT_SELECT":return Eu(e,t,n,r);case"UPSERT":return ES(e,t,n,r);case"UPSERT_SELECT":return yu(e,t,n,r);case"UPDATE":return Fl(e,t,n,r);case"DELETE":return fS(e,t,n,r);case"REORDER":return AS(e,t,n,r);case"SHOW_APPS":return cE(t);case"DESCRIBE":return pE(e,t,r);case"EXPLAIN":return NS(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",he):he,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 _f(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 Nf(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 xh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Cf(e,t,n,r)}async function Cf(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 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"),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=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: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 me.set(M,Nf(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])||!Kh(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 Kh(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 Of(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"&&Bh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Ds(r,n.variables),a=Lf(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=If(),d=bf(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=$l(Tf(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])),_=Mh(N),U=await Vh(Gh(r[y],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Pf(U.result,D)),R.push({...A,status:"success",...U})}catch(w){R.push({...A,status:"error",error:Wh(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 Bh(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 Gh(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let d=ra(e,a);if(We(d),await sf(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 Df(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,lf(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=lf(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 sf(l,n,i),l.type==="VALIDATE"){let d=await Cf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,me.get(d)??Nf(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await oE(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 $h(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:me.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 _f(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 $h(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 Vh(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 Wh(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:Hh(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 Hh(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 Yh(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 Lf(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)?Yh(r.name,t[r.name]):r.default);return n}function lf(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:np(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=jh(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 jh(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 _f(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 Df(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Vn(o.message):o}}}async function Df(e,t,n,r,i){let{query:o,probed:a}=zh(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 zh(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(Ie(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 vf=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=qp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&vf.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function Uf(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function kf(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 Mf(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 Ff(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 $n(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Ff(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),Zh(e))return l=nA(e),o&&me.set(l,await sa(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Uf(e)),c=kf(e,d,s),u=await Ql(e,t,r,i);await dE(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=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:Ee(e.where)}):null;await iA(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 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){xf(S,w)}return o&&me.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=dd(e,(d,c)=>o[c]),s=e.groupBy,l=fd(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 fa(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=Ie(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 Jh(e,t,n,r),s=Rc(e,a,Ec);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 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 xf(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 wl(e,t){try{return await t()}catch(n){xf(e,n)}}function gt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Zh(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 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"?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=>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(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 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=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 rA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?$f(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&&!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 cd({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 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=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 uf(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 Gs(t)||e.validCodes.has(t)}function gl(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:uf(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:uf(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&&!gl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=Sc(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 lA(e,t,n,r);for(let o of sA(e))await Jo(o,t,n,r,i)}}function Kf(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=nd(e.where,r),o=rd(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,Kf(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([we(s,t,n),bA(s,t,n)]),u=uA(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 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 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 cA(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 Bf(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=cA(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=Bf(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 we(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 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;iu(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"?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"&&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 Gf(e,t,n,r){let i=dA(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=Bf(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(Ie(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(Ie(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(Ie(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 Ie(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:EA(e),fieldType:e.fieldType,semantics:t===void 0?n:Ln(n,t,e.code)}}function $f(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 Vf(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 Hn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Vf():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")?Vf("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 Wf(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 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==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX"))}async function sa(e,t,n,r,i,o=!1){let a=new Map;gA(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(Ie(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(Ie(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(Ie(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=Ie(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=Wf(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 Hf(e,t){let n=me.get(e),r=me.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(Ie(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(Ie(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(Ie(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 Yf=new WeakSet,jf=new WeakMap;function Pl(e){return Yf.add(e),e}function yA(e,t){return jf.set(e,t),t}function zf(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=jf.get(e);if(Yf.has(e)&&d!==void 0&&zf(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([Ra(e,t,r),ru(e,t,r),Gf(e,t,r,i)]),g=ou(e,E),m=await di(e,t,r,i,nt(e.having)||Jl(e)),y=Mf(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 EE(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 eE(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 qf(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"?qf(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:Xf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&me.set(g,Hf(l,d)),g})}function Xf(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 cE(t):d.query.type==="DESCRIBE"?c=await pE(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:me.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:Xf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],m={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&me.set(m,Hf(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&&me.set(l,await sa(e,l.columns,t,i,r)),l}async function SA(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,Uf(e)),p=kf(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),dE(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=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:Ee(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),Gf(e,t,i,r)]),b=ou(e,w),D=await di(e,t,i,r,nt(e.having)||Jl(e)),N=Mf(e,D),_=Ea(e,I)??Nn(e,I);Ya(_);let U=t,L=await EE(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(cf)),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(cf)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,fn=await eE(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 Rd(o,e.from.subtableCode,()=>ya(e.from.appId,r,i))}function cf(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),Vp(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?hc(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 vd(g,t.subtableCode)}var Jf=50;function TA(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]?TA(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],Jf)){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=>Qf(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,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 Qf(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,wA=6,pf=Zf*wA;async function eE(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=Qf(D).trim();N.length>0&&m.add(N)}let y=[...m];if(y.length===0)return[];if(y.length>pf)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 ${pf} \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 we(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 bA(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 df(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 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(Ie(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(Ie(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(Ie(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=Wf(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([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 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 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 df(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 df(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function tE(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 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 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",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),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 nE(e,t,n,r,i);return cS(e,a,o)}async function nE(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=lE(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 Mp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),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",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),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 Gp(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 nE(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 $p(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 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=MA(n?zo(n):[],r?zo(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=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 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 cu(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 sE(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=Ud(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){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=kd(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=Md({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 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")ff(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 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");ff(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 ff(e,t){let n=new Set(t);for(let r of du(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 un(e,t){if(e.checkGroups)for(let n of rp(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 fE(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=rE(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:VA(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 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 rE(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 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=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 WA(e,t,n,r,i,o,a){let s=await wE(e,t,n,i,o);un(e,s.evaluationTypes);let l=await iE(e,t,n,r,i,o,a),d=await we(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:HS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var HA=Jf,YA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function iE(e,t,n,r,i,o,a){let s=await jA(e,t,n,i),l=await wE(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=Ef(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(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=Ef(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 we(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=>ft(c,null))}function Ef(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 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 mt(e.appId,e.fields,i,t,r),a=await we(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 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 oE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Gd(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"?Yd(e.source,R,u,n.maxRecords??1e4):jd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Jd(g,u,p,E,m);if(e.source.kind==="CSV")return JA(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=ef(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};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 JA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");tf(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=nf(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 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 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 ZA(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:me.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=rf(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:me.get(E)}}var fu={materialize:ZA};function aE(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(aE(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 we(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:tE(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 sE(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 we(e.appId,t,r);return rE(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),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 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 pS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await fE(e.assignments,t,n,r);let d=await we(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 sE(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=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=Ap({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",he),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 eS(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",ht),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",he),s=await te(e.appId,t,r),l=dt(e,s),d;if(ua(e))d=await iS(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 uS(e,c,s);ec("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 Bp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ua(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(Tt(e.where)||Ee(e.where))}function tS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ua(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
10
11
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
11
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function nS(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${tS}`)}async function rS(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});nS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(lo(e,r));for(let E of iS(e.where))u.add(E);let p=await oS(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 iS(e){return zl(e)}async function oS(e,t,n,r,i){let s=[...aS(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 aS(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 sS(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 lS(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 uS(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,he=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 cS(e,t,n,r,i,o){let a=await rE(e,t,n,r,i,o),s=await we(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 pS(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 dS(e,t,n,r){if(await $n(e,t,r),gt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return gS(e,t,n,r);let i=pp(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=dp(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function fS(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return UA(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 we(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: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 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 Ru(e,t,n,r){if(t.length===0)return;let i=await we(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 ES(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=Ef(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:Ef(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 RS(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(yS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.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 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(lE(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 lE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function yS(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){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 Ef(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 hS(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:AS(E,e.subtableCode,y,S)}));g.sort((y,S)=>SS(y.flat,S.flat,e.by,l));let m=g.map(y=>y.row.id??"");await t.putRecords(mS(e.appId,f,yi(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:u.size}}function AS(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 SS(e,t,n,r){for(let i of n){let o=Rf(i.key,e),a=Rf(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 Rf(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(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 we(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=>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 uE(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 cE(e,t,n){let r=await te(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function TS(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 Te||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 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?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 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,Kl=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 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=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 _=tu.get(y)??Ea(y,await Ra(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(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: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=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 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"),un(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: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)),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(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))]]:[]))});gE.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=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),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:Ee(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 IS(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 gf(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)} ${IS(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?wS(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=gf(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)",` ${yf(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=gf(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)}`,` ${yf(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 wS(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 yf(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 mu(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=he){let d=$l(r);try{let c=ql(e,a),u=Ja(c),p=Ds(c,n),f=Of(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 yE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?Gl(I):[...Gl(I),...SE(bS(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 hE(m,{statements:g}),m}finally{lu(d)}}function bS(e,t,n,r,i=100,o=he,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,he,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 PS(e,t,n,r,i,o=100,a=he,s){let l=s??await pi(e.query,t,n),d=await yE(e.query,t,n,r,l),c={sources:[]},u=Gl(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Bl(d),...u]:[...Bl(d),...u,...SE(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 hE(E,{statements:[{index:0,fetch:hu(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 Sa(e,t,n,r,i=100,o=he,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=_S(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="WITH"){let f=DS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="INSERT")return kS(e,t,i,o);if(e.type==="INSERT_SELECT")return MS(e,t,n,r,s);if(e.type==="UPSERT")return BS(e,t,i,o);if(e.type==="UPSERT_SELECT")return GS(e,t,n,r,s);if(e.type==="UPDATE")return FS(e,t,n,r,i,o,a);if(e.type==="DELETE")return KS(e,t);if(e.type==="REORDER")return $S(e,t);if(e.type==="VALIDATE")return OS(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 mf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function hu(e){return e.reduce((t,n)=>mf[t]>=mf[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 NS(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:NS(o)};return e.sources.push(s),s}function CS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Xo(e){return` fetch: ${CS(e)}`}function OS(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?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 LS(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&&jf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=vS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Vp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Kl.get(e)??Df.get(e)??[])R.push(LS(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(TE).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"?Gf(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=EE.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=xf(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(...US(e,n,r,i,s)),R}function _S(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 DS(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,he,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 vS(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 US(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 kS(e,t,n=ht,r=he){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 MS(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 FS(e,t,n,r,i=100,o=he,a=1e4){if(e.applyBlocks?.length)return xS(e,t,i,o,a);let s=sp(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=VS(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(` ${HS(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 xS(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=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",...Au(o)]}function KS(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 BS(e,t,n=ht,r=he){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 GS(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 $S(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}`,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 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 VS(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 IE(e,t,n,r,i){let o=du(e),a=await we(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 we(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 WS(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 HS(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`${hf(e.left)} ${e.op} ${hf(e.right)}`}function hf(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 fe=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 fe("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new fe("PARSE_ERROR",e,t)}function bE(){let e=new on;return new fe("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 YS(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 fe?e:e instanceof Te||e instanceof T?new fe("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new fe("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new fe("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new fe("CLIENT_ERROR",e.message,e.cause):YS(e)?new fe("CLIENT_ERROR",mi(e),e):new fe("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 jS=2,Ia=5,zS=3e4,qS=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??jS;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??zS,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 _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 XS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function JS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=XS){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 QS(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 QS(JS(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,eT(e))}function CE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=tT(o.options),s=nT(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,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!ZS.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 ZS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function eT(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 tT(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 nT(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 rT="Filter aborted because of too many search results";function LE(e){return e?.includes(rT)===!0}var _E="/k/v1/records.json",Pa="/k/v1/records/cursor.json",iT=4096,oT=2,Tu=e=>kintone.api.url(e,!0);function aT(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<=iT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Tu(_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(`
12
- `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function sT(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 lT(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 uT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Iu(e={}){let t=e.cursorMaxActive??oT;uT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=aT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await sT(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=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=PE(Number(c.totalCount),{get:()=>dn(Pa,"GET",{id:u}),delete:()=>dn(Pa,"DELETE",{id:u}),isAlreadyReleasedError:lT,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 NE(s.properties)},async getNumberPrecision(a){let s=await dn("/k/v1/app/settings.json","GET",{app:a});return Pp(s)},async getProcessStatuses(a){let s=await dn("/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 cT(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)?cT(d):Reflect.get(l,d,c)},has(l,d){return DE.has(d)?!1:Reflect.has(l,d)}})}function pT(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=pT(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 dT="A-Za-z",fT="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",bu=`${dT}${fT}`,UE=`${bu}0-9_`,ET=new RegExp(`^[${bu}]$`,"u"),RT=new RegExp(`^[${UE}]$`,"u"),gT=new RegExp(`^[${bu}][${UE}]{0,63}$`,"u");function yT(e){return ET.test(e)}function mT(e){return RT.test(e)}function Pu(e){let t=e.normalize("NFC").toUpperCase();if(!gT.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 wu(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 hT(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 AT(e,t){let n=t>0?e[t-1]:"";if(wu(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,!yT(e[l]??""))return null;for(l++;l<e.length&&mT(e[l]);)l++;s=l;try{o=Pu(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&&wu(e[l]);)l++;if(l===f)return null}let d=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&hT(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(wu(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 Nu(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]!==`
13
- `;)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=AT(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=Nu(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"]),ST=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 TT(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=Pu(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 Cu(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&&TT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=GE(e,ST,"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 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 IT(e,t,n){return e.slice(t,n)}function Ti(e,t,n){let r=Nu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${IT(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 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 wT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function bT(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=Af(e);return{type:"query",rows:e.rows.map(wT),columns:e.columns.map(r=>bT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ca(t)}}function VE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parse();return We(r),r}function WE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parseStatements();return r.forEach(We),r}function Ou(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=pn(e);return t.code==="PARSE_ERROR"?t:Xn("SQL statement could not be parsed",e)}function PT(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(Oi(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 NT(e){let t=YE(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(Ou(t))throw $e("APPLY statements are not allowed in engine library queries");if(!Vu(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(!gn(n))throw $e(`${n.type} statements are not read-only`);if(Ou(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 qE(e){let t=PT(e);return NT(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 CT(e){let t=e.error,n=t?.cause!==void 0?pn(t.cause):new fe("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Su(n,e.index,e.type)}async function Lu(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=>Cf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw CT(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 QE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function _u(e,t){let n=[];try{let r=Cu(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=>Vl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return QE(s),Oa(s)}catch(r){throw Ii(pn(r),n)}}async function Du(e,t){let n=[],r=[];try{let i=Cu(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));QE(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(`
14
- `),plan:p,metrics:Ca(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=mu(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
15
- `),plan:d,metrics:Ca()}}catch(i){throw Ii(Ta(i,n),r)}}var vu="3.48.0";var ZE=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function OT(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return ZE(e,t)?e[t]:void 0}})}function LT(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function eR(e,t,n,r=console){let i;if(e.ksql===void 0){i=OT();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(LT(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(ZE(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var _T={version:vu,createReadonlyKintoneClient:Iu,explainQuery:Du,KsqlEngineError:fe,runBatch:Lu,runQuery:_u};eR(window,vu,_T);})();
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 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=Ks(e.where,{fieldTypes:s,fieldOptions:l});rS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(lo(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:ft(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function oS(e){return zl(e)}async function aS(e,t,n,r,i){let s=[...sS(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 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=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 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 cn.set(l,ha(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=_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,he=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 pS(e,t,n,r,i,o){let a=await iE(e,t,n,r,i,o),s=await we(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 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 $n(e,t,r),gt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return yS(e,t,n,r);let i=dp(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=fp(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 mt(e.appId,e.fields,i,t,r),a=[],s=[],l=await we(e.appId,t,r),d=lE(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 lE(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 we(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=Aa(a),l=new Map;for(let c of e.values){let u=Rf(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:Rf(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(uE(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=[];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(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=[];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(uE(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 uE(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 Rf(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 AS(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: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}`]=xl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=xl(a?.value);return i}function TS(e,t,n,r){for(let i of n){let o=gf(i.key,e),a=gf(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 gf(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(aE(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 we(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:tE(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 cE(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 pE(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 IS(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 Te||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 dE(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 fE(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 EE(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 RE=new WeakMap,Kl=new WeakMap,gE=new WeakMap,yE=new WeakMap;async function mE(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=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 _=tu.get(y)??Ea(y,await Ra(y,l,n));if(_&&RE.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: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=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 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"),un(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: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)),gE.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))]]:[]))});yE.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=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),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:Ee(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 wS(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 yf(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)} ${wS(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?bS(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=yf(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)",` ${mf(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=yf(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)}`,` ${mf(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 bS(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 mf(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var hE=Symbol("ksql.explainFetchPlan");function mu(e){return e[hE]}function AE(e,t){e[hE]=t}async function SE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=he){let d=$l(r);try{let c=ql(e,a),u=Ja(c),p=Ds(c,n),f=Lf(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 mE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?Gl(I):[...Gl(I),...TE(PS(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 AE(m,{statements:g}),m}finally{lu(d)}}function PS(e,t,n,r,i=100,o=he,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,he,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 NS(e,t,n,r,i,o=100,a=he,s){let l=s??await pi(e.query,t,n),d=await mE(e.query,t,n,r,l),c={sources:[]},u=Gl(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Bl(d),...u]:[...Bl(d),...u,...TE(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 AE(E,{statements:[{index:0,fetch:hu(c.sources),sources:c.sources}]}),E}function TE(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=he,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=DS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="WITH"){let f=vS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="INSERT")return MS(e,t,i,o);if(e.type==="INSERT_SELECT")return FS(e,t,n,r,s);if(e.type==="UPSERT")return GS(e,t,i,o);if(e.type==="UPSERT_SELECT")return $S(e,t,n,r,s);if(e.type==="UPDATE")return xS(e,t,n,r,i,o,a);if(e.type==="DELETE")return BS(e,t);if(e.type==="REORDER")return VS(e,t);if(e.type==="VALIDATE")return LS(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 hf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function hu(e){return e.reduce((t,n)=>hf[t]>=hf[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 CS(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:CS(o)};return e.sources.push(s),s}function OS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Xo(e){return` fetch: ${OS(e)}`}function LS(e,t){let n=gE.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 _S(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&&zf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=US(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Wp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Kl.get(e)??vf.get(e)??[])R.push(_S(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(IE).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"?$f(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=RE.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=Kf(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(...kS(e,n,r,i,s)),R}function DS(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 vS(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,he,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 US(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 kS(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 MS(e,t,n=ht,r=he){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 FS(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 xS(e,t,n,r,i=100,o=he,a=1e4){if(e.applyBlocks?.length)return KS(e,t,i,o,a);let s=lp(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=WS(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(` ${YS(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 KS(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=yE.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 BS(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 GS(e,t,n=ht,r=he){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 $S(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 VS(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(IE).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 IE(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 WS(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 wE(e,t,n,r,i){let o=du(e),a=await we(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 we(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 HS(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 YS(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} = ${bE(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 bE(e){return`${Af(e.left)} ${e.op} ${Af(e.right)}`}function Af(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"?`(${bE(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 fe=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 fe("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new fe("PARSE_ERROR",e,t)}function PE(){let e=new on;return new fe("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 jS(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 fe?e:e instanceof Te||e instanceof T?new fe("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new fe("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new fe("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new fe("CLIENT_ERROR",e.message,e.cause):jS(e)?new fe("CLIENT_ERROR",mi(e),e):new fe("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 zS=2,Ia=5,qS=3e4,XS=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??zS;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??qS,this.quarantineMs=n.quarantineMs??XS}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 JS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function QS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=JS){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 ZS(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 NE(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 ZS(QS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function CE(e){return OE(e,tT(e))}function OE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=nT(o.options),s=rT(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)&&!eT.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...OE(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var eT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function tT(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 nT(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 rT(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function LE(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 iT="Filter aborted because of too many search results";function _E(e){return e?.includes(iT)===!0}var DE="/k/v1/records.json",Pa="/k/v1/records/cursor.json",oT=4096,aT=2,Tu=e=>kintone.api.url(e,!0);function sT(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(DE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=oT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Tu(DE),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 lT(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 uT(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 cT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Iu(e={}){let t=e.cursorMaxActive??aT;cT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=sT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await lT(l);let d=await l.json();return _E(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=NE(Number(c.totalCount),{get:()=>dn(Pa,"GET",{id:u}),delete:()=>dn(Pa,"DELETE",{id:u}),isAlreadyReleasedError:uT,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 CE(s.properties)},async getNumberPrecision(a){let s=await dn("/k/v1/app/settings.json","GET",{app:a});return Np(s)},async getProcessStatuses(a){let s=await dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:LE(s.states)}}}}var vE=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 pT(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 PE();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 vE.has(d)?pT(d):Reflect.get(l,d,c)},has(l,d){return vE.has(d)?!1:Reflect.has(l,d)}})}function dT(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=dT(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 fT="A-Za-z",ET="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",bu=`${fT}${ET}`,kE=`${bu}0-9_`,RT=new RegExp(`^[${bu}]$`,"u"),gT=new RegExp(`^[${kE}]$`,"u"),yT=new RegExp(`^[${bu}][${kE}]{0,63}$`,"u");function mT(e){return RT.test(e)}function hT(e){return gT.test(e)}function Pu(e){let t=e.normalize("NFC").toUpperCase();if(!yT.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 wu(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 AT(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 ST(e,t){let n=t>0?e[t-1]:"";if(wu(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,!mT(e[l]??""))return null;for(l++;l<e.length&&hT(e[l]);)l++;s=l;try{o=Pu(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&&wu(e[l]);)l++;if(l===f)return null}let d=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&AT(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(wu(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 Nu(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=ST(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function UE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function ME(e,t="dev",n){let r=Nu(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=UE(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=UE(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 FE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),xE=new Set([...FE,"onLimitReached"]),TT=new Set([...xE,"variables","tempTableMaxRows"]);function KE(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 BE(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 IT(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 GE(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=Pu(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 $E(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 Cu(e,t){KE(e);let n=t==="run"?xE:FE;BE(e.client);let r=$E(e,n,t==="run"?"runQuery":"explainQuery"),i=GE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function VE(e){KE(e),BE(e.client),e.variables!==void 0&&IT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=$E(e,TT,"runBatch"),n=GE(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 wT(e,t,n){return e.slice(t,n)}function Ti(e,t,n){let r=Nu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${wT(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=ME(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 bT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function PT(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=Sf(e);return{type:"query",rows:e.rows.map(bT),columns:e.columns.map(r=>PT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ca(t)}}function WE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parse();return We(r),r}function HE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parseStatements();return r.forEach(We),r}function Ou(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 YE(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 NT(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return WE(e,{import:!0})}catch(t){let n=YE(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 jE(e){if(Oi(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function zE(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return HE(e,{import:!0})}catch(t){throw YE(t)}}function CT(e){let t=jE(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(Ou(t))throw $e("APPLY statements are not allowed in engine library queries");if(!Vu(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function qE(e){let t=jE(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(Ou(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 XE(e){let t=NT(e);return CT(t),t}function JE(e){let t=zE(e);return t.forEach(qE),t}function QE(e){let t=e.trim(),n=zE(t);n.forEach(qE);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 OT(e){let t=e.error,n=t?.cause!==void 0?pn(t.cause):new fe("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Su(n,e.index,e.type)}async function Lu(e,t){let n=[],r=[];try{let i=VE(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=JE(o.sql);let a=await Qn(o.client,c=>Of(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw OT(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 _u(e,t){let n=[];try{let r=Cu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=XE(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 Du(e,t){let n=[],r=[];try{let i=Cu(t,"explain"),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings;let a=QE(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=>SE(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 vu="3.49.0";var eR=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function LT(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return eR(e,t)?e[t]:void 0}})}function _T(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function tR(e,t,n,r=console){let i;if(e.ksql===void 0){i=LT();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(_T(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(eR(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var DT={version:vu,createReadonlyKintoneClient:Iu,explainQuery:Du,KsqlEngineError:fe,runBatch:Lu,runQuery:_u};tR(window,vu,DT);})();