@rex0220/kintone-sql-tools 3.49.0 → 3.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,17 @@
1
- "use strict";var La=Object.defineProperty;var eR=Object.getOwnPropertyDescriptor;var tR=Object.getOwnPropertyNames;var nR=Object.prototype.hasOwnProperty;var rR=(e,t)=>{for(var n in t)La(e,n,{get:t[n],enumerable:!0})},iR=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of tR(t))!nR.call(e,i)&&i!==n&&La(e,i,{get:()=>t[i],enumerable:!(r=eR(t,i))||r.enumerable});return e};var oR=e=>iR(La({},"__esModule",{value:!0}),e);var kT={};rR(kT,{KsqlEngineError:()=>he,createReadonlyKintoneClient:()=>OE,explainQuery:()=>ZE,runBatch:()=>XE,runQuery:()=>QE,version:()=>UT});module.exports=oR(kT);async function be(e,t,n,r,i={}){let o=i.pageSize??aR,a=Math.max(1,i.parallel??sR),s=i.maxRecords??lR,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,y=Du(n,R),m=await _u(e,t,y,u,o,g);if(Lu(m,i),p.push(...m.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(m.records.length<o)return p;for(g+=o,g>=_a&&(R=vu(m.records),g=0);;){if(d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Pe(E)}let S=c-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),w=[];for(let N=0;N<I;N++){let _=g+N*o;if(_>=_a)break;w.push(_)}let C=Du(n,R),b=await Promise.all(w.map(N=>_u(e,t,C,u,o,N)));for(let N of b)Lu(N,i);let D=!1;for(let N of b){if(p.push(...N.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Pe(E)}if(N.records.length<o){D=!0;break}}if(D)break;if(g+=o*w.length,g>=_a){let N=b[b.length-1];R=vu(N.records),g=0}}return p}function Lu(e,t){e.searchAborted&&t.onSearchAborted?.()}function Uu(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 aR=500,sR=1,lR=1e4,_a=1e4;async function _u(e,t,n,r,i,o){let a=uR(n,i,o);return e({app:t,query:a,fields:r})}function Du(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 uR(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function vu(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 cR=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function pR(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=cR.exec(e.trim());if(t===null)return null;let n=pR(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 dR(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:dR(t)}function fR(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=fR(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Pi(e,t){let n=_e(e),r=_e(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return bi(n,r)}var Xe="__NO_FROM__";function Da(e){return e.windowKind!=="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 Mu(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 ER(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=ER(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 Fu(e){return re(e).type!=="NONE"}function xu(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 RR(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 va(e){return St(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function gn(e){return!va(e)&&(RR(e.type)||St(e.type))}function Ku(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 Bu=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"&&Bu.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"&&!Bu.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,$u(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 Gu(e){return At(e).size>0}function $u(e){let t=e.left.type==="SELECT"?Rn(e.left):$u(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 Vu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Wu(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 gR=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})}),Ma=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 yR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function mR(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 yR(e,()=>hR(t,gR[e]))}function hR(e,t){let n=mR(e);if(n===null)return;if(n.type==="UPSERT"){SR(n,t);return}let r=n.applyBlocks;if(Ua(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){TR(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"),IR(i.where,t.multipleParents),Yu(r,t)}function Yu(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"&&Hu(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"&&Hu(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 AR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function zu(e,t){if(ju(e),e.targetKind==="MULTI_VALUE"){if(!AR.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 Ua(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 SR(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??[];Ua(n),Ua(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),qu(n,"UPSERT ON INSERT"),Yu(r,{...t,idxSelectors:!1,expectRows:!1})}function qu(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 TR(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"),qu(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=Ma[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Fa(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 Fa(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function Xu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ut(t.where))&&!Ma[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} public multiple-parent write is not connected`)}function Sn(e){if(!Ma[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} internal prepared write is not available`)}function mn(e){return`Phase ${e.slice(5)}`}function IR(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"),ka(e,t))}function ka(e,t){if(Array.isArray(e)){for(let o of e)ka(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))ka(o,t)}function Hu(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=wR(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 wR(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 Ju(e){return e.includes("%")||e.includes("_")}function nr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function It(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Tt(e){if(e===null)return!1;if(nr(e))return!0;switch(e.type){case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function fe(e){if(e===null)return!1;if(It(e))return!0;switch(e.type){case"LOGICAL":return fe(e.left)||fe(e.right);case"NOT":case"GROUP":return fe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return bR(e);case"NULL_CHECK":return NR(e);case"LOGICAL":return CR(e);case"NOT":return OR(e);case"GROUP":return LR(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 bR(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=Zu(e.left),n=PR(e.op),r=_R(e.right,e.op);return`${t} ${n} ${r}`}function PR(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 NR(e){let t=Zu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function CR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=Qu(e.left)?`(${t})`:t,o=Qu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function OR(e){return V(tr(e.expr))}function LR(e){return`(${V(e.expr)})`}function Zu(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 _R(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 ec(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return tc(e);case"IN_LIST":return FR(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 ec(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function tc(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return DR(e)}function DR(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"||!kR(e.args.offset,e.args.offsetText)||!vR.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&&!UR.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"||!MR(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var vR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),UR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function kR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function MR(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 FR(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 xR(e.values),`(${e.values.map(r=>r.type==="STRING"?ec(r):r.type==="NUMBER"?H(r):tc(r)).join(",")})`}function xR(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 Qu(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 Ka(e);let n=`${Tn(e.left)}${e.op}${Tn(e.right)}`;return t?n:`(${n})`}function nc(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ka(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 xa(e.expr)}function ic(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(ic).join(",")})`;case"ARITH_VALUE":return Tn(e.expr);case"CASE_VALUE":return xa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function ir(e){switch(e.type){case"BINARY":return`${nc(e.left)} ${e.op.replace("_"," ")} ${ic(e.right)}`;case"NULL_CHECK":return`${nc(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 rc(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 xa(e){let t=e.branches.map(r=>`WHEN ${ir(r.condition)} THEN ${rc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${rc(e.elseResult)}`;return`CASE ${t}${n} END`}function BR(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 Ka(e){return`${e.func}(${e.args.map(BR).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 Ka(e);case"CASE_WHEN":return xa(e);case"SCALAR_ARITH":return`(${Gt(e.left)}${e.op}${Gt(e.right)})`;case"CONCAT_OP":return`(${Gt(e.left)}||${Gt(e.right)})`}}function GR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e,!0):Gt(e)}function ae(e,t,n){let r=GR(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 oc=Symbol("ksql.groupingRowMeta"),ac=new WeakMap;function sc(e,t){return Object.defineProperty(e,oc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function $R(e){return e[oc]}function VR(e){return $R(e)?.includedCanonicalIds}function lc(e,t){ac.set(e,t)}function In(e,t){let n=VR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=ac.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var cc=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 Ga(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(Ga(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 WR(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 HR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function uc(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 YR(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).`);lc(e,r.canonicalId)}function Ba(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Mi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function jR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Ga(e.name)];let t=[];return or(e,t),t}function $a(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 pc(e,t,n=()=>{}){$a(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=xu(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)YR(c,t,a);let l=HR(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(Ga(c.field)):or(c,u);for(let p of u)Ba(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)||uc(u)||Ba(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of jR(c.key))u.tableAlias===null&&l.has(u.field)||uc(u)||Ba(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(!WR(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 zR(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||zR(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"&&gc(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 dc(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 dc(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function dc(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(qR).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:XR(e.columns),totalCount:!1}}function Rc(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=mc(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 qR(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 XR(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"?Va(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"&&Va(e,t)}function Bi(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Va(e,t){for(let n of e.args)QR(n,t)}function QR(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"){Va(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)fc(n.result,t);e.elseResult&&fc(e.elseResult,t)}}function fc(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 gc(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"?gc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Ec(t.result))||e.elseResult!==null&&Ec(e.elseResult):!1}function Ec(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 yc(e,t){let n=new Set,r=mc(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function mc(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=eg(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")&&tg(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)},y=(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"){y(h.left,P),y(h.right,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}},m=(h,P="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&w(h.arg,P);return}h.type==="AGG_ARITH"&&(m(h.left,P),m(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"){m(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"){y(h,P);return}I(h,P)},C=(h,P="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){m(h,P);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(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){m(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"){m(h.expr,P);return}if(h.type==="ARITH_FIELD"){y(h.expr,P);return}h.type!=="GROUPING_FIELD"&&b(h.expr,P)},N=(h,P="select")=>{if(h.type==="ARITH_VALUE"){y(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"){y(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"){y(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":m(h.expr,"select");break;case"ARITH_COL":y(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 eg(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 tg(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||Fu(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:hc(e.left,t)};case"NULL_CHECK":return{...e,field:hc(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 hc(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function bn(e,t={}){return lr(e,n=>ng(n,t))}function ur(e,t={}){return lr(e,n=>Ac(n,t)||Sc(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 ng(e,t){return rg(e,t)||ag(e,t)?!0:Ac(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":og(e,t)}function rg(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Wa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var ig=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function og(e,t){if(!Sc(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||!ig.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 ag(e,t){return!sg(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function sg(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 Ac(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Wa(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 Sc(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Wa(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 Wa(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 Ha(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||!cg(l,a)||o===null||!Tc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ug(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 lg(c,e,l),c}function lg(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(!Tc(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 ug(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 cg(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Tc(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 Ic(e){wc(e)}function ja(e){if(Ha(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 wc(e){switch(e.type){case"SELECT":Cn(e);return;case"UNION":qa(e);return;case"WITH":bc(e);return;case"EXPLAIN":wc(e.query);return;case"CREATE_TEMP_TABLE":za(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Vt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ut(e.where)&&fe(e.where)){Ya(e.where),Vt(e);return}if(Nt(e)&&e.subtableCode)throw new se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&fe(e.where)&&!fg(e,e.where)){Ya(e.where),Vt(e);return}if(Nt(e))throw new se("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(Nt(e)&&e.subtableCode)throw new se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&fe(e.where)){Ya(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 Ya(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 za(e){e.type==="SELECT"?Cn(e):e.type==="UNION"?qa(e):bc(e)}function qa(e){za(e.left),Cn(e.right)}function bc(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"&&qa(t.query);za(e.query)}function Cn(e){if(dg(e),fe(e.where)&&!(Ue(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Nn(e,{allowUnresolvedVariables:!0});if(Ha(n).length===0){Vt(e);return}if(pg(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 pg(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 dg(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 fg(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&&Eg(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 Eg(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 Pc(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(Rg(t))throw new pr;return;default:return}}function Rg(e){let t=!1;return Yi(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||gg(n.where)&&(t=!0)}),t}function gg(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){yg(e),Pc(e),Ic(e)}function yg(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,Nc=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 mg=new Set(["=","!=","<>",">","<",">=","<="]);function Xa(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Xa(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&&mg.has(String(r.op));Xa(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function hg(e){let t=e.type==="EXPLAIN"?e.query:e;return St(t.type)||t.type==="VALIDATE"}function Ja(e){if(Array.isArray(e)){for(let t of e)Ja(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&$a(e);for(let n of Object.values(t))Ja(n)}}function Qa(e){if(e.length===0)throw new Q("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Ja(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=[],y=new Set,m=new Set,S=new Set,A=[];Xa(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&&hg(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>Nc)throw new Q(`ParseError: batch exceeds ${Nc} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?dr(u.query,y,m):u.type==="DROP_TEMP_TABLE"||dr(u,y,m);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 y){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:va(u),isReadOnly:gn(u),hasWhere:Vu(u),insertValuesCount:Wu(u),appIds:[...m].sort((C,b)=>C-b),tempTablesCreated:R,tempTablesReferenced:[...y],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:Gu(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(Za(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&&Cc(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(!Za(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&&Cc(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";var La=Object.defineProperty;var tR=Object.getOwnPropertyDescriptor;var nR=Object.getOwnPropertyNames;var rR=Object.prototype.hasOwnProperty;var iR=(e,t)=>{for(var n in t)La(e,n,{get:t[n],enumerable:!0})},oR=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of nR(t))!rR.call(e,i)&&i!==n&&La(e,i,{get:()=>t[i],enumerable:!(r=tR(t,i))||r.enumerable});return e};var aR=e=>oR(La({},"__esModule",{value:!0}),e);var xT={};iR(xT,{KsqlEngineError:()=>he,createReadonlyKintoneClient:()=>LE,explainQuery:()=>eR,runBatch:()=>JE,runQuery:()=>ZE,version:()=>FT});module.exports=aR(xT);async function be(e,t,n,r,i={}){let o=i.pageSize??sR,a=Math.max(1,i.parallel??lR),s=i.maxRecords??uR,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,y=Du(n,R),m=await _u(e,t,y,u,o,g);if(Lu(m,i),p.push(...m.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(m.records.length<o)return p;for(g+=o,g>=_a&&(R=vu(m.records),g=0);;){if(d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Pe(E)}let S=c-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),w=[];for(let N=0;N<I;N++){let _=g+N*o;if(_>=_a)break;w.push(_)}let C=Du(n,R),b=await Promise.all(w.map(N=>_u(e,t,C,u,o,N)));for(let N of b)Lu(N,i);let D=!1;for(let N of b){if(p.push(...N.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Pe(E)}if(N.records.length<o){D=!0;break}}if(D)break;if(g+=o*w.length,g>=_a){let N=b[b.length-1];R=vu(N.records),g=0}}return p}function Lu(e,t){e.searchAborted&&t.onSearchAborted?.()}function Uu(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 sR=500,lR=1,uR=1e4,_a=1e4;async function _u(e,t,n,r,i,o){let a=cR(n,i,o);return e({app:t,query:a,fields:r})}function Du(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 cR(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function vu(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 pR=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function dR(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=pR.exec(e.trim());if(t===null)return null;let n=dR(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 fR(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:fR(t)}function ER(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=ER(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Pi(e,t){let n=_e(e),r=_e(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return bi(n,r)}var Xe="__NO_FROM__";function Da(e){return e.windowKind!=="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 Mu(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function RR(e){return`${e.tableAlias??""}\0${e.field}`}function re(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=RR(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function Fu(e){return re(e).type!=="NONE"}function xu(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 gR(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 va(e){return St(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function gn(e){return!va(e)&&(gR(e.type)||St(e.type))}function Ku(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 Bu=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"&&Bu.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"&&!Bu.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,$u(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 Gu(e){return At(e).size>0}function $u(e){let t=e.left.type==="SELECT"?Rn(e.left):$u(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 Vu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Wu(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 yR=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})}),Ma=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 mR(e,t){let n=er;er=e;try{return t()}finally{er=n}}function hR(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 mR(e,()=>AR(t,yR[e]))}function AR(e,t){let n=hR(e);if(n===null)return;if(n.type==="UPSERT"){TR(n,t);return}let r=n.applyBlocks;if(Ua(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){IR(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"),wR(i.where,t.multipleParents),Yu(r,t)}function Yu(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"&&Hu(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"&&Hu(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 SR=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function zu(e,t){if(ju(e),e.targetKind==="MULTI_VALUE"){if(!SR.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 Ua(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 TR(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??[];Ua(n),Ua(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),qu(n,"UPSERT ON INSERT"),Yu(r,{...t,idxSelectors:!1,expectRows:!1})}function qu(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 IR(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"),qu(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=Ma[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Fa(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 Fa(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function Xu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ut(t.where))&&!Ma[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} public multiple-parent write is not connected`)}function Sn(e){if(!Ma[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${mn(e)} internal prepared write is not available`)}function mn(e){return`Phase ${e.slice(5)}`}function wR(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"),ka(e,t))}function ka(e,t){if(Array.isArray(e)){for(let o of e)ka(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))ka(o,t)}function Hu(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=bR(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 bR(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 Ju(e){return e.includes("%")||e.includes("_")}function nr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function It(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Tt(e){if(e===null)return!1;if(nr(e))return!0;switch(e.type){case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function fe(e){if(e===null)return!1;if(It(e))return!0;switch(e.type){case"LOGICAL":return fe(e.left)||fe(e.right);case"NOT":case"GROUP":return fe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return PR(e);case"NULL_CHECK":return CR(e);case"LOGICAL":return OR(e);case"NOT":return LR(e);case"GROUP":return _R(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 PR(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=Zu(e.left),n=NR(e.op),r=DR(e.right,e.op);return`${t} ${n} ${r}`}function NR(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 CR(e){let t=Zu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function OR(e){let t=V(e.left),n=V(e.right),r=e.op==="AND"?"and":"or",i=Qu(e.left)?`(${t})`:t,o=Qu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function LR(e){return V(tr(e.expr))}function _R(e){return`(${V(e.expr)})`}function Zu(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 BR(e.field)}function DR(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 ec(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return tc(e);case"IN_LIST":return xR(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 ec(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function tc(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return vR(e)}function vR(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"||!MR(e.args.offset,e.args.offsetText)||!UR.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&&!kR.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"||!FR(e.args.day)?rr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return rr()}var UR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),kR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function MR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function FR(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 xR(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 KR(e.values),`(${e.values.map(r=>r.type==="STRING"?ec(r):r.type==="NUMBER"?H(r):tc(r)).join(",")})`}function KR(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 BR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Qu(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 Ka(e);let n=`${Tn(e.left)}${e.op}${Tn(e.right)}`;return t?n:`(${n})`}function nc(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ka(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 xa(e.expr)}function ic(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(ic).join(",")})`;case"ARITH_VALUE":return Tn(e.expr);case"CASE_VALUE":return xa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function ir(e){switch(e.type){case"BINARY":return`${nc(e.left)} ${e.op.replace("_"," ")} ${ic(e.right)}`;case"NULL_CHECK":return`${nc(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 rc(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 xa(e){let t=e.branches.map(r=>`WHEN ${ir(r.condition)} THEN ${rc(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${rc(e.elseResult)}`;return`CASE ${t}${n} END`}function GR(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 Ka(e){return`${e.func}(${e.args.map(GR).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 Ka(e);case"CASE_WHEN":return xa(e);case"SCALAR_ARITH":return`(${Gt(e.left)}${e.op}${Gt(e.right)})`;case"CONCAT_OP":return`(${Gt(e.left)}||${Gt(e.right)})`}}function $R(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Tn(e,!0):Gt(e)}function ae(e,t,n){let r=$R(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 oc=Symbol("ksql.groupingRowMeta"),ac=new WeakMap;function sc(e,t){return Object.defineProperty(e,oc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function VR(e){return e[oc]}function WR(e){return VR(e)?.includedCanonicalIds}function lc(e,t){ac.set(e,t)}function In(e,t){let n=WR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=ac.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var cc=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 Ga(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(Ga(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 HR(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 YR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function uc(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 jR(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).`);lc(e,r.canonicalId)}function Ba(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Mi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function zR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Ga(e.name)];let t=[];return or(e,t),t}function $a(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 pc(e,t,n=()=>{}){$a(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=xu(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)jR(c,t,a);let l=YR(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(Ga(c.field)):or(c,u);for(let p of u)Ba(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)||uc(u)||Ba(u,t,a,"HAVING")}for(let c of e.orderBy)for(let u of zR(c.key))u.tableAlias===null&&l.has(u.field)||uc(u)||Ba(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(!HR(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 qR(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||qR(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"&&gc(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 dc(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 dc(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function dc(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Ki(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(V(e.where)),e.orderBy.length>0){let i=e.orderBy.map(XR).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:JR(e.columns),totalCount:!1}}function Rc(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=mc(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function XR(e){let t=e.direction==="ASC"?"asc":"desc";if(e.key.type!=="FIELD_NAME")throw new Error("ORDER BY \u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08FULL_SCAN \u304C\u5FC5\u8981\u3067\u3059\uFF09");return`${e.key.name} ${t}`}function JR(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"?Va(r.expr,n):r.type==="SCALAR_VALUE_COL"&&wn(r.expr,n);return[...new Set(n)]}function QR(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"?QR(e,t):e.type==="STRING_FUNC"&&Va(e,t)}function Bi(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Va(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"){Va(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)fc(n.result,t);e.elseResult&&fc(e.elseResult,t)}}function fc(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"&&eg(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 eg(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ar(e,t):wn(e,t)}function gc(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"?gc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Ec(t.result))||e.elseResult!==null&&Ec(e.elseResult):!1}function Ec(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 yc(e,t){let n=new Set,r=mc(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function mc(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=tg(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")&&ng(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)},y=(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"){y(h.left,P),y(h.right,P);return}if(h.type==="STRING_FUNC"){A(h,P);return}},m=(h,P="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&w(h.arg,P);return}h.type==="AGG_ARITH"&&(m(h.left,P),m(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"){m(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"){y(h,P);return}I(h,P)},C=(h,P="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){m(h,P);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(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){m(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"){m(h.expr,P);return}if(h.type==="ARITH_FIELD"){y(h.expr,P);return}h.type!=="GROUPING_FIELD"&&b(h.expr,P)},N=(h,P="select")=>{if(h.type==="ARITH_VALUE"){y(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"){y(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"){y(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":m(h.expr,"select");break;case"ARITH_COL":y(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 tg(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 ng(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||Fu(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:hc(e.left,t)};case"NULL_CHECK":return{...e,field:hc(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 hc(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function bn(e,t={}){return lr(e,n=>rg(n,t))}function ur(e,t={}){return lr(e,n=>Ac(n,t)||Sc(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 rg(e,t){return ig(e,t)||sg(e,t)?!0:Ac(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":ag(e,t)}function ig(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Wa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var og=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ag(e,t){if(!Sc(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||!og.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 sg(e,t){return!lg(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function lg(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 Ac(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Wa(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 Sc(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Wa(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 Wa(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 Ha(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||!pg(l,a)||o===null||!Tc(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:cg(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 ug(c,e,l),c}function ug(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(!Tc(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 cg(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 pg(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Tc(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 Ic(e){wc(e)}function ja(e){if(Ha(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 wc(e){switch(e.type){case"SELECT":Cn(e);return;case"UNION":qa(e);return;case"WITH":bc(e);return;case"EXPLAIN":wc(e.query);return;case"CREATE_TEMP_TABLE":za(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Vt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ut(e.where)&&fe(e.where)){Ya(e.where),Vt(e);return}if(Nt(e)&&e.subtableCode)throw new se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&fe(e.where)&&!Eg(e,e.where)){Ya(e.where),Vt(e);return}if(Nt(e))throw new se("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(Nt(e)&&e.subtableCode)throw new se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&fe(e.where)){Ya(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 Ya(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 za(e){e.type==="SELECT"?Cn(e):e.type==="UNION"?qa(e):bc(e)}function qa(e){za(e.left),Cn(e.right)}function bc(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"&&qa(t.query);za(e.query)}function Cn(e){if(fg(e),fe(e.where)&&!(Ue(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Nn(e,{allowUnresolvedVariables:!0});if(Ha(n).length===0){Vt(e);return}if(dg(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 dg(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 fg(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 Eg(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function Vi(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Vi(e.left,t)||Vi(e.right,t);case"NOT":case"GROUP":return Vi(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Wi(e,t){if(Array.isArray(e)){for(let r of e)Wi(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&Rg(r)||Wi(r,t)}function Hi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Hi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Hi(i,t)}function Rg(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var pr=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function Pc(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(gg(t))throw new pr;return;default:return}}function gg(e){let t=!1;return Yi(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||yg(n.where)&&(t=!0)}),t}function yg(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){mg(e),Pc(e),Ic(e)}function mg(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,Nc=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 hg=new Set(["=","!=","<>",">","<",">=","<="]);function Xa(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Xa(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&&hg.has(String(r.op));Xa(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?d:o?n:!1)}}}function Ag(e){let t=e.type==="EXPLAIN"?e.query:e;return St(t.type)||t.type==="VALIDATE"}function Ja(e){if(Array.isArray(e)){for(let t of e)Ja(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&$a(e);for(let n of Object.values(t))Ja(n)}}function Qa(e){if(e.length===0)throw new Q("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Ja(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=[],y=new Set,m=new Set,S=new Set,A=[];Xa(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&&Ag(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>Nc)throw new Q(`ParseError: batch exceeds ${Nc} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?dr(u.query,y,m):u.type==="DROP_TEMP_TABLE"||dr(u,y,m);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 y){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:va(u),isReadOnly:gn(u),hasWhere:Vu(u),insertValuesCount:Wu(u),appIds:[...m].sort((C,b)=>C-b),tempTablesCreated:R,tempTablesReferenced:[...y],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:Gu(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(Za(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&&Cc(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(!Za(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&&Cc(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 Za(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Ag(t)}function Cc(e){let t=e.codePointAt(0);return Za(e)||t>=48&&t<=57}function On(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Ag(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Lc=20,es=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"}),vc=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"}),tw=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),Sg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Tg=new Set(Sg);function Ig(e){return Tg.has(e)}var Uc=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 _c(e){return Er[e]!==void 0}var wg=Object.freeze([...Li]),bg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Pg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ng(e){return bg.has(e)}function Cg(e){return Pg.has(e)}function Og(e){return Number.isInteger(e)&&e>=1&&e<=31}var nw=Object.freeze(Array.from(new Set([...Object.keys(es),...vc,...Object.keys(fr),...Object.keys(Uc),...Object.keys(Er),...wg,"IF"]))),Lg=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 _g(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Lg.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"}},Dc=["\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>Lc)throw new T(`batch exceeds ${Lc} 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,y;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()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(g=this.parseOnDuplicate());let m;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("("),m=this.parseIdentList(),this.expect(")"),new Set(m).size!==m.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(m)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!m)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(m);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(m)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(g)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let 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:y}:{},...m?{replaceSubtables:m}:{},...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&&_g(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(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));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(Dc,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 Uc[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(Dc,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=es[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=es[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(vc.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=Dg(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(!Ig(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(!Ng(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(!Cg(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(!Og(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(_c(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=Mu(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(_c(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 Dg(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 vg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ug=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":Ug.has(e.fieldType)?t="option":vg.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 kg(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 Mg(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 Mc(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 Fg(e,t,n){let r=Mc(e,n),i=Mc(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 xg(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 Fc(e,t){let n=t.optionOrder??new Map,i=[...new Set(xg(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(xc),i}function xc(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=Fc(e,n),i=Fc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=xc(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 Mg(e,t);case"recordNumber":return Fg(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 Kc(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):kg(Number(o),Number(a));if(d!==0)return d}return _t(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function le(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Ne(t,e.field));if(e.type==="STRING_FUNC")return Number(ue(e,t));let n=le(e.left,t),r=le(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Ee(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ne(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return ue(e,t,n,r);case"CASE_WHEN":return Ce(e,t,n,r);case"CONCAT_OP":return ue({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Ee(e.left,t,n,r)),o=Number(Ee(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function vt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Vc(e,t,n,r);case"SCALAR_ARITH":{let i=vt(e.left,t,n,r),o=vt(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=vt(e.left,t,n,r),o=vt(e.right,t,n,r);return`${i??""}${o??""}`}default:return Ee(e,t,n,r)}}function Ji(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function Bg(e){return e>=55296&&e<=56319}function Gg(e){return e>=56320&&e<=57343}function Zi(e,t){return t>0&&t<e.length&&Bg(e.charCodeAt(t-1))&&Gg(e.charCodeAt(t))}function Bc(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 ns(e,t){let n=Math.min(Math.max(0,t),e.length);return Zi(e,n)&&(n-=1),e.slice(0,n)}function $g(e,t){let n=Math.max(0,e.length-t);return Zi(e,n)&&(n+=1),e.slice(n)}function Vg(e,t,n){let r=Bc(t,e.length),i=Bc(n,e.length);return i<=r?"":(Zi(e,r)&&(r+=1),Zi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Wg(e,t){let n=e.repeat(Math.ceil(t/e.length));return ns(n,t)}var Hg=200,Rr=new Map;function Yg(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 ts(e,t,n=!1){let r=Yg(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>=Hg){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function jg(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function zg(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 qg(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 Xg(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 qg(n,o,c,l?s:void 0)})}function ue(e,t,n,r){ji(e.func,e.args);let i=e.args.map(o=>iy(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 Vg(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?"":ns(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":$g(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return ns(o,a);let s=i[2]??" ";if(s==="")return o;let l=Wg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return Kc(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 ts(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{jg(i[2]);let o=zg(i[4]),a=ts(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Xg(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ts(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 ny(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(rs(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($c(i[0])):"";case"DATE_FORMAT":return Qg(i[0]??"",i[1]??"");case"DATEDIFF":return Zg(i[0]??"",i[1]??"");case"DATE_ADD":return ey(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ty(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 rs(e){return eo(e).getUTCDay()}function Gc(e){let t=eo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Jg(e){return Gc(e).getUTCFullYear()}function $c(e){let t=Gc(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 Qg(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(rs(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][rs(e)]:"";case"%v":return l?String($c(e)).padStart(2,"0"):"";case"%G":return l?String(Jg(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 ey(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 ty(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 ny(e,t){if(/^-?\d+$/.test(t.trim()))return ry(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 ry(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 iy(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(yr(e,t)):e.type==="NUMBER"?H(e):String(Ee(e,t,n,r))}function yr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[ae(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(yr(e.left,t)),r=Number(yr(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Ne(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ne(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return oy(e,t,n,r,i);case"NULL_CHECK":return py(e,t);case"LOGICAL":return dy(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 oy(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=Jc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=sy(e.left,a,i);return ay(e.op,o,e.right,t,a,n,s,i)}function ay(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(cy(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=uy(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=is(n,r,o);return Xc(t,d)}if(e==="NOT_LIKE"){let d=is(n,r,o);return!Xc(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=is(n,r,o,s);return Wt(e,t,l,a)}var Wc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function sy(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(Wc.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(Wc.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 Hc=new Set(["CHECK_BOX","MULTI_SELECT"]),Yc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),ly=new Set(["CREATOR","MODIFIER"]);function uy(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(Hc.has(n)||Yc.has(n)||ly.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Hc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Yc.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 cy(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 py(e,t){let n=Jc(e.field,t);return e.not?n!=="":n===""}function dy(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 Jc(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 is(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 fy(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 Vc(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?null:zc(e.elseResult,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"?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(Ee(e,t,n,r))}function Qc(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 fy(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,Ey=200;function Xc(e,t){if(!Ju(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>=Ey&&to.clear(),to.set(t,n)}return n.test(e)}function _n(e){return ep(e)}function Zc(e){return ep(e.flatMap(t=>t.rules.map(n=>n.condition)))}function ep(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw Re("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw Re("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function Re(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function no(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ne(a.condition,t,n))continue;let s=Ee(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function os(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 Ry=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),gy=new Set(["CHECK_BOX","MULTI_SELECT"]);function oo(e,t=new Map){let n=e.values.map(r=>yy(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function yy(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){os(e.where);let t=fp(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=my(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function my(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 ip(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 as(e){os(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?op(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Dn(n,t):n.type==="STRING_FUNC"?ss(n,t):n.type==="CASE_VALUE"&&ap(n.expr,t);return fp(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function op(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"?op(e,t):e.type==="STRING_FUNC"&&ss(e,t)}function ss(e,t){for(let n of e.args)hy(n,t)}function hy(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"){ss(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"&&ap(e,t)}function io(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ay(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 Ay(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):Dn(e,t)}function tp(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 ap(e,t){for(let n of e.branches)ro(n.condition,t),tp(n.result,t);e.elseResult!==null&&tp(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 ls(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=sp(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:us(d,a,n.get(l),i)};return{id:o,record:s}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function us(e,t,n,r){if(e.type==="ARITH")return String(r?ps(e,r):le(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ee(e,t));if(e.type==="STRING_FUNC")return ue(e,t);if(e.type==="CASE_VALUE")return Ut(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ee("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return pt(e,n)}function so(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(le(e,t));if(e.type==="CASE_VALUE")return Ce(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Sy=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function cs(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=sp(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(Sy.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(ps(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[d]={value:String(Ee(c,s))}:c.type==="CASE_VALUE"?l[d]={value:Ut(c.expr,s,u)}:l[d]={value:pt(c,u)}}}return{id:a,record:l}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function sp(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ps(e,t){let n=np(e.left,t),r=np(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 np(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 ps(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 lp(e){return os(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function up(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function cp(e){return Ry.has(e??"")}function Ty(e){return gy.has(e??"")}function Iy(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 wy(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function pp(e,t){return cp(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Ty(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Iy(e):t==="DATE"?wy(e):e}function dp(e,t){return cp(t)?e.map(n=>({code:n})):e}function rp(e,t,n){if(e.type==="ARRAY")return dp(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"?pp(e.value,n):e.type==="STRING_FUNC"?ue(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(le(e,t)):String(Ee(e,t))}function fp(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 rp(r.result,t,n);return e.elseResult!==null?rp(e.elseResult,t,n):""}function pt(e,t){let n=ds(e,t);if(!n.ok)throw new ee(n.message);return n.value}function ds(e,t){try{return{ok:!0,value:by(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function by(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 pp(e.value,t);case"NUMBER":return H(e);case"ARRAY":return dp(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 fs=new Set(["CHECK_BOX","MULTI_SELECT"]),Py=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function Ep(e,t,n){let r=Ny(n.fieldType,e.field),i=Cy(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let m=y.value;m!==""&&(y.kind==="ADD"?(s.has(m)||a.push(m),s.add(m)):l.add(m))}for(let y of s)l.has(y)&&Tr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),c=a.filter(y=>!o.has(y)),u=[...d,...c],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let m=y.kind==="ADD"?f:E,S=!m.has(y.value);return m.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=fs.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:g,addedValues:c.length,removedValues:p,changedValues:c.length+p}}function Ny(e,t){return fs.has(e)||Py.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Cy(e,t,n){if(!Array.isArray(e))return Tr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>fs.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 gs(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)Es(s.field,null,r),Oy(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(zu(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)Es(p.field,s.field,r,c),Rs(p.value,s.field,r,c);u.selector.kind==="WHERE"&&Rs(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),Es(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Rs(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Oy(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 Es(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 Rs(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]=Ap(i?.value);return n}function gp(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??dt(t,r),o=hs(n.$id?.value,"APPLY snapshot $id"),a=gs(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),mp(t,n,i,o)}function yp(e,t,n,r=dt(e,n)){let i=new Set;return t.map(o=>{let a=hs(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),mp(e,o,r,a)})}function mp(e,t,n,r){let i=hs(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(Ep(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=ky(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=[],y=[],m=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=ys(_,u,c.field);y.push({kind:"APPEND",addedRows:L.length}),g.push(...L);continue}if(_.kind==="REMOVE"){let L=Dy(_,p,E,c.field);_.expectRows&&Rp(_.expectRows,L.length,r,c.field,N,_.kind),y.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=_y(_,p,E,c.field);_.expectRows&&Rp(_.expectRows,U.length,r,c.field,N,_.kind),y.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}`;m.has(M)&&Y(`APPLY patches cell ${v.id}.${P.field} more than once.`),m.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:y,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=My(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:us(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 Rp(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 ys(e,t,n){return e.values.map(r=>({value:Ly(e,r,t,n)}))}function Ly(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?ms(a):s.type==="CASE_VALUE"?Ut(s.expr,{},a.fieldType):pt(s,a.fieldType)}}return o}function ms(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 _y(e,t,n,r){return hp(e.selector,t,n,r)}function Dy(e,t,n,r){return hp(e.selector,t,n,r)}function hp(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=vy(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Uy(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function vy(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 Uy(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 ky(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 hs(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function My(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ap(r?.value);return t}function Ap(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),Fy(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Sp(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 Fy(e){let t=As(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(As(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=As(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)=>!Ss(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 As(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 Ss(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)=>Ss(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)&&Ss(n[a],r[a]))}function Tp(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 Ip(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Tp(t.digits,"digits",1,30),r=Tp(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 wp(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 xy=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=By(e);if(i!==""&&!Gy(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=br(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:$y(t.fieldType),message:o}}if(t.required&&Eo(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Eo(r)&&t.fieldType==="NUMBER"){let i=String(r),o=_e(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&Pi(i,t.minValue)<0)return{ok:!1,code:"ERR_RANGE_MIN",message:`${t.code} \u306F ${t.minValue} \u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.maxValue!=null&&Pi(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=wp(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 By(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 Gy(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=ds(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(xy.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function Ro(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ro(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Eo(e){return e===""||Array.isArray(e)&&e.length===0}function $y(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ht(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Ht(l,"TIME")}var vn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ts(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){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 Is(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&&Ts(e,r,i);let R;for(let g of e){g.record??={};let y=d?[...g.preErrors]:[],m=[],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}:m.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&&m.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):m.push({field:b.code,code:N.code,message:N.message})}else{let N=Oe(b.defaultValue,b,a);N.ok||m.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??=_}}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(y),builtInErrors:I(m),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 ws=["required","length","range","choice"];function bs(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 Ps(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 Vy(e){return bs(e).length>0}function Wy(e){return e.fieldType==="NUMBER"||Vy(e)}function go(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Ns(e,t){let{topByCode:n,childrenByTable:r}=Ps(t),i=Wy;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(y=>y.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let 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 Hy=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=Ps(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!Hy.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=Yy(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 y of t.payloadFields)g[y]=y==="$id"?c:Qe(e[y]?.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:bp(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 y=E[g],m=R[g];for(let S of f){let A=y.value?.[S.code]?.value,I=Oe(A,S,n);I.ok?(m.value??={},m.value[S.code]={value:bp(A,S.fieldType,I.value)}):u(S,A,I,go(p,g,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function bp(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 Yy(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;Pp(o,"dmlMaxRows"),Pp(a,"dmlMaxSubtableRows");for(let S of n)fo(S);let l=yp(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)),y=g.flatMap(S=>wr(S).records),m=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Np({plans:g,records:y,validations:m,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Pp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Np(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))Np(n,t);return Object.freeze(e)}var Cs=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)Cp(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),Cp(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 jy(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=>ys(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||Cs.has(u.fieldType)||(d[u.code]=s[u.code]??{value:ms(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;Op(r,"dmlMaxRows"),Op(i,"dmlMaxSubtableRows");let a=e.metadata??mo(t,n),s=jy(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Cs.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}}),y=g.map(A=>A.record),m=[];for(let A=0;A<y.length;A+=100)m.push({app:t.appId,records:y.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return Lp({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:m,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Cp(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||Cs.has(i.fieldType))return et(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Op(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 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)}async function Dp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;_p(i,"dmlMaxRows"),_p(o,"dmlMaxSubtableRows"),Qy(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=zy(t,s.map(y=>y.sourceRowIndex)),c=await Cr({statement:d,fieldInfos:r,metadata:mo(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let y of l){let m=y.targetId;p.has(m)&&Os(`UPSERT APPLY resolves more than one source row to parent $id ${m}.`),p.add(m),y.snapshot||Os(`UPSERT APPLY snapshot for parent $id ${m} is missing.`);let S=Number(y.snapshot.$id?.value);S!==m&&Os(`UPSERT APPLY snapshot $id ${S} does not match target $id ${m}.`);let A=qy(t,y.sourceRowIndex,m),I=A.applyBlocks?.length?dt(A,r):Xy(r);u.push(await yo({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.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 y=[...c.validations.flatMap(m=>m.errors),...f.validations.flatMap(m=>m.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Ls({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 zy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function qy(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 Xy(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 Ls({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 Qy(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 _p(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Os(e){throw new Error(`ArgumentError: ${e}`)}function Ls(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))Ls(n,t);return Object.freeze(e)}function Lr(e){return Un("UPDATE",[kp(e)])}function _s(e){return Un("INSERT",[Up(e)])}function Ds(e){return Un("UPSERT",[Up(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 Up(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:vp(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||=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:vp(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 vp(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=>em(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 em(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 Mp(e,t,n){Sn("phase10c");let r=Sp(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 Fp(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 xp(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 tm=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function nm(e){if(!tm.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 rm(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=nm(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 vs(e,t){let n=rm(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 im(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 Us(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 im(i)?!0:Object.values(i).some(n)};return n(e)}function Kp(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 Bp(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:Uu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],om=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),am=new Set(Me),sm=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"])]]),lm=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),um=["=","!=","in","not in"],cm=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(um)]]),pm=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"])]]),Fs=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"]),Vp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Wp(e){return cm.get(e)??new Set}function Hp(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"&&Fs.has(o.fieldType)&&Wp(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ge(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Dr(e,t)}function Dr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return dm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ms():Rm(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ms();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 ym(e.op,n,r)}}}function dm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return fm(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Gp(n))return $p(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?$p(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 Ms();let i=r(t);if(!i)return kn("WHERE_FIELD_UNRESOLVED",t.field,void 0,vr(e));let o=vr(e);if(!Yp(i.fieldType,o))return kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!gm(i.fieldType,e))return kn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Wp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Gp(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 Gp(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function $p(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=sm.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):lm.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 fm(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?Em(n)?am.has(i)?!om.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 Em(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 Rm(e,t,n){let r=n(e);return r?Yp(r.fieldType,t)?!Fs.has(r.fieldType)&&!Vp.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 Yp(e,t){let n=pm.get(e);return n===void 0||n.has(t)}function gm(e,t){return Fs.has(e)?!0:Vp.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 ym(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 Ms(){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 zp({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 mm(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Kt.has(t.functionName))}function zp(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 hm(e){if(e.capability==="EXACT_PUSHDOWN"||!mm(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 hm(zp(e))}var Am=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Sm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Tm=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)?Xp(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"}):Xp(n[0],e.field)}function Ks(e,t){if(e.left.type!=="FIELD")return kr();let n=Fn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return kr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ge(e,a=>{let s=Fn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:Z({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return kr();let o=Nm(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function Jp(e,t){let n=de(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Fn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ge(e,o=>{let a=Fn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:Z({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Qp(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:td(Mn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Im(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(Pm(e,t)),fetchQueriesByAlias:new Map,...o})}function Zp(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))||ed(bm(e))!==e.allKlikes.length))}function Im(e,t){if(e===null)return qp(null);let n=Object.freeze([...de(e)]);if(n.length===0)return qp(e);let r=wm(e,t,n);if(r!==null)return r;let i=Po(e),o=[],a=new Set;for(let u of i){let p=Jp(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 wm(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),ed(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=Jp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ks(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 ed(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function bm(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Pm(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}Ks(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(od(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 xs(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 xs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw xs(t,"predicate shape is outside the Phase A serializer contract")}}function xs(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=Ks(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 td([...n,...r]);if(od(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:nd(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 td(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:nd(i.relation,n.relation)}}return t}function Nm(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Sm.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Cm(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===">")&&rd(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"||Tm.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?id(e.right.value)?"superset":"unsafe":n==="TIME"?Om(e.right.value)?"superset":"unsafe":Lm(e.right.value)?"superset":"unsafe";if(Am.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 Xp(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 nd(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Cm(e){return e.type==="NUMBER"&&rd(e)&&e.value>0}function rd(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function id(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 Om(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Lm(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!id(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 od(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 Bs(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 _m(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Dm(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=_m(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"&&!Dm(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 vm=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 Um(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(Um(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}vm.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 ad(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 Gs(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 sd=["$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 $s(e){return e.startsWith("_")||e.startsWith("$")}var km=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ws(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ws);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?km.test(t.field):Object.values(t).some(Ws)}function Mm(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)||Ws(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Fm=["_pid","_rid","_idx"];function Vs(e){return[...new Set(e)]}function xm(e){switch(e.kind){case"APP":return Vs([...e.fieldCodes,...sd]);case"SUBTABLE":return Vs([...e.childFieldCodes,...Fm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Vs(e.columns)}}function ld(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:xm(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 Bm(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Gm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function $m(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:Bm(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Gm(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=Mm(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 ud(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?$m(r.name,t,n):{kind:"EXPRESSION"})}}var Vm={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 cd(e,t){let n=Vm[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 pd(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=>cd(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=cd(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 Wm(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(dd(e,a,r.leftColumns),dd(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 y of g)f.push({...y,...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 dd(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 Hm(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function Ad(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 Ym(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)=>zm(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&&Ad(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[Xs(c.expr)]=String(le(c.expr,l[0])):c.type==="FUNC_KEY"&&(d[Mt(c.expr)]=ue(c.expr,l[0]));Sd(d,l,n,r),s.push(d)}return s}function jm(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=fd(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,fd(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)}Sd(f,p,n,r),sc(f,u),o.push(f)}}return o}function fd(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Sd(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=Js(o.expr,t,r);e[a]=ue(s,e)}else if(o.type==="SCALAR_VALUE_COL"&&kt(o.expr)){Uo(e,t,o.expr,r);let a=o.alias??rt(o.expr),s=Br(o.expr,t,r);e[a]=String(Ee(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){Uo(e,t,o.expr,r);let a=Cd(o.expr,t,r),s=l=>l.aggregateRef?wd(l.aggregateRef,r):void 0;e[Td(o.alias,i)]=Ce(a,e,void 0,s)}}function Td(e,t){return e??`__ksql_case_column_${t}`}function Ys(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ys(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=>Ys(r,t))}function Uo(e,t,n,r){let i=[];Ys(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 zm(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=Id(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,y]of f){if(y>R){E=g,R=y;continue}if(y!==R)continue;let m=Dt(g,E,u);(m<0||m===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,y=0;for(let S of p){let A=S-E;R++;let I=A-g;g+=I/R,y+=I*(A-g)}let m=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(m):m}}}function Id(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 qm(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?.(qm(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 wd(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 Xm(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=Qm(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 Qm(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(ih(t,a,o))}function js(e,t,n,r,i,o){return t.length===0?e:bd(e,t,n,r,i,o).rows.map(a=>a.row)}function bd(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(Pd.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:th(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=eh(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function eh(e,t,n){return Dt(e.s,t.s,n.semantics)}var Pd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function th(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 zs(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>Ne(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=ae(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Bn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(le(a.expr,l)));break;case"STRFUNC_COL":{let l=Mt(a.expr);i.set(s,d=>Wr(a.expr)?d[s]??d[l]??ue(a.expr,d,n,r):ue(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr)?l[s]??"":Ce(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=rt(a.expr);i.set(s,d=>kt(a.expr)?d[s]??d[l]??"":String(Ee(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>In(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function qs(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=>rh(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=bd(d,s.orderBy,n,r,i),u=c.rows;if(!Da(s)){nh(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 nh(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:Id(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 rh(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[Td(e.alias,n)]??"":Ce(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return In(e.ref,t);case"STRFUNC_COL":{let i=Mt(e.expr);return Wr(e.expr)?t[e.alias??i]??t[i]??ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=rt(e.expr);return kt(e.expr)?t[e.alias??i]??t[i]??"":String(Ee(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function ih(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=md(Rd(R),a),y=ko(t[0],R,0,{wildcardKeys:Object.keys(g)}),m={};if(typeof y!="string")for(let[S,A]of y.entries)A!==null&&(m[S]=A);return m}),E=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:E}}let s=lh(t),l=sh(t),d=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=d?null:oh(t,s,l),u=c??[];return d&&e.length===0?{rows:[],columns:ah(t,s,l)}:{rows:e.map((f,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(md(Rd(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let S=ko(m,f,y,g);switch(m.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?.[y]??m.alias??s.get(y)??m.field;R[A]=S,c===null&&E===0&&u.push(A);break}case"LITERAL_COL":{let A=c?.[y]??m.alias??`'${m.value}'`;R[A]=S,c===null&&E===0&&u.push(A);break}case"AGGREGATE":{let A=ae(m.func,m.distinct,m.arg),I=c?.[y]??m.alias??A;R[I]=S,c===null&&E===0&&u.push(I);break}case"ARITH_AGG_COL":{let A=c?.[y]??m.alias??Bn(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"ARITH_COL":{let A=c?.[y]??m.alias??Xs(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"CASE_COL":{let A=c?.[y]??m.alias??l.get(y)??"case";R[A]=S,c===null&&E===0&&u.push(A);break}case"GROUPING_COL":{let A=c?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;R[A]=S,c===null&&E===0&&u.push(A);break}case"STRFUNC_COL":{let A=c?.[y]??m.alias??Mt(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=c?.[y]??m.alias??rt(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=c?.[y]??m.alias??"(subquery)";R[A]=S,c===null&&E===0&&u.push(A);break}case"WINDOW_COL":{let A=c?.[y]??m.alias;R[A]=S,c===null&&E===0&&u.push(A);break}}}return R}),columns:u}}function oh(e,t,n){return e.map((r,i)=>Nd(r,i,t,n))}function ah(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=Nd(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Nd(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??Xs(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 sh(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 lh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Ed(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=Ed(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 Ed(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Rd(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Xs(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 uh(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=>gd(t.result))||e.elseResult!==null&&gd(e.elseResult):!1}function gd(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=>uh(t))}function ch(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"?Js(e,t,n):Br(e,t,n)}function Br(e,t,n){return e.type==="STRING_FUNC"?Js(e,t,n):e.type==="CASE_WHEN"?Cd(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 yd(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 Cd(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:yd(r.result,t,n)})),elseResult:e.elseResult===null?null:yd(e.elseResult,t,n)}}function Js(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>ch(r,t,n))}}function md(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 hd(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Hs(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function ph(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,x("number"));else if(r.type==="WINDOW_COL"){if(Da(r)||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(Pd.has(r.expr.func)?"number":"string"));return n}function Qs(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:y}=e,m=ph(t.columns,u);for(let[N,_]of a??[])m.set(N,_);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(N=>ft(N,A));let w=Hs(hd(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=Hs(hd(E?.get(_),_),void 0,L);S=Wm(S,L,N,{leftColumns:w,rightColumns:v}),w=Hs(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=Hm(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=jm(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Ad(t.columns))&&(S=Ym(S,b.type==="PLAIN"?b.allItems:[],t.columns,u,b.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let D=N=>N.aggregateRef?wd(N.aggregateRef,u):c?.(N);return S=Xm(S,t.having,d,D),S=qs(S,t.columns,i,o,m,u),t.distinct&&(S=Jm(S,t.columns,r,s,l)),S=js(S,t.orderBy,i,o,m,zs(t.columns,r,s,l)),S=Mo(S,t.limit,t.offset),Vr(S,t.columns,r,s,f,l,R)}function Od(e,t){let n=[];for(let r of e){let i=Zs(r.$id?.value),o=dh(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=Zs(c?.value);l[`_p.${d}`]={value:u}}for(let[d,c]of Object.entries(s.value??{}))l[d]={value:Zs(c?.value)};n.push(l)}}return n}function dh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Zs(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 Ld(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function _d(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function Dd(e){let t=[...e.preErrors.map(i=>el(i)),...e.postImageErrors.map(i=>el(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>el(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 el(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 Ud(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 nl(e){return Ud(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=nl(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 vd(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":vd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?vd(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=nl(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=nl(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=Ud(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 rl(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 fh(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 Eh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Rh(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 tl(e,t){let n=e.functionNames[0],r=yn(n)?lt:Bt,i=Rh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Md(e,t){let n=[];kd(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=Eh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:tl(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,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(c);I?.eligible===!0&&rl(c,I)&&(g=I.plan,y=!0,R=!0)}let m;!R&&f.capability==="EXACT_PUSHDOWN"&&(m=$i({select:c,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,m&&(g=m.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(c);I!==null&&fh(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:y}:{},...m?{fullScanExactPlan:m,allowForm:m.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:tl(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:tl(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function il(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 ol(e,t,n={}){let r=ge(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=zr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=gh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!yh(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=hh(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=mh(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)])||!Ah(R,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Go(e.where,f);if(y!==null&&zr(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let m=new Set;for(let S of g)m.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:m,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function gh(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if($o(o)===null)return;if(ge(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function $o(e){return e.right.type==="KINTONE_FUNC"&&Ve(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ve(e.right.values[0].name)?e.right.values[0].name:null}function zr(e){let t=[],n=r=>{if(r.type==="BINARY"&&$o(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function yh(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 mh(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 hh(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 Ah(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 Fd(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 Sh(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 Th(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 Za(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Sg(t)}function Cc(e){let t=e.codePointAt(0);return Za(e)||t>=48&&t<=57}function On(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Sg(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Lc=20,es=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"}),vc=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"}),iw=Object.freeze(Object.values(fr).filter(e=>e!==void 0)),Tg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Ig=new Set(Tg);function wg(e){return Ig.has(e)}var Uc=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 _c(e){return Er[e]!==void 0}var bg=Object.freeze([...Li]),Pg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Ng=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Cg(e){return Pg.has(e)}function Og(e){return Ng.has(e)}function Lg(e){return Number.isInteger(e)&&e>=1&&e<=31}var ow=Object.freeze(Array.from(new Set([...Object.keys(es),...vc,...Object.keys(fr),...Object.keys(Uc),...Object.keys(Er),...bg,"IF"]))),_g=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 Dg(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!_g.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"}},Dc=["\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>Lc)throw new T(`batch exceeds ${Lc} 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,y;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()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(g=this.parseOnDuplicate());let m;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("("),m=this.parseIdentList(),this.expect(")"),new Set(m).size!==m.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(m)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!m)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(m);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(m)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(g)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let 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:y}:{},...m?{replaceSubtables:m}:{},...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&&Dg(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(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));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(Dc,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 Uc[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(Dc,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=es[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=es[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(vc.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=vg(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(!wg(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(!Cg(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(!Og(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(!Lg(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(_c(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=Mu(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(_c(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 vg(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 Ug=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),kg=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":kg.has(e.fieldType)?t="option":Ug.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 Mg(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 Fg(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 Mc(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 xg(e,t,n){let r=Mc(e,n),i=Mc(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 Kg(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 Fc(e,t){let n=t.optionOrder??new Map,i=[...new Set(Kg(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(xc),i}function xc(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 Bg(e,t,n){let r=Fc(e,n),i=Fc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=xc(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 Fg(e,t);case"recordNumber":return xg(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Bg(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 Kc(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):Mg(Number(o),Number(a));if(d!==0)return d}return _t(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function le(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Ne(t,e.field));if(e.type==="STRING_FUNC")return Number(ue(e,t));let n=le(e.left,t),r=le(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Ee(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ne(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return ue(e,t,n,r);case"CASE_WHEN":return Ce(e,t,n,r);case"CONCAT_OP":return ue({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Ee(e.left,t,n,r)),o=Number(Ee(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function vt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Vc(e,t,n,r);case"SCALAR_ARITH":{let i=vt(e.left,t,n,r),o=vt(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=vt(e.left,t,n,r),o=vt(e.right,t,n,r);return`${i??""}${o??""}`}default:return Ee(e,t,n,r)}}function Ji(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function Gg(e){return e>=55296&&e<=56319}function $g(e){return e>=56320&&e<=57343}function Zi(e,t){return t>0&&t<e.length&&Gg(e.charCodeAt(t-1))&&$g(e.charCodeAt(t))}function Bc(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 ns(e,t){let n=Math.min(Math.max(0,t),e.length);return Zi(e,n)&&(n-=1),e.slice(0,n)}function Vg(e,t){let n=Math.max(0,e.length-t);return Zi(e,n)&&(n+=1),e.slice(n)}function Wg(e,t,n){let r=Bc(t,e.length),i=Bc(n,e.length);return i<=r?"":(Zi(e,r)&&(r+=1),Zi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Hg(e,t){let n=e.repeat(Math.ceil(t/e.length));return ns(n,t)}var Yg=200,Rr=new Map;function jg(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 ts(e,t,n=!1){let r=jg(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>=Yg){let s=Rr.keys().next().value;s!==void 0&&Rr.delete(s)}return Rr.set(i,a),a}function zg(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function qg(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function Xg(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let c=Number(s+l);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function Jg(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),c=a.slice(0,d);return Xg(n,o,c,l?s:void 0)})}function ue(e,t,n,r){ji(e.func,e.args);let i=e.args.map(o=>oy(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 Wg(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?"":ns(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Vg(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 ns(o,a);let s=i[2]??" ";if(s==="")return o;let l=Hg(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return Kc(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 ts(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{zg(i[2]);let o=qg(i[4]),a=ts(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Jg(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ts(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 ry(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(rs(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($c(i[0])):"";case"DATE_FORMAT":return Zg(i[0]??"",i[1]??"");case"DATEDIFF":return ey(i[0]??"",i[1]??"");case"DATE_ADD":return ty(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ny(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 rs(e){return eo(e).getUTCDay()}function Gc(e){let t=eo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Qg(e){return Gc(e).getUTCFullYear()}function $c(e){let t=Gc(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(rs(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][rs(e)]:"";case"%v":return l?String($c(e)).padStart(2,"0"):"";case"%G":return l?String(Qg(e)).padStart(4,"0"):"";default:return d}})}function ey(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 ty(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 ny(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 ry(e,t){if(/^-?\d+$/.test(t.trim()))return iy(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 iy(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 oy(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(yr(e,t)):e.type==="NUMBER"?H(e):String(Ee(e,t,n,r))}function yr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[ae(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(yr(e.left,t)),r=Number(yr(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Ne(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ne(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return ay(e,t,n,r,i);case"NULL_CHECK":return dy(e,t);case"LOGICAL":return fy(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 ay(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=Jc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=ly(e.left,a,i);return sy(e.op,o,e.right,t,a,n,s,i)}function sy(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(py(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=cy(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=is(n,r,o);return Xc(t,d)}if(e==="NOT_LIKE"){let d=is(n,r,o);return!Xc(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=is(n,r,o,s);return Wt(e,t,l,a)}var Wc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ly(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(Wc.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(Wc.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 Hc=new Set(["CHECK_BOX","MULTI_SELECT"]),Yc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),uy=new Set(["CREATOR","MODIFIER"]);function cy(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(Hc.has(n)||Yc.has(n)||uy.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Hc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Yc.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 py(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 dy(e,t){let n=Jc(e.field,t);return e.not?n!=="":n===""}function fy(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 Jc(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 is(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 Ey(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 Vc(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?null:zc(e.elseResult,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"?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(Ee(e,t,n,r))}function Qc(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 Ey(e){throw J(e)?new Error(`${e}: ${Bt}`):yn(e)?new Error(`${e}: ${lt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var to=new Map,Ry=200;function Xc(e,t){if(!Ju(t))return e.includes(t);let n=to.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),to.size>=Ry&&to.clear(),to.set(t,n)}return n.test(e)}function _n(e){return ep(e)}function Zc(e){return ep(e.flatMap(t=>t.rules.map(n=>n.condition)))}function ep(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw Re("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw Re("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function Re(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function no(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ne(a.condition,t,n))continue;let s=Ee(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function os(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 gy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),yy=new Set(["CHECK_BOX","MULTI_SELECT"]);function oo(e,t=new Map){let n=e.values.map(r=>my(e.fields,r,t));return Sr(n,100).map(r=>({app:e.appId,records:r}))}function my(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){os(e.where);let t=fp(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Ar(e,t,n=new Map){let r=hy(e.assignments,n);return Sr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function hy(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 ip(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 as(e){os(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?op(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Dn(n,t):n.type==="STRING_FUNC"?ss(n,t):n.type==="CASE_VALUE"&&ap(n.expr,t);return fp(e).forEach(n=>t.add(n)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function op(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"?op(e,t):e.type==="STRING_FUNC"&&ss(e,t)}function ss(e,t){for(let n of e.args)Ay(n,t)}function Ay(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"){ss(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"&&ap(e,t)}function io(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Sy(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 Sy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?mr(e,t):Dn(e,t)}function tp(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 ap(e,t){for(let n of e.branches)ro(n.condition,t),tp(n.result,t);e.elseResult!==null&&tp(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 ls(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=sp(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:us(d,a,n.get(l),i)};return{id:o,record:s}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function us(e,t,n,r){if(e.type==="ARITH")return String(r?ps(e,r):le(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ee(e,t));if(e.type==="STRING_FUNC")return ue(e,t);if(e.type==="CASE_VALUE")return Ut(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ee("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return pt(e,n)}function so(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(le(e,t));if(e.type==="CASE_VALUE")return Ce(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Ty=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function cs(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=sp(i),l={};for(let{field:d,value:c}of e.assignments){let u=n.get(d);if(c.type==="SOURCE_FIELD"){if(Ty.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(ps(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[d]={value:String(Ee(c,s))}:c.type==="CASE_VALUE"?l[d]={value:Ut(c.expr,s,u)}:l[d]={value:pt(c,u)}}}return{id:a,record:l}});return Sr(r,100).map(i=>({app:e.appId,records:i}))}function sp(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ps(e,t){let n=np(e.left,t),r=np(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 np(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 ps(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 lp(e){return os(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function up(e,t){return Sr(t,100).map(n=>({app:e,ids:n}))}function cp(e){return gy.has(e??"")}function Iy(e){return yy.has(e??"")}function wy(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 by(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function pp(e,t){return cp(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Iy(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?wy(e):t==="DATE"?by(e):e}function dp(e,t){return cp(t)?e.map(n=>({code:n})):e}function rp(e,t,n){if(e.type==="ARRAY")return dp(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"?pp(e.value,n):e.type==="STRING_FUNC"?ue(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(le(e,t)):String(Ee(e,t))}function fp(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 rp(r.result,t,n);return e.elseResult!==null?rp(e.elseResult,t,n):""}function pt(e,t){let n=ds(e,t);if(!n.ok)throw new ee(n.message);return n.value}function ds(e,t){try{return{ok:!0,value:Py(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Py(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 pp(e.value,t);case"NUMBER":return H(e);case"ARRAY":return dp(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 fs=new Set(["CHECK_BOX","MULTI_SELECT"]),Ny=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tr(e){throw new Error(`ArgumentError: ${e}`)}function Ep(e,t,n){let r=Cy(n.fieldType,e.field),i=Oy(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let m=y.value;m!==""&&(y.kind==="ADD"?(s.has(m)||a.push(m),s.add(m)):l.add(m))}for(let y of s)l.has(y)&&Tr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),c=a.filter(y=>!o.has(y)),u=[...d,...c],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let m=y.kind==="ADD"?f:E,S=!m.has(y.value);return m.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=fs.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:g,addedValues:c.length,removedValues:p,changedValues:c.length+p}}function Cy(e,t){return fs.has(e)||Ny.has(e)?e:Tr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Oy(e,t,n){if(!Array.isArray(e))return Tr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>fs.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 gs(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)Es(s.field,null,r),Ly(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(zu(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)Es(p.field,s.field,r,c),Rs(p.value,s.field,r,c);u.selector.kind==="WHERE"&&Rs(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),Es(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Rs(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Ly(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 Es(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 Rs(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]=Ap(i?.value);return n}function gp(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??dt(t,r),o=hs(n.$id?.value,"APPLY snapshot $id"),a=gs(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),mp(t,n,i,o)}function yp(e,t,n,r=dt(e,n)){let i=new Set;return t.map(o=>{let a=hs(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),mp(e,o,r,a)})}function mp(e,t,n,r){let i=hs(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(Ep(c,t[c.field]?.value,N));continue}let u=n.childrenByTable.get(c.field),p=My(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=[],y=[],m=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=ys(_,u,c.field);y.push({kind:"APPEND",addedRows:L.length}),g.push(...L);continue}if(_.kind==="REMOVE"){let L=vy(_,p,E,c.field);_.expectRows&&Rp(_.expectRows,L.length,r,c.field,N,_.kind),y.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=Dy(_,p,E,c.field);_.expectRows&&Rp(_.expectRows,U.length,r,c.field,N,_.kind),y.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}`;m.has(M)&&Y(`APPLY patches cell ${v.id}.${P.field} more than once.`),m.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:y,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=Fy(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:us(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 Rp(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 ys(e,t,n){return e.values.map(r=>({value:_y(e,r,t,n)}))}function _y(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?ms(a):s.type==="CASE_VALUE"?Ut(s.expr,{},a.fieldType):pt(s,a.fieldType)}}return o}function ms(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 Dy(e,t,n,r){return hp(e.selector,t,n,r)}function vy(e,t,n,r){return hp(e.selector,t,n,r)}function hp(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=Uy(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=ky(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Uy(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 ky(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 My(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 hs(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function Fy(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ap(r?.value);return t}function Ap(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),xy(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Sp(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 xy(e){let t=As(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(As(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=As(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)=>!Ss(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 As(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 Ss(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)=>Ss(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)&&Ss(n[a],r[a]))}function Tp(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 Ip(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Tp(t.digits,"digits",1,30),r=Tp(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 wp(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 Ky=new Set(["CHECK_BOX","MULTI_SELECT"]),By=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=Gy(e);if(i!==""&&!$y(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:Vy(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}=wp(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)&&By.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 Gy(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 $y(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=ds(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(Ky.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 Vy(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 Ts(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){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 Is(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&&Ts(e,r,i);let R;for(let g of e){g.record??={};let y=d?[...g.preErrors]:[],m=[],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}:m.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&&m.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):m.push({field:b.code,code:N.code,message:N.message})}else{let N=Oe(b.defaultValue,b,a);N.ok||m.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??=_}}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(y),builtInErrors:I(m),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 ws=["required","length","range","choice"];function bs(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 Ps(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 Wy(e){return bs(e).length>0}function Hy(e){return e.fieldType==="NUMBER"||Wy(e)}function go(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Ns(e,t){let{topByCode:n,childrenByTable:r}=Ps(t),i=Hy;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(y=>y.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let 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 Yy=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=Ps(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!Yy.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=jy(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 y of t.payloadFields)g[y]=y==="$id"?c:Qe(e[y]?.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:bp(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 y=E[g],m=R[g];for(let S of f){let A=y.value?.[S.code]?.value,I=Oe(A,S,n);I.ok?(m.value??={},m.value[S.code]={value:bp(A,S.fieldType,I.value)}):u(S,A,I,go(p,g,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function bp(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 jy(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;Pp(o,"dmlMaxRows"),Pp(a,"dmlMaxSubtableRows");for(let S of n)fo(S);let l=yp(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)),y=g.flatMap(S=>wr(S).records),m=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Np({plans:g,records:y,validations:m,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Pp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Np(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))Np(n,t);return Object.freeze(e)}var Cs=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)Cp(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),Cp(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 zy(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=>ys(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||Cs.has(u.fieldType)||(d[u.code]=s[u.code]??{value:ms(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;Op(r,"dmlMaxRows"),Op(i,"dmlMaxSubtableRows");let a=e.metadata??mo(t,n),s=zy(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Cs.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}}),y=g.map(A=>A.record),m=[];for(let A=0;A<y.length;A+=100)m.push({app:t.appId,records:y.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return Lp({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:m,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Cp(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||Cs.has(i.fieldType))return et(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Op(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 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)}async function Dp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;_p(i,"dmlMaxRows"),_p(o,"dmlMaxSubtableRows"),Zy(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=qy(t,s.map(y=>y.sourceRowIndex)),c=await Cr({statement:d,fieldInfos:r,metadata:mo(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let y of l){let m=y.targetId;p.has(m)&&Os(`UPSERT APPLY resolves more than one source row to parent $id ${m}.`),p.add(m),y.snapshot||Os(`UPSERT APPLY snapshot for parent $id ${m} is missing.`);let S=Number(y.snapshot.$id?.value);S!==m&&Os(`UPSERT APPLY snapshot $id ${S} does not match target $id ${m}.`);let A=Xy(t,y.sourceRowIndex,m),I=A.applyBlocks?.length?dt(A,r):Jy(r);u.push(await yo({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=Qy(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 y=[...c.validations.flatMap(m=>m.errors),...f.validations.flatMap(m=>m.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Ls({create:c,update:f,createBatches:c.batches,updateBatches:em(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 qy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Xy(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function Jy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function Qy(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 Ls({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 em(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 _p(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Os(e){throw new Error(`ArgumentError: ${e}`)}function Ls(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))Ls(n,t);return Object.freeze(e)}function Lr(e){return Un("UPDATE",[kp(e)])}function _s(e){return Un("INSERT",[Up(e)])}function Ds(e){return Un("UPSERT",[Up(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 Up(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:vp(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||=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:vp(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 vp(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=>tm(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 tm(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 Mp(e,t,n){Sn("phase10c");let r=Sp(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 Fp(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 xp(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 nm=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function rm(e){if(!nm.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 im(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=rm(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 vs(e,t){let n=im(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 om(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 Us(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 om(i)?!0:Object.values(i).some(n)};return n(e)}function Kp(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 Bp(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:Uu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],am=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),sm=new Set(Me),lm=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"])]]),um=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),cm=["=","!=","in","not in"],pm=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(cm)]]),dm=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"])]]),Fs=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"]),Vp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Wp(e){return pm.get(e)??new Set}function Hp(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"&&Fs.has(o.fieldType)&&Wp(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ge(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Dr(e,t)}function Dr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return fm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ms():gm(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ms();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 mm(e.op,n,r)}}}function fm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return Em(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Gp(n))return $p(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?$p(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 Ms();let i=r(t);if(!i)return kn("WHERE_FIELD_UNRESOLVED",t.field,void 0,vr(e));let o=vr(e);if(!Yp(i.fieldType,o))return kn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!ym(i.fieldType,e))return kn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Wp(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Gp(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 Gp(e){return e.type==="KINTONE_FUNC"&&Kt.has(e.name)}function $p(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=lm.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):um.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 Em(e,t,n,r){let i=vr(e),o=n.name;if(t.type!=="FIELD")return _r("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Rm(n)?sm.has(i)?!am.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?_r("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:_r("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):_r("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Rm(e){if(!("args"in e)||!e.args)return!1;switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args.kind==="NONE";case"FROM_TODAY":return e.args.kind==="FROM_TODAY"&&Number.isSafeInteger(e.args.offset)&&e.args.offsetText===String(e.args.offset===0?0:e.args.offset)&&(e.args.unit==="DAYS"||e.args.unit==="WEEKS"||e.args.unit==="MONTHS"||e.args.unit==="YEARS");case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args.kind==="WEEK"&&(e.args.weekday===null||e.args.weekday==="SUNDAY"||e.args.weekday==="MONDAY"||e.args.weekday==="TUESDAY"||e.args.weekday==="WEDNESDAY"||e.args.weekday==="THURSDAY"||e.args.weekday==="FRIDAY"||e.args.weekday==="SATURDAY");case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args.kind==="MONTH"&&(e.args.day===null||e.args.day==="LAST"||Number.isInteger(e.args.day)&&e.args.day>=1&&e.args.day<=31);default:return!1}}function gm(e,t,n){let r=n(e);return r?Yp(r.fieldType,t)?!Fs.has(r.fieldType)&&!Vp.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 Yp(e,t){let n=dm.get(e);return n===void 0||n.has(t)}function ym(e,t){return Fs.has(e)?!0:Vp.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 mm(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 Ms(){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 zp({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 hm(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Kt.has(t.functionName))}function zp(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 Am(e){if(e.capability==="EXACT_PUSHDOWN"||!hm(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 Am(zp(e))}var Sm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Tm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Im=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)?Xp(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"}):Xp(n[0],e.field)}function Ks(e,t){if(e.left.type!=="FIELD")return kr();let n=Fn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return kr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ge(e,a=>{let s=Fn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:Z({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return kr();let o=Cm(e,n,r);return o==="unsafe"?kr():Object.freeze({relation:o,owner:n})}function Jp(e,t){let n=de(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Fn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ge(e,o=>{let a=Fn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:Z({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Qp(e,t){let n=new Set;qt(e,n);let i=(e===null?[]:td(Mn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=wm(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(Nm(e,t)),fetchQueriesByAlias:new Map,...o})}function Zp(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))||ed(Pm(e))!==e.allKlikes.length))}function wm(e,t){if(e===null)return qp(null);let n=Object.freeze([...de(e)]);if(n.length===0)return qp(e);let r=bm(e,t,n);if(r!==null)return r;let i=Po(e),o=[],a=new Set;for(let u of i){let p=Jp(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 bm(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),ed(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=Jp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ks(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 ed(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Pm(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Nm(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}Ks(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(od(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 xs(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 xs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw xs(t,"predicate shape is outside the Phase A serializer contract")}}function xs(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=Ks(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 td([...n,...r]);if(od(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:nd(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 td(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:nd(i.relation,n.relation)}}return t}function Cm(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Tm.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Om(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===">")&&rd(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"||Im.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?id(e.right.value)?"superset":"unsafe":n==="TIME"?Lm(e.right.value)?"superset":"unsafe":_m(e.right.value)?"superset":"unsafe";if(Sm.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 Xp(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 nd(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Om(e){return e.type==="NUMBER"&&rd(e)&&e.value>0}function rd(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function id(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 Lm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function _m(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!id(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 od(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 Bs(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 Dm(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function vm(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=Dm(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"&&!vm(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 Um=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 km(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(km(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}Um.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 ad(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 Gs(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 sd=["$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 $s(e){return e.startsWith("_")||e.startsWith("$")}var Mm=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ws(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ws);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?Mm.test(t.field):Object.values(t).some(Ws)}function Fm(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)||Ws(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var xm=["_pid","_rid","_idx"];function Vs(e){return[...new Set(e)]}function Km(e){switch(e.kind){case"APP":return Vs([...e.fieldCodes,...sd]);case"SUBTABLE":return Vs([...e.childFieldCodes,...xm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Vs(e.columns)}}function ld(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Km(t(r,i))}))}function Bm(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 Gm(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function $m(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Vm(e,t,n){let r=Bm(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:Gm(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>$m(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=Fm(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 ud(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Vm(r.name,t,n):{kind:"EXPRESSION"})}}var Wm={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 cd(e,t){let n=Wm[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 pd(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=>cd(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=cd(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 Hm(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(dd(e,a,r.leftColumns),dd(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 y of g)f.push({...y,...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 dd(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 Ym(e,t,n,r,i){return t===null?e:e.filter(o=>ne(t,o,n,r,i))}function Ad(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 jm(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)=>qm(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&&Ad(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[Xs(c.expr)]=String(le(c.expr,l[0])):c.type==="FUNC_KEY"&&(d[Mt(c.expr)]=ue(c.expr,l[0]));Sd(d,l,n,r),s.push(d)}return s}function zm(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=fd(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,fd(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)}Sd(f,p,n,r),sc(f,u),o.push(f)}}return o}function fd(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Sd(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=Js(o.expr,t,r);e[a]=ue(s,e)}else if(o.type==="SCALAR_VALUE_COL"&&kt(o.expr)){Uo(e,t,o.expr,r);let a=o.alias??rt(o.expr),s=Br(o.expr,t,r);e[a]=String(Ee(s,e))}else if(o.type==="CASE_COL"&&ve(o.expr)){Uo(e,t,o.expr,r);let a=Cd(o.expr,t,r),s=l=>l.aggregateRef?wd(l.aggregateRef,r):void 0;e[Td(o.alias,i)]=Ce(a,e,void 0,s)}}function Td(e,t){return e??`__ksql_case_column_${t}`}function Ys(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ys(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=>Ys(r,t))}function Uo(e,t,n,r){let i=[];Ys(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 qm(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=Id(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,y]of f){if(y>R){E=g,R=y;continue}if(y!==R)continue;let m=Dt(g,E,u);(m<0||m===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,y=0;for(let S of p){let A=S-E;R++;let I=A-g;g+=I/R,y+=I*(A-g)}let m=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(m):m}}}function Id(e,t,n){return n.map(r=>{let i;if(t.type==="FIELD_REF"){let o=r[t.field];if(o===void 0||o===""&&e!=="MIN"&&e!=="MAX")return null;i=o}else if(t.type==="ARITH"||t.type==="NUMBER"){let o=le(t,r);if(isNaN(o))return null;i=String(o)}else{let o=vt(t,r);if(o===null||o===""&&e!=="MIN"&&e!=="MAX"||typeof o=="number"&&Number.isNaN(o))return null;i=String(o)}return i})}function Xm(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Kr(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Gr(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ne(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=Kr(e.left,t,n),i=Kr(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Bn(e){return Je(e)}function $r(e,t){if(e.type==="FIELD_REF")return t?.(Xm(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>$r(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function wd(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 Jm(e,t,n,r){return t===null?e:e.filter(i=>ne(t,i,n,void 0,r))}function Qm(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(oh(t,a,o))}function js(e,t,n,r,i,o){return t.length===0?e:bd(e,t,n,r,i,o).rows.map(a=>a.row)}function bd(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(Pd.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:nh(c,d,o)}))})),l=(d,c)=>eh(d,c,t,a);return s.sort(l),{rows:s,compare:l}}function eh(e,t,n,r){for(let i=0;i<n.length;i++){let o=th(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function th(e,t,n){return Dt(e.s,t.s,n.semantics)}var Pd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nh(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 zs(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>Ne(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=ae(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Bn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(le(a.expr,l)));break;case"STRFUNC_COL":{let l=Mt(a.expr);i.set(s,d=>Wr(a.expr)?d[s]??d[l]??ue(a.expr,d,n,r):ue(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr)?l[s]??"":Ce(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=rt(a.expr);i.set(s,d=>kt(a.expr)?d[s]??d[l]??"":String(Ee(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>In(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function qs(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=>ih(d,p))),u=l.get(c);u?u.push(d):l.set(c,[d])}for(let d of l.values()){let c=bd(d,s.orderBy,n,r,i),u=c.rows;if(!Da(s)){rh(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 rh(e,t,n){let r=t.rows,i=e.arg.type==="WILDCARD"?null:Id(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 ih(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[Td(e.alias,n)]??"":Ce(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return In(e.ref,t);case"STRFUNC_COL":{let i=Mt(e.expr);return Wr(e.expr)?t[e.alias??i]??t[i]??ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):ue(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=rt(e.expr);return kt(e.expr)?t[e.alias??i]??t[i]??"":String(Ee(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function oh(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=md(Rd(R),a),y=ko(t[0],R,0,{wildcardKeys:Object.keys(g)}),m={};if(typeof y!="string")for(let[S,A]of y.entries)A!==null&&(m[S]=A);return m}),E=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:E}}let s=uh(t),l=lh(t),d=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=d?null:ah(t,s,l),u=c??[];return d&&e.length===0?{rows:[],columns:sh(t,s,l)}:{rows:e.map((f,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(md(Rd(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let S=ko(m,f,y,g);switch(m.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?.[y]??m.alias??s.get(y)??m.field;R[A]=S,c===null&&E===0&&u.push(A);break}case"LITERAL_COL":{let A=c?.[y]??m.alias??`'${m.value}'`;R[A]=S,c===null&&E===0&&u.push(A);break}case"AGGREGATE":{let A=ae(m.func,m.distinct,m.arg),I=c?.[y]??m.alias??A;R[I]=S,c===null&&E===0&&u.push(I);break}case"ARITH_AGG_COL":{let A=c?.[y]??m.alias??Bn(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"ARITH_COL":{let A=c?.[y]??m.alias??Xs(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"CASE_COL":{let A=c?.[y]??m.alias??l.get(y)??"case";R[A]=S,c===null&&E===0&&u.push(A);break}case"GROUPING_COL":{let A=c?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;R[A]=S,c===null&&E===0&&u.push(A);break}case"STRFUNC_COL":{let A=c?.[y]??m.alias??Mt(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=c?.[y]??m.alias??rt(m.expr);R[A]=S,c===null&&E===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=c?.[y]??m.alias??"(subquery)";R[A]=S,c===null&&E===0&&u.push(A);break}case"WINDOW_COL":{let A=c?.[y]??m.alias;R[A]=S,c===null&&E===0&&u.push(A);break}}}return R}),columns:u}}function ah(e,t,n){return e.map((r,i)=>Nd(r,i,t,n))}function sh(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=Nd(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Nd(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??Xs(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 lh(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 uh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Ed(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=Ed(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 Ed(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Rd(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Xs(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 ch(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=>gd(t.result))||e.elseResult!==null&&gd(e.elseResult):!1}function gd(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=>ch(t))}function ph(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"?Js(e,t,n):Br(e,t,n)}function Br(e,t,n){return e.type==="STRING_FUNC"?Js(e,t,n):e.type==="CASE_WHEN"?Cd(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 yd(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 Cd(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:yd(r.result,t,n)})),elseResult:e.elseResult===null?null:yd(e.elseResult,t,n)}}function Js(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>ph(r,t,n))}}function md(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 hd(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Hs(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function dh(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,x("number"));else if(r.type==="WINDOW_COL"){if(Da(r)||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(Pd.has(r.expr.func)?"number":"string"));return n}function Qs(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:y}=e,m=dh(t.columns,u);for(let[N,_]of a??[])m.set(N,_);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(N=>ft(N,A));let w=Hs(hd(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=Hs(hd(E?.get(_),_),void 0,L);S=Hm(S,L,N,{leftColumns:w,rightColumns:v}),w=Hs(w,v,S)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;S=Ym(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=zm(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Ad(t.columns))&&(S=jm(S,b.type==="PLAIN"?b.allItems:[],t.columns,u,b.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let D=N=>N.aggregateRef?wd(N.aggregateRef,u):c?.(N);return S=Jm(S,t.having,d,D),S=qs(S,t.columns,i,o,m,u),t.distinct&&(S=Qm(S,t.columns,r,s,l)),S=js(S,t.orderBy,i,o,m,zs(t.columns,r,s,l)),S=Mo(S,t.limit,t.offset),Vr(S,t.columns,r,s,f,l,R)}function Od(e,t){let n=[];for(let r of e){let i=Zs(r.$id?.value),o=fh(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=Zs(c?.value);l[`_p.${d}`]={value:u}}for(let[d,c]of Object.entries(s.value??{}))l[d]={value:Zs(c?.value)};n.push(l)}}return n}function fh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Zs(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 Ld(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function _d(e,t){let n=Hr(e);for(let[r,i]of Object.entries(t))n[r]=Hr(i);return n}function Dd(e){let t=[...e.preErrors.map(i=>el(i)),...e.postImageErrors.map(i=>el(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>el(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 el(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 Ud(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 nl(e){return Ud(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=nl(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 vd(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":vd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?vd(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=nl(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=nl(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=Ud(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 rl(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 Eh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Kn(t)}function Rh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function gh(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 tl(e,t){let n=e.functionNames[0],r=yn(n)?lt:Bt,i=gh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Md(e,t){let n=[];kd(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=Rh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:tl(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,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(c);I?.eligible===!0&&rl(c,I)&&(g=I.plan,y=!0,R=!0)}let m;!R&&f.capability==="EXACT_PUSHDOWN"&&(m=$i({select:c,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,m&&(g=m.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(c);I!==null&&Eh(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:y}:{},...m?{fullScanExactPlan:m,allowForm:m.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:tl(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:tl(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function il(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 ol(e,t,n={}){let r=ge(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=zr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=yh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!mh(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=Ah(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=hh(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)])||!Sh(R,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Go(e.where,f);if(y!==null&&zr(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let m=new Set;for(let S of g)m.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:m,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function yh(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if($o(o)===null)return;if(ge(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":zr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function $o(e){return e.right.type==="KINTONE_FUNC"&&Ve(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ve(e.right.values[0].name)?e.right.values[0].name:null}function zr(e){let t=[],n=r=>{if(r.type==="BINARY"&&$o(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function mh(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 hh(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 Ah(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 Sh(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 Fd(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 Th(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 Ih(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
5
5
  `)throw new B(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new B(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
6
6
  `){d==="\r"&&e[a+1]===`
7
- `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new B("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function Ih(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=Th(Sh(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}`)),Ih(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 wh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),bh=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 xd(e,t,n){if(!wh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new qr;return bh.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 Kd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Bd(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 wh(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=Ih(Th(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}`)),wh(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 bh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Ph=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 xd(e,t,n){if(!bh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new qr;return Ph.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 Kd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function Bd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
8
8
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
9
9
  `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Et("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&Et("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
- `,r:"\r",t:" "};if(R in g){p+=g[R];continue}R!=="u"&&Et(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Et("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=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+(m-55296<<10)+A-56320)}else m>=56320&&m<=57343?Et("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(m)}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=Bd(Kd(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 Ph=new Set(["CHECK_BOX","MULTI_SELECT"]),Gd=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 Nh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Ch(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."),Nh(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."),!Ph.has(t.fieldType)&&!Gd.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."),Gd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function al(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]=Ch(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 sl(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((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),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=y=>a.rows.filter(m=>m[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,m]of a.columns.entries()){if(c.has(m)||m===o)continue;let S=d.get(m);if(S)u.push({column:m,reason:E(S),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=d.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let m=[],S={};for(let A of r){let I=y[l.get(A)];try{S[A]=xd(I,d.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;S[A]=I,m.push({field:A,code:w.code,message:w.message})}}return R.push(m),S}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns: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 $d(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 y=new Set(E.children),m=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())y.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,m)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function Vd(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 y=p[s.get(g.field)];if(y!==""&&y!==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 y=p[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(A=>[A,p[s.get(A)]]));if(y===""&&[...m.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:m})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}var Oh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Lh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function cl(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)Wd(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)Wd(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=>_h(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 _h(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&ul(e.top.get(p.field),r.get(p.field),o,d,p.field,l,ll(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)||Hd(p,o,c,l,ll(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,y={},m=i.get(p.subtableCode);for(let S of p.children){let A=m.get(S),I=ll(e,a,S,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?ul(R.values.get(S),A,o,y,S,l,I):Hd(A,o,y,l,I)}l.length===g?(f.validChildRows++,E.push(y)):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 Wd(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&&Lh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Hd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;ul(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function ul(e,t,n,r,i,o,a,s=!1){let l=Dh(e),d=Oe(l,t,n);d.ok?r[i]={value:vh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Dh(e){return Yd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Yd(t)?t.lexeme:t):e}function Yd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function vh(e,t){return Oh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ll(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 pl=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function dl(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Uh(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 Uh(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 fl(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 zd(e,t){return fl(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 Xd(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 kh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Jd(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 Qd(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=kh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,S=0,A=0,I=g.map((w,C)=>{let b=y[C]??{};return w.rowId&&R.has(w.rowId)?(m++,{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:m,addRows:S,deleteRows:E.length-m,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 El="#__import_source";function Zd(e){return{...e,from:{appId:0,alias:null,cteName:El}}}function Mh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Rl(e,t){let n=e.map(Mh),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 Fh="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",on=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},ye=new WeakMap;function yf(e){return ye.get(e)}var cn=new WeakMap,da=new WeakMap,ef=new WeakMap,xh=1,Kh=1;function mf(e,t){if(t)return t;let n=ef.get(e);return n||(n=`client:${xh++}`,ef.set(e,n)),n}function Vl(e){return`${e}\0inv:${Kh++}`}async function Wl(e,t,n={}){let r=Date.now(),i=Vl(mf(t,n.cacheContext));try{let o=NS(e,n.enableImport===!0),a=hf(),s=Sf(t,a),l={aborted:!1},d=Yl(s,l,!Gh(o)||Us(o)),c=await Sl(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Tf(c,l),metrics:a};if(c.type==="SELECT"){let p=ye.get(c);p&&ye.set(u,p)}return u}finally{uu(i)}}function hf(){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 Af=Symbol("limitMetricsSink");function Hl(e,t){let n=e[Af];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Sf(e,t){return{[Af]: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 tf=Symbol("searchAbortFailClosed");function Yl(e,t,n){return n&&e[tf]?e:{...e,...n?{[tf]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;return i}}}function Bh(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 Gh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Tf(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Fh),{...e,warnings:[...n]}}async function nf(e,t,n){let r=await pi(e,t,n);return il(r),r}async function pi(e,t,n){return Md(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return ge(r.where,i)},dml:r=>vf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return ol(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)&&nu.set(r,o),o.joinPlan)}})}async function Sl(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&il(i);let o=Il(e);if(o!==null&&!oS(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 eA(e,t,r),e.type==="IMPORT")return tE(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 xl(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 pu(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return $h(e,t,n,r);case"SELECT":return Ft(Nl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Hf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return su(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return ZA(e,t,n,r);case"INSERT_SELECT":return Ru(e,t,n,r);case"UPSERT":return mS(e,t,n,r);case"UPSERT_SELECT":return mu(e,t,n,r);case"UPDATE":return xl(e,t,n,r);case"DELETE":return yS(e,t,n,r);case"REORDER":return wS(e,t,n,r);case"SHOW_APPS":return aE(t);case"DESCRIBE":return sE(e,t,r);case"EXPLAIN":return _S(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me):me,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return Nf(e,t,n,r)}}var jl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],zl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ql(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 If(e=!1){let t=e?zl:jl;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:x(n==="$id"||n==="$err_count"?"number":"string")}]))}async function $h(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return wf(e,t,n,r)}async function wf(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=Ns(e,i),l=new Set(s.flatMap(O=>bs(O.field))),d={present:ws.filter(O=>l.has(O)),absent:ws.filter(O=>!l.has(O))},c=e.checkGroups??[],u=_n(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),un(e,p);let f=ql(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),y=ge(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(y)}).`);let m=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:y.capability==="EXACT_PUSHDOWN"?e.where:bn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,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?zl:jl],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return ye.set(M,If(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])||!Vh(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 Vh(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 bf(e,t,n={}){let r=Xl(e,n.enableImport===!0),i=Qa(r);if(r.forEach(f=>Di("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Fa(f)||f.type==="UPSERT"&&Wh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=vs(r,n.variables),a=Pf(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=hf(),d=Sf(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=Vl(mf(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let S=i.statements[m],A={index:m,type:S.statementType};if(y){R.push({...A,status:"skipped",skippedReason:y}),g.add(m);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(m);continue}if(u!==null&&Date.now()>=u){R.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(m),y="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:m,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=Yl(d,D,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||Us(r[m])),_=Bh(N),U=await jh(Hh(r[m],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Tf(U.result,D)),R.push({...A,status:"success",...U})}catch(w){R.push({...A,status:"error",error:zh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(m),w instanceof Gn?y="timeout":w instanceof Vn?y="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(m=>m.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{uu(p)}}function Wh(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 Hh(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let d=ra(e,a);if(We(d),await nf(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 Cf(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,rf(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=rf(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 nf(l,n,i),l.type==="VALIDATE"){let d=await wf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,ye.get(d)??If(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await tE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await pu(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 Ml(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 Yh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Sl(l,n,r,i)};if(l.type==="ASSERT")return await Nf(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 su(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Ru(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await mu(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await xl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Sl(l,n,r,i)}}async function Yh(e,t,n,r,i){return e.type==="WITH"?su(e,t,n,r,i,!0):yt(e,t,n,i,r,!0)}async function jh(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 zh(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)??gl(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:qh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:gl(r),message:r}}else{let n=String(e);t={code:gl(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function gl(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function qh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Xl(e,t=!1){let n=new Ot(e).tokenize();return new Lt(n,{import:t}).parseStatements()}function Xh(e,t){try{let n=Xl(`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 Pf(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)?Xh(r.name,t[r.name]):r.default);return n}function rf(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:Qc(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 Tl(e,t,!1)}function Tl(e,t,n){if(Array.isArray(e))return e.map(r=>Tl(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(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,Tl(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 Il(e){if(Array.isArray(e)){for(let t of e){let n=Il(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=Il(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 Nf(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(wl(e));case"SCALAR_SUBQUERY":try{return await Cf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Vn(o.message):o}}}async function Cf(e,t,n,r,i){let{query:o,probed:a}=Qh(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 Qh(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 wl(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=wl(e.left),n=wl(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 y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.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 cu(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),y=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return Ln(y,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 Of=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=Hp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Of.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function Lf(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function _f(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 Jl(e,t){return t.length===0?e:{...e,warnings:[...new Set([...e.warnings??[],...t])]}}function Ql(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 Df(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 vf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ge(null,()=>{}):ge(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function $n(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await vf(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),rA(e))return l=aA(e),o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Lf(e)),c=_f(e,d,s),u=await Zl(e,t,r,i);await lE(e,t,n,r,i);let p=SA(e,ge(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let w=await di(e,t,r,i),C=ol(e,w);C.eligible&&rl(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",y=await oi(e,t,r,i),m=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:fe(e.where)}):null;await lA(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r);let S=eu(e,n,m),I=R!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?Yl(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await sA(e,I,S.effectiveOptions,r,m,y):l=await wA(e,I,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,u)}catch(w){Uf(S,w)}return o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),Jl(l,c)}async function Zl(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=ld(e,(d,c)=>o[c]),s=e.groupBy,l=ud(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 eA(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 tA(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(y=>y.cteName===null&&s(y,p.field)!==null).length,R=i.some(y=>l(y,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 tA(e,t,n,r),s=pc(e,a,cc);s&&ii.set(e,s)}function nA(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 eu(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 Uf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(nA(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function bl(e,t){try{return await t()}catch(n){Uf(e,n)}}function gt(e){return e?.type==="BOOLEAN"&&e.value===!1}function rA(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"?tu(e):!1}function iA(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"?tu(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 tu(e){return e.args.some(t=>iA(t))}function oA(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(tu(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 aA(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.");oA(e);let t=qs([{}],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 sA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?xf(e):e,s=Ki(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await iu(e,t,r),c=au(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,Ql(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,y=e.limit===null?null:(e.offset??0)+e.limit,m=e.orderBy.length===0&&y!==null&&y<=p&&!fe(e.where)?y: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 ad({client:t,app:s.app,fields:s.fields,query:Gs(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:m,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`),Hl(t,e.from.appId)}})}let A=S.map(b=>ft(b,null));g||(A=js(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,zs(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 lu(e,I,w,t,r);return{type:"SELECT",rows:I,columns:C,rowCount:I.length,warnings:[...f]}}async function lA(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=>!$s(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 of(e){return e.cteName??`APP${e.appId}`}function uA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function cA(e,t){return $s(t)||e.validCodes.has(t)}function yl(e,t){return e.table.cteName!==null?e.validCodes.has(t):cA(e,t)}function pA(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 dA(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:of(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:of(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 uA(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&&!yl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=yc(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=>!yl(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=>yl(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 dA(e,t,n,r);for(let o of pA(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 nu=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=Qp(e.where,r),o=Zp(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),OA(s,t,n)]),u=fA(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 fA(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 EA(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 Mf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function ru(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function iu(e,t,n){let r=EA(e);if(r.length===0)return new Map;let i=new Set,o=ru(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=Mf(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 ou(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"){ou(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 Pl(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"){Pl(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"?Pl(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 RA(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;ou(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function gA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?ou(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Wn(n.expr,t):n.type==="STRFUNC_COL"?Pl(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&RA(n.expr,t);return t}var yA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function mA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":yA.has(e.fieldType)?"string":void 0}async function Ff(e,t,n,r){let i=gA(e.columns);if(i.length===0)return;let o=new Set,a=ru(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=Mf(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 cu(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(y=>Le(y)===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(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let m=s.get(y.appId)?.get(Ie(y,f.field));return m?[u(m,y.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:mA(e),fieldType:e.fieldType,semantics:t===void 0?n:Ln(n,t,e.code)}}function xf(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 Kf(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 hA=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 hA.has(e.func)?z("number"):z("string")}function Hn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Kf():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")?Kf("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 Bf(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 AA(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;AA(e)&&await Promise.all(ru(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(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(R.field);return S?ot(S,e.from.appId):void 0}let y=s.find(S=>Le(S)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let m=a.get(y.appId)?.get(Ie(y,R.field));return m?ot(m,y.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 y=a.get(e.from.appId)?.get(Ie(e.from,R.field));return y?ot(y,e.from.appId):Qt(R.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return A?.columns.includes(R.field)?[A.columnMeta?.get(R.field)]:[]}let m=a.get(y.appId)?.get(Ie(y,R.field)),S=m?ot(m,y.appId):Qt(R.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(y=>{if(R.tableAlias!==null&&Le(y)!==R.tableAlias)return!1;let m=Ie(y,R.field);return a.get(y.appId)?.has(m)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let y=c(g);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,Zo(y,y?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,Zo(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!y)return;let m;if(R.type==="FIELD"){let S=Be(R.field);m=u(d(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?m=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"?m=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(m=Yn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")m=z("number");else if(R.type==="GROUPING_COL")m=z("number");else if(R.type==="LITERAL_COL")m=z("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?m=an(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?m=z("number"):S.type==="FIELD"?m=d(S):m=z("string")}else if(R.type==="STRFUNC_COL")m=an(R.expr);else if(R.type==="WINDOW_COL")m=Bf(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)),m=ga(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(m=xe());p.set(y,Zo(m,R.aliasDisplay??y))}),p}function Gf(e,t){let n=ye.get(e),r=ye.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l),c;if(s&&d){let u=ga([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,Zo(c,s?.displayName??o))}),i}function au(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 $f=new WeakSet,Vf=new WeakMap;function Nl(e){return $f.add(e),e}function SA(e,t){return Vf.set(e,t),t}function Wf(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 TA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function IA(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(!TA(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 wA(e,t,n,r,i,o=!0,a,s,l){let d=Vf.get(e);if($f.has(e)&&d!==void 0&&Wf(e,d)){let F=await IA(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),iu(e,t,r),Ff(e,t,r,i)]),g=au(e,E),y=await di(e,t,r,i,nt(e.having)||Ql(e)),m=Df(e,y),S=nu.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);ja(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 cE(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 Xf(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}=Qs({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await lu(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}async function Hf(e,t,n,r,i=!1,o=!1){let a=eu(e,n,null);return bl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Hf(e.left,t,s,r,i,o):Ft(Nl(e.left),t,s,r,void 0,i,o,"DERIVED"),Ft(Nl(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=d.columns,p=d.rows.map(y=>{let m={};return c.forEach((S,A)=>{m[S]=y[u[A]??S]??""}),m}),f=[...l.rows,...p],E=e.all?f:Yf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&ye.set(g,Gf(l,d)),g})}function Yf(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 su(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 aE(t):d.query.type==="DESCRIBE"?c=await sE(d.query,t,r):c=await yt(d.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(d.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)})}let l=await yt(e.query,t,n,a,r,o);return Jl(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(m=>{let S={};return u.forEach((A,I)=>{S[A]=m[p[I]??A]??""}),S}),E=[...d.rows,...f],R=e.all?E:Yf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],y={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&ye.set(y,Gf(d,c)),y}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 bA(e,t,n,r,i);return o&&ye.set(l,await sa(e,l.columns,t,i,r)),l}async function bA(e,t,n,r,i){await fa(e,t,i,r);let o=ii.get(e),a=await Zl(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,Lf(e)),p=_f(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),lE(e,t,n,i,r)]);let g=ge(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(g)}).`);let y=await oi(e,t,i,r),m=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:fe(e.where)}):null,S=eu(e,n,m),A=S.effectiveOptions,[I,w,C]=await Promise.all([Ra(e,t,i),iu(e,t,i),Ff(e,t,i,r)]),b=au(e,w),D=await di(e,t,i,r,nt(e.having)||Ql(e)),N=Df(e,D),_=Ea(e,I)??Nn(e,I);ja(_);let U=t,L=await cE(e.columns,t,A,i,r),v=Promise.resolve(y);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(af)),P.set(e.from.alias,G.columns)}else{let G=await bl(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=>bl(S,async()=>{if(G.table.cteName!=null){let F=c(G.table.cteName);h.set(G.table.alias,F.rows.map(af)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,fn=await Xf(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:$}=Qs({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 lu(e,k,$,t,i);return Jl({type:"SELECT",rows:k,columns:X,rowCount:k.length,warnings:[...E]},p)}async function lu(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 pd(o,e.from.subtableCode,()=>ya(e.from.appId,r,i))}function af(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=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Hl(n,t.appId),Kp(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${y} \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 y=o&&d?Rc(e,t.appId).query:"",m=[l!==null?V(l):"",u].filter(w=>w!==""),S=m.length>1?m.map(w=>`(${w})`).join(" and "):m[0]??"",A=y&&S?`(${y}) and (${S})`:y||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 Od(g,t.subtableCode)}var jf=50;function PA(e){let t=_e(e);return t!==null?JSON.stringify(t):e}function Cl(e){return JSON.stringify(e)}function sn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?PA(n):n))}function fi(e,t){let n=e.raw.get(Cl(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,y,m)=>{let S=g.get(y);(S===void 0||m>S)&&g.set(y,m)},u=(g,y)=>{c(d.raw,Cl(g),y),l.some(Boolean)&&c(d.normalized,sn(g,l),y)},p=new Set,f=[],E=new Set;for(let g of n){let y=Cl(g);E.has(y)||(E.add(y),g.some(m=>m==="")?f.push(g):p.add(g[0]))}let R=["$id",...t];for(let g of jn([...p],jf)){let y=`${t[0]} in (${g.map(la).join(",")})`,m=await be(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let S of m){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(I=>zf(S[I]?.value)),A)}}for(let g of f){let y=t.map((S,A)=>`${S} = ${la(g[A])}`).join(" and "),m=await be(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,NA(m))}return d}function NA(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 zf(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,CA=6,sf=qf*CA;async function Xf(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 y=new Set;for(let b of g){let D=b[E]?.value,N=zf(D).trim();N.length>0&&y.add(N)}let m=[...y];if(m.length===0)return[];if(m.length>sf)return s.add(`JOIN\u30AD\u30FC\u304C ${m.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 ${sf} \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`),Hl(r,t.table.appId)},I=jn(m,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 Ol=new Map,Ll=new Map,_l=new Map,Dl=new Map,vl=new Map,Ul=new Map;function uu(e){Ol.delete(e),Ll.delete(e),_l.delete(e),Dl.delete(e),vl.delete(e),Ul.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(Dl,n,e);if(r)return r;let i=t.getFields(e);return qn(Dl,n,e,i),i}async function st(e,t,n){let r=zn(Ul,n,e);if(r)return r;let i=t.getNumberPrecision(e);return qn(Ul,n,e,i),i}async function ya(e,t,n){let r=zn(vl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return qn(vl,n,e,i),i}async function cu(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(Ol,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(Ol,n,e,o),o}async function kl(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){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return qn(Ll,n,e,o),o}async function OA(e,t,n){let r=await kl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function lf(e,t,n){let r=zn(_l,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(_l,n,e,o),o}function LA(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 _A(e,t,n,r){let i=LA(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),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}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=Bf(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([DA(e,t,n),vA(e,t,n),_A(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function DA(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 kl(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 kl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function vA(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 lf(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 lf(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Jf(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 UA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function kA(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||UA.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 kA(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 MA(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=await Cr({statement:e,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return dS(e,a,o)}async function FA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Qf(e,t,n,r,i);return ES(e,a,o)}async function Qf(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=iE(e),l=new Set;for(let g of s){let y=sn(g,e.keyFields.map(m=>a.get(m)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let d=await 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 y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let S=Number(m.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,m)}}let E=c.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),R=await Dp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function xA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await qe(e.appId,e.fields,t,r),o=await Cr({statement:e,fieldInfos:i,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),loadNumberPrecision:()=>st(e.appId,t,r)}),a=_s(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 Fp(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 Qf(e,t,n,r,1),o=Ds(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 xp(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 BA(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=BA(n?zo(n):[],r?zo(r):[]),a=GA(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 GA(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 pu(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return MA(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return FA(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await rE(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await du(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 du(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=Ld(E),g=(await $A(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,h)=>v.rowNumber-h.rowNumber),y=g.filter(v=>v.mode==="update"),m=e.type==="UPDATE"?HA:e.type.startsWith("UPSERT")?v=>YA(v,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??m,A=y.length>0&&S!==void 0,I=new Map;if(A){Ts(y,c,u);let v=await S({appId:e.appId,candidates:y,fields:R}),h=new Map;for(let P of y){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=_d(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 y){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=Is(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=Dd({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 Ml(e,t,n,r,i,o){let a=await du(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(y=>y.record)});E.push(g.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...c}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...c}}let u=d.filter(E=>E.mode==="create"),p=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...c}}async function $A(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return WA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")uf(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 Eu.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(A.columns).size!==A.columns.length)throw Re("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");uf(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"),y=new Map;for(let A of R){let I=sn(A,g);y.set(I,(y.get(I)??0)+1)}let m=da.has(e);if(m&&[...y.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`})}),!m&&(y.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 fu(e){return e.checkGroups?_n(e.checkGroups):[]}function uf(e,t){let n=new Set(t);for(let r of fu(e)){if(r.tableAlias!==null)throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var VA=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 Zc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(VA.has(i??""))throw Re(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function WA(e,t,n,r,i,o){if(e.from)return zA(e,e.from,t,n,r,i,o);await uE(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=Zf(e,a);un(e,Fl(a,e.appId));let l,d=new Map,c=new Map;if(ao(e)){let u=as(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=ls(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:jA(d.get(u.id),e.appId),evaluationFieldTypes:Fl(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 HA(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 YA(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 Zf(e,t){if(e.from)return[];let n=new Set;for(let r of fu(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Re(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw Re(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function jA(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 Fl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function zA(e,t,n,r,i,o,a){let s=await AE(e,t,n,i,o);un(e,s.evaluationTypes);let l=await eE(e,t,n,r,i,o,a),d=await we(e.appId,n,i),c=cs(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:qS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var qA=jf,XA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function eE(e,t,n,r,i,o,a){let s=await JA(e,t,n,i),l=await AE(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 QA(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=cf(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([...gS(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":hr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,S=0;for(let I of jn([...f.values()],qA)){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.");m.has(N)||(m.add(N),y.push(D))}}let A=[];for(let I of y){let w=I[t.targetJoinField]?.value,C=cf(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 QA(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(XA.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 cf(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 du(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 xA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return hS(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 eS(){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 tE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Fd(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"?$d(e.source,R,u,n.maxRecords??1e4):Vd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=jd(g,u,p,E,y);if(e.source.kind==="CSV")return tS(e,g,m,p,t,n,i);cl(m,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],A=dl(m.errors,S),I=[...S,...pl],w=m.invalidParentRows.size,C={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-w,invalid:w,mutationCandidates:m.parents.filter(k=>k.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.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),m.errors.length>0&&!e.onErrorSkip){let k=m.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=m.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=Xd(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=>zd(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:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return nS(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:eS(),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 pu(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",Ml(s,t,n,r,i,1));return d(u)}let c=await(s.type==="UPSERT_SELECT"?mu(s,t,n,r,i):Ru(s,t,n,r,i));return d(c)}async function tS(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Jd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=Rl(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=Qd(t.records,R,E,p,f),y=g.flatMap(L=>[...L.errors]),m=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),S={...n,parents:R,errors:y,invalidParentRows:m};cl(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:m.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=dl(y,D),_=[...D,...pl];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-m.size,invalidRows:m.size,errorCount:N.length,columns:_,errors:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:m.size,mutationCandidates:A.length},tables:C,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");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=fl(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:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function nS(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=sl(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=Rl(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}}),y=[e.recordNumberSourceHeader,...e.fields],m=Is(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...vn],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:S,errors:m.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,m.errors,r.tempTableMaxRows??Ke,new Map),A}if(!e.onErrorSkip&&m.invalidRows>0){let b=m.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,m.errors,r.tempTableMaxRows??Ke,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new ai(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=g.filter(b=>!m.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:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(C,{insertedCount:0,importAudit:d.importAudit}),C}async function rS(e,t,n,r,i,o){let a=da.get(e);if(!a){let R=i&&i.size>0?await yt(e.select,t,n,i,r,!0):await Ft(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:ye.get(R)}}let s=await Vo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?al(a.source,s,c,l):sl(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=Zd(a.source.projection),f=new Map(i??[]);f.set(El,u);let E=await yt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:ye.get(E)}}var Eu={materialize:rS};function nE(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 Ru(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 Eu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(nE(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,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let m=f[d[y]]??"";R[g]={value:Jf(m,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 xl(e,t,n,r,i){if(e.applyBlocks?.length)return rE(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 Zf(e,R),un(e,Fl(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),AS(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 RS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await uE(e.assignments,t,n,r);let d=await we(e.appId,t,r);if(ao(e)){let E=as(e),g=(await He(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=ls(e,g,d);if(ln(y.flatMap(m=>m.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new ce("UPDATE",g.length);for(let m of y)await t.putRecords(m);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 rE(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 iS(e,t,n,r,i);let o=await te(e.appId,t,r),a=dt(e,o),s=lo(e,o),l=gs(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=gp({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Ze(o,e.assignments.map(I=>I.field)),f=jt(u.postImage,p)?await st(e.appId,t,r):void 0,E=zt(u.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Ge(n.dmlMaxRows,"dmlMaxRows",ht),g=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),y=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:y}}),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 m=co(u,E.normalizedRecord),S=wr(m),A=Lr({plans:[m],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});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 iS(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",ht),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),s=await te(e.appId,t,r),l=dt(e,s),d;if(ua(e))d=await lS(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 fS(e,c,s);Xu("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 Mp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ua(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(Tt(e.where)||fe(e.where))}function oS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ua(t)&&fe(t.where)}var aS=`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 y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Et("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=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+(m-55296<<10)+A-56320)}else m>=56320&&m<=57343?Et("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(m)}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=Bd(Kd(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 Nh=new Set(["CHECK_BOX","MULTI_SELECT"]),Gd=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 Ch(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Oh(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."),Ch(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."),!Nh.has(t.fieldType)&&!Gd.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."),Gd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function al(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]=Oh(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 sl(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((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),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=y=>a.rows.filter(m=>m[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,m]of a.columns.entries()){if(c.has(m)||m===o)continue;let S=d.get(m);if(S)u.push({column:m,reason:E(S),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=d.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let m=[],S={};for(let A of r){let I=y[l.get(A)];try{S[A]=xd(I,d.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;S[A]=I,m.push({field:A,code:w.code,message:w.message})}}return R.push(m),S}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns: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 $d(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 y=new Set(E.children),m=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())y.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,m)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function Vd(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 y=p[s.get(g.field)];if(y!==""&&y!==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 y=p[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(A=>[A,p[s.get(A)]]));if(y===""&&[...m.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:m})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}var Lh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),_h=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function cl(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)Wd(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)Wd(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=>Dh(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 Dh(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&ul(e.top.get(p.field),r.get(p.field),o,d,p.field,l,ll(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)||Hd(p,o,c,l,ll(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,y={},m=i.get(p.subtableCode);for(let S of p.children){let A=m.get(S),I=ll(e,a,S,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?ul(R.values.get(S),A,o,y,S,l,I):Hd(A,o,y,l,I)}l.length===g?(f.validChildRows++,E.push(y)):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 Wd(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&&_h.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Hd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;ul(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function ul(e,t,n,r,i,o,a,s=!1){let l=vh(e),d=Oe(l,t,n);d.ok?r[i]={value:Uh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function vh(e){return Yd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Yd(t)?t.lexeme:t):e}function Yd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Uh(e,t){return Lh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ll(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 pl=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function dl(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":kh(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 kh(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 fl(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 zd(e,t){return fl(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 Xd(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 Mh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Jd(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 Qd(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=Mh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,S=0,A=0,I=g.map((w,C)=>{let b=y[C]??{};return w.rowId&&R.has(w.rowId)?(m++,{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:m,addRows:S,deleteRows:E.length-m,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 El="#__import_source";function Zd(e){return{...e,from:{appId:0,alias:null,cteName:El}}}function Fh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Rl(e,t){let n=e.map(Fh),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 xh="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",on=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},ye=new WeakMap;function yf(e){return ye.get(e)}var cn=new WeakMap,da=new WeakMap,ef=new WeakMap,Kh=1,Bh=1;function mf(e,t){if(t)return t;let n=ef.get(e);return n||(n=`client:${Kh++}`,ef.set(e,n)),n}function Vl(e){return`${e}\0inv:${Bh++}`}async function Wl(e,t,n={}){let r=Date.now(),i=Vl(mf(t,n.cacheContext));try{let o=LS(e,n.enableImport===!0),a=hf(),s=Sf(t,a),l={aborted:!1},d=Yl(s,l,!$h(o)||Us(o)),c=await Sl(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Tf(c,l),metrics:a};if(c.type==="SELECT"){let p=ye.get(c);p&&ye.set(u,p)}return u}finally{uu(i)}}function hf(){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 Af=Symbol("limitMetricsSink");function Hl(e,t){let n=e[Af];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Sf(e,t){return{[Af]: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 tf=Symbol("searchAbortFailClosed");function Yl(e,t,n){return n&&e[tf]?e:{...e,...n?{[tf]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;return i}}}function Gh(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 $h(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Tf(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(xh),{...e,warnings:[...n]}}async function nf(e,t,n){let r=await pi(e,t,n);return il(r),r}async function pi(e,t,n){return Md(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return ge(r.where,i)},dml:r=>vf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return ol(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)&&nu.set(r,o),o.joinPlan)}})}async function Sl(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&il(i);let o=Il(e);if(o!==null&&!aS(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 tA(e,t,r),e.type==="IMPORT")return nE(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 xl(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 pu(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 Vh(e,t,n,r);case"SELECT":return Ft(Nl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Yf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return su(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return eS(e,t,n,r);case"INSERT_SELECT":return Ru(e,t,n,r);case"UPSERT":return hS(e,t,n,r);case"UPSERT_SELECT":return mu(e,t,n,r);case"UPDATE":return xl(e,t,n,r);case"DELETE":return mS(e,t,n,r);case"REORDER":return bS(e,t,n,r);case"SHOW_APPS":return sE(t);case"DESCRIBE":return lE(e,t,r);case"EXPLAIN":return US(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me):me,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return Nf(e,t,n,r)}}var jl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],zl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ql(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 If(e=!1){let t=e?zl:jl;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 Vh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return wf(e,t,n,r)}async function wf(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=Ns(e,i),l=new Set(s.flatMap(O=>bs(O.field))),d={present:ws.filter(O=>l.has(O)),absent:ws.filter(O=>!l.has(O))},c=e.checkGroups??[],u=_n(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),un(e,p);let f=ql(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),y=ge(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(y)}).`);let m=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:y.capability==="EXACT_PUSHDOWN"?e.where:bn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,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?zl:jl],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return ye.set(M,If(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])||!Wh(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 Wh(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 bf(e,t,n={}){let r=Xl(e,n.enableImport===!0),i=Qa(r);if(r.forEach(f=>Di("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Fa(f)||f.type==="UPSERT"&&Hh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=vs(r,n.variables),a=Pf(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=hf(),d=Sf(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=Vl(mf(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let S=i.statements[m],A={index:m,type:S.statementType};if(y){R.push({...A,status:"skipped",skippedReason:y}),g.add(m);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(m);continue}if(u!==null&&Date.now()>=u){R.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(m),y="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:m,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=Yl(d,D,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||Us(r[m])),_=Gh(N),U=await zh(Yh(r[m],S,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Tf(U.result,D)),R.push({...A,status:"success",...U})}catch(w){R.push({...A,status:"error",error:qh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(m),w instanceof Gn?y="timeout":w instanceof Vn?y="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(m=>m.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{uu(p)}}function Hh(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 Yh(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let d=ra(e,a);if(We(d),await nf(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 Cf(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,rf(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=rf(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 nf(l,n,i),l.type==="VALIDATE"){let d=await wf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,ye.get(d)??If(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await nE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await pu(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 Ml(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 jh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Sl(l,n,r,i)};if(l.type==="ASSERT")return await Nf(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 su(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Ru(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await mu(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await xl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Sl(l,n,r,i)}}async function jh(e,t,n,r,i){return e.type==="WITH"?su(e,t,n,r,i,!0):yt(e,t,n,i,r,!0)}async function zh(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 qh(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)??gl(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:Xh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:gl(r),message:r}}else{let n=String(e);t={code:gl(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function gl(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function Xh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Xl(e,t=!1){let n=new Ot(e).tokenize();return new Lt(n,{import:t}).parseStatements()}function Jh(e,t){try{let n=Xl(`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 Pf(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)?Jh(r.name,t[r.name]):r.default);return n}function rf(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:Qc(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 Tl(e,t,!1)}function Tl(e,t,n){if(Array.isArray(e))return e.map(r=>Tl(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(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,Tl(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=Qh(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 Qh(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 Il(e){if(Array.isArray(e)){for(let t of e){let n=Il(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=Il(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 Nf(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(wl(e));case"SCALAR_SUBQUERY":try{return await Cf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Vn(o.message):o}}}async function Cf(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 wl(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=wl(e.left),n=wl(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 y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.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 cu(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),y=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return Ln(y,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 Of=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=Hp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Of.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function Lf(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function _f(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 Jl(e,t){return t.length===0?e:{...e,warnings:[...new Set([...e.warnings??[],...t])]}}function Ql(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 Df(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 vf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ge(null,()=>{}):ge(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function $n(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await vf(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),iA(e))return l=sA(e),o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Lf(e)),c=_f(e,d,s),u=await Zl(e,t,r,i);await uE(e,t,n,r,i);let p=TA(e,ge(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let w=await di(e,t,r,i),C=ol(e,w);C.eligible&&rl(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",y=await oi(e,t,r,i),m=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:fe(e.where)}):null;await uA(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r);let S=eu(e,n,m),I=R!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?Yl(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await lA(e,I,S.effectiveOptions,r,m,y):l=await bA(e,I,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,u)}catch(w){Uf(S,w)}return o&&ye.set(l,await sa(e,l.columns,t,r,i,a)),Jl(l,c)}async function Zl(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=ld(e,(d,c)=>o[c]),s=e.groupBy,l=ud(s,e.columns,a);return eA(e,s,l),l}function eA(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 tA(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 nA(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(y=>y.cteName===null&&s(y,p.field)!==null).length,R=i.some(y=>l(y,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 nA(e,t,n,r),s=pc(e,a,cc);s&&ii.set(e,s)}function rA(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 eu(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 Uf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(rA(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function bl(e,t){try{return await t()}catch(n){Uf(e,n)}}function gt(e){return e?.type==="BOOLEAN"&&e.value===!1}function iA(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"?tu(e):!1}function oA(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"?tu(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 tu(e){return e.args.some(t=>oA(t))}function aA(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(tu(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 sA(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.");aA(e);let t=qs([{}],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 lA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?xf(e):e,s=Ki(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await iu(e,t,r),c=au(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,Ql(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,y=e.limit===null?null:(e.offset??0)+e.limit,m=e.orderBy.length===0&&y!==null&&y<=p&&!fe(e.where)?y: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 ad({client:t,app:s.app,fields:s.fields,query:Gs(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:m,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`),Hl(t,e.from.appId)}})}let A=S.map(b=>ft(b,null));g||(A=js(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,zs(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 lu(e,I,w,t,r);return{type:"SELECT",rows:I,columns:C,rowCount:I.length,warnings:[...f]}}async function uA(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=>!$s(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 of(e){return e.cteName??`APP${e.appId}`}function cA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function pA(e,t){return $s(t)||e.validCodes.has(t)}function yl(e,t){return e.table.cteName!==null?e.validCodes.has(t):pA(e,t)}function dA(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 fA(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:of(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:of(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 cA(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&&!yl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=yc(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=>!yl(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=>yl(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 fA(e,t,n,r);for(let o of dA(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 nu=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=Qp(e.where,r),o=Zp(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),LA(s,t,n)]),u=EA(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 EA(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Rt(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&aa(e.left.expr,t),e.right.type==="CASE_VALUE"&&aa(e.right.expr,t);return;case"LOGICAL":Rt(e.left,t),Rt(e.right,t);return;case"NOT":case"GROUP":Rt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function aa(e,t){for(let n of e.branches)Rt(n.condition,t)}function RA(e){let t=[];Rt(e.where,t),Rt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&aa(n.expr,t);return t}function Le(e){return e.alias??e.cteName}function Mf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function ru(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function iu(e,t,n){let r=RA(e);if(r.length===0)return new Map;let i=new Set,o=ru(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=Mf(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 ou(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"){ou(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 Pl(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"){Pl(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"?Pl(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 gA(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;ou(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function yA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?ou(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Wn(n.expr,t):n.type==="STRFUNC_COL"?Pl(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&gA(n.expr,t);return t}var mA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function hA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":mA.has(e.fieldType)?"string":void 0}async function Ff(e,t,n,r){let i=yA(e.columns);if(i.length===0)return;let o=new Set,a=ru(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=Mf(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 cu(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(y=>Le(y)===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(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let m=s.get(y.appId)?.get(Ie(y,f.field));return m?[u(m,y.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:hA(e),fieldType:e.fieldType,semantics:t===void 0?n:Ln(n,t,e.code)}}function xf(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 Kf(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 AA=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 AA.has(e.func)?z("number"):z("string")}function Hn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Kf():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")?Kf("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 Bf(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 SA(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;SA(e)&&await Promise.all(ru(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(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(R.field);return S?ot(S,e.from.appId):void 0}let y=s.find(S=>Le(S)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let m=a.get(y.appId)?.get(Ie(y,R.field));return m?ot(m,y.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 y=a.get(e.from.appId)?.get(Ie(e.from,R.field));return y?ot(y,e.from.appId):Qt(R.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return A?.columns.includes(R.field)?[A.columnMeta?.get(R.field)]:[]}let m=a.get(y.appId)?.get(Ie(y,R.field)),S=m?ot(m,y.appId):Qt(R.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(y=>{if(R.tableAlias!==null&&Le(y)!==R.tableAlias)return!1;let m=Ie(y,R.field);return a.get(y.appId)?.has(m)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let y=c(g);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,Zo(y,y?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,Zo(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!y)return;let m;if(R.type==="FIELD"){let S=Be(R.field);m=u(d(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?m=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"?m=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(m=Yn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")m=z("number");else if(R.type==="GROUPING_COL")m=z("number");else if(R.type==="LITERAL_COL")m=z("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?m=an(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?m=z("number"):S.type==="FIELD"?m=d(S):m=z("string")}else if(R.type==="STRFUNC_COL")m=an(R.expr);else if(R.type==="WINDOW_COL")m=Bf(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)),m=ga(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(m=xe());p.set(y,Zo(m,R.aliasDisplay??y))}),p}function Gf(e,t){let n=ye.get(e),r=ye.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l),c;if(s&&d){let u=ga([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,Zo(c,s?.displayName??o))}),i}function au(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 $f=new WeakSet,Vf=new WeakMap;function Nl(e){return $f.add(e),e}function TA(e,t){return Vf.set(e,t),t}function Wf(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 IA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function wA(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(!IA(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 bA(e,t,n,r,i,o=!0,a,s,l){let d=Vf.get(e);if($f.has(e)&&d!==void 0&&Wf(e,d)){let F=await wA(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),iu(e,t,r),Ff(e,t,r,i)]),g=au(e,E),y=await di(e,t,r,i,nt(e.having)||Ql(e)),m=Df(e,y),S=nu.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);ja(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 pE(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 Jf(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}=Qs({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await lu(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}function Hf(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
11
+ UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}async function Yf(e,t,n,r,i=!1,o=!1){let a=eu(e,n,null);return bl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Yf(e.left,t,s,r,i,o):Ft(Nl(e.left),t,s,r,void 0,i,o,"DERIVED"),Ft(Nl(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=d.columns;Hf(c,u);let p=d.rows.map(y=>{let m={};return c.forEach((S,A)=>{m[S]=y[u[A]??S]??""}),m}),f=[...l.rows,...p],E=e.all?f:jf(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&ye.set(g,Gf(l,d)),g})}function jf(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 su(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 sE(t):d.query.type==="DESCRIBE"?c=await lE(d.query,t,r):c=await yt(d.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(d.name,{rows:c.rows,columns:c.columns,columnMeta:ye.get(c)})}let l=await yt(e.query,t,n,a,r,o);return Jl(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;Hf(u,p);let f=c.rows.map(m=>{let S={};return u.forEach((A,I)=>{S[A]=m[p[I]??A]??""}),S}),E=[...d.rows,...f],R=e.all?E:jf(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],y={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&ye.set(y,Gf(d,c)),y}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 PA(e,t,n,r,i);return o&&ye.set(l,await sa(e,l.columns,t,i,r)),l}async function PA(e,t,n,r,i){await fa(e,t,i,r);let o=ii.get(e),a=await Zl(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,Lf(e)),p=_f(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),uE(e,t,n,i,r)]);let g=ge(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(g)}).`);let y=await oi(e,t,i,r),m=ia(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:fe(e.where)}):null,S=eu(e,n,m),A=S.effectiveOptions,[I,w,C]=await Promise.all([Ra(e,t,i),iu(e,t,i),Ff(e,t,i,r)]),b=au(e,w),D=await di(e,t,i,r,nt(e.having)||Ql(e)),N=Df(e,D),_=Ea(e,I)??Nn(e,I);ja(_);let U=t,L=await pE(e.columns,t,A,i,r),v=Promise.resolve(y);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(af)),P.set(e.from.alias,G.columns)}else{let G=await bl(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=>bl(S,async()=>{if(G.table.cteName!=null){let F=c(G.table.cteName);h.set(G.table.alias,F.rows.map(af)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,fn=await Jf(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:$}=Qs({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 lu(e,k,$,t,i);return Jl({type:"SELECT",rows:k,columns:X,rowCount:k.length,warnings:[...E]},p)}async function lu(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 pd(o,e.from.subtableCode,()=>ya(e.from.appId,r,i))}function af(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=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Hl(n,t.appId),Kp(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${y} \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 y=o&&d?Rc(e,t.appId).query:"",m=[l!==null?V(l):"",u].filter(w=>w!==""),S=m.length>1?m.map(w=>`(${w})`).join(" and "):m[0]??"",A=y&&S?`(${y}) and (${S})`:y||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 Od(g,t.subtableCode)}var zf=50;function NA(e){let t=_e(e);return t!==null?JSON.stringify(t):e}function Cl(e){return JSON.stringify(e)}function sn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?NA(n):n))}function fi(e,t){let n=e.raw.get(Cl(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,y,m)=>{let S=g.get(y);(S===void 0||m>S)&&g.set(y,m)},u=(g,y)=>{c(d.raw,Cl(g),y),l.some(Boolean)&&c(d.normalized,sn(g,l),y)},p=new Set,f=[],E=new Set;for(let g of n){let y=Cl(g);E.has(y)||(E.add(y),g.some(m=>m==="")?f.push(g):p.add(g[0]))}let R=["$id",...t];for(let g of jn([...p],zf)){let y=`${t[0]} in (${g.map(la).join(",")})`,m=await be(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let S of m){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(I=>qf(S[I]?.value)),A)}}for(let g of f){let y=t.map((S,A)=>`${S} = ${la(g[A])}`).join(" and "),m=await be(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,CA(m))}return d}function CA(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 Xf=50,OA=6,sf=Xf*OA;async function Jf(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 y=new Set;for(let b of g){let D=b[E]?.value,N=qf(D).trim();N.length>0&&y.add(N)}let m=[...y];if(m.length===0)return[];if(m.length>sf)return s.add(`JOIN\u30AD\u30FC\u304C ${m.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 ${sf} \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`),Hl(r,t.table.appId)},I=jn(m,Xf),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 Ol=new Map,Ll=new Map,_l=new Map,Dl=new Map,vl=new Map,Ul=new Map;function uu(e){Ol.delete(e),Ll.delete(e),_l.delete(e),Dl.delete(e),vl.delete(e),Ul.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(Dl,n,e);if(r)return r;let i=t.getFields(e);return qn(Dl,n,e,i),i}async function st(e,t,n){let r=zn(Ul,n,e);if(r)return r;let i=t.getNumberPrecision(e);return qn(Ul,n,e,i),i}async function ya(e,t,n){let r=zn(vl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return qn(vl,n,e,i),i}async function cu(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(Ol,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(Ol,n,e,o),o}async function kl(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){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return qn(Ll,n,e,o),o}async function LA(e,t,n){let r=await kl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function lf(e,t,n){let r=zn(_l,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(_l,n,e,o),o}function _A(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 DA(e,t,n,r){let i=_A(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),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}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=Bf(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([vA(e,t,n),UA(e,t,n),DA(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function vA(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 kl(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 kl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function UA(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 lf(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 lf(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Qf(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 kA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function MA(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||kA.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 MA(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 FA(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=await Cr({statement:e,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return fS(e,a,o)}async function xA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Zf(e,t,n,r,i);return RS(e,a,o)}async function Zf(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=oE(e),l=new Set;for(let g of s){let y=sn(g,e.keyFields.map(m=>a.get(m)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let d=await 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 y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let S=Number(m.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,m)}}let E=c.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),R=await Dp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function KA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await qe(e.appId,e.fields,t,r),o=await Cr({statement:e,fieldInfos:i,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),loadNumberPrecision:()=>st(e.appId,t,r)}),a=_s(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 Fp(o,t,a);return{...s,diagnostic:ke(a,s)}}async function BA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Zf(e,t,n,r,1),o=Ds(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 xp(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 GA(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=GA(n?zo(n):[],r?zo(r):[]),a=$A(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 $A(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 pu(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return FA(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return xA(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await iE(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await du(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 du(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=Ld(E),g=(await VA(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,h)=>v.rowNumber-h.rowNumber),y=g.filter(v=>v.mode==="update"),m=e.type==="UPDATE"?YA:e.type.startsWith("UPSERT")?v=>jA(v,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??m,A=y.length>0&&S!==void 0,I=new Map;if(A){Ts(y,c,u);let v=await S({appId:e.appId,candidates:y,fields:R}),h=new Map;for(let P of y){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=_d(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 y){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=Is(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=Dd({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 Ml(e,t,n,r,i,o){let a=await du(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(y=>y.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 VA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return HA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")uf(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 Eu.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(A.columns).size!==A.columns.length)throw Re("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");uf(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"),y=new Map;for(let A of R){let I=sn(A,g);y.set(I,(y.get(I)??0)+1)}let m=da.has(e);if(m&&[...y.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`})}),!m&&(y.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 fu(e){return e.checkGroups?_n(e.checkGroups):[]}function uf(e,t){let n=new Set(t);for(let r of fu(e)){if(r.tableAlias!==null)throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var WA=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 Zc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(WA.has(i??""))throw Re(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function HA(e,t,n,r,i,o){if(e.from)return qA(e,e.from,t,n,r,i,o);await cE(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=eE(e,a);un(e,Fl(a,e.appId));let l,d=new Map,c=new Map;if(ao(e)){let u=as(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=ls(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:zA(d.get(u.id),e.appId),evaluationFieldTypes:Fl(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 YA(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 jA(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 eE(e,t){if(e.from)return[];let n=new Set;for(let r of fu(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Re(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw Re(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function zA(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 Fl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function qA(e,t,n,r,i,o,a){let s=await SE(e,t,n,i,o);un(e,s.evaluationTypes);let l=await tE(e,t,n,r,i,o,a),d=await we(e.appId,n,i),c=cs(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:QS(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var XA=zf,JA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function tE(e,t,n,r,i,o,a){let s=await QA(e,t,n,i),l=await SE(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=cf(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([...yS(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":hr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,S=0;for(let I of jn([...f.values()],XA)){let w=`${t.targetJoinField} in (${I.map(la).join(",")})`,C=g?`(${w}) and (${g})`:w,b=await He(n.getRecords,e.appId,C,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=b.records.length,S>E)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let D of b.records){let N=D.$id?.value;if(typeof N!="string"||N==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");m.has(N)||(m.add(N),y.push(D))}}let A=[];for(let I of y){let w=I[t.targetJoinField]?.value,C=cf(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 QA(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(JA.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 cf(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 du(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 eS(e,t,n,r){if(e.applyBlocks?.length)return KA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return AS(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 tS(){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 nE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Fd(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"?$d(e.source,R,u,n.maxRecords??1e4):Vd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=jd(g,u,p,E,y);if(e.source.kind==="CSV")return nS(e,g,m,p,t,n,i);cl(m,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],A=dl(m.errors,S),I=[...S,...pl],w=m.invalidParentRows.size,C={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-w,invalid:w,mutationCandidates:m.parents.filter(k=>k.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.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),m.errors.length>0&&!e.onErrorSkip){let k=m.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=m.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=Xd(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=>zd(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:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return rS(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:tS(),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 pu(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",Ml(s,t,n,r,i,1));return d(u)}let c=await(s.type==="UPSERT_SELECT"?mu(s,t,n,r,i):Ru(s,t,n,r,i));return d(c)}async function nS(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Jd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=Rl(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=Qd(t.records,R,E,p,f),y=g.flatMap(L=>[...L.errors]),m=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),S={...n,parents:R,errors:y,invalidParentRows:m};cl(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:m.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=dl(y,D),_=[...D,...pl];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-m.size,invalidRows:m.size,errorCount:N.length,columns:_,errors:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:m.size,mutationCandidates:A.length},tables:C,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");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=fl(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:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function rS(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=sl(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=Rl(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}}),y=[e.recordNumberSourceHeader,...e.fields],m=Is(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...vn],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:S,errors:m.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,m.errors,r.tempTableMaxRows??Ke,new Map),A}if(!e.onErrorSkip&&m.invalidRows>0){let b=m.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,m.errors,r.tempTableMaxRows??Ke,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new ai(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=g.filter(b=>!m.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:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(C,{insertedCount:0,importAudit:d.importAudit}),C}async function iS(e,t,n,r,i,o){let a=da.get(e);if(!a){let R=i&&i.size>0?await yt(e.select,t,n,i,r,!0):await Ft(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:ye.get(R)}}let s=await Vo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?al(a.source,s,c,l):sl(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=Zd(a.source.projection),f=new Map(i??[]);f.set(El,u);let E=await yt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:ye.get(E)}}var Eu={materialize:iS};function rE(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 Ru(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 Eu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(rE(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,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let m=f[d[y]]??"";R[g]={value:Qf(m,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 xl(e,t,n,r,i){if(e.applyBlocks?.length)return iE(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 eE(e,R),un(e,Fl(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),SS(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 gS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await cE(e.assignments,t,n,r);let d=await we(e.appId,t,r);if(ao(e)){let E=as(e),g=(await He(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=ls(e,g,d);if(ln(y.flatMap(m=>m.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new ce("UPDATE",g.length);for(let m of y)await t.putRecords(m);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 iE(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 oS(e,t,n,r,i);let o=await te(e.appId,t,r),a=dt(e,o),s=lo(e,o),l=gs(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=gp({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Ze(o,e.assignments.map(I=>I.field)),f=jt(u.postImage,p)?await st(e.appId,t,r):void 0,E=zt(u.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Ge(n.dmlMaxRows,"dmlMaxRows",ht),g=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),y=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:y}}),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 m=co(u,E.normalizedRecord),S=wr(m),A=Lr({plans:[m],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});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 oS(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",ht),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",me),s=await te(e.appId,t,r),l=dt(e,s),d;if(ua(e))d=await uS(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 ES(e,c,s);Xu("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 Mp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ua(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(Tt(e.where)||fe(e.where))}function aS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ua(t)&&fe(t.where)}var sS=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
11
12
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
12
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function sS(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${aS}`)}async function lS(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=Bs(e.where,{fieldTypes:s,fieldOptions:l});sS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(lo(e,r));for(let E of uS(e.where))u.add(E);let p=await cS(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 uS(e){return ql(e)}async function cS(e,t,n,r,i){let s=[...pS(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await cu(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 pS(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 dS(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=_s(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 fS(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 ES(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=Ds(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,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return cn.set(f,ha([...s],n,e.appId)),f}function si(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:rn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:rn(t,"ADD"),removedValues:rn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function li(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var ht=100,me=500;function Ge(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function ha(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Z({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ot(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function RS(e,t,n,r,i,o){let a=await eE(e,t,n,r,i,o),s=await we(e.appId,n,i),l=cs(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 gS(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 yS(e,t,n,r){if(await $n(e,t,r),gt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return SS(e,t,n,r);let i=lp(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=up(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function mS(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=iE(e),c=await Ei(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((g,y)=>{let m=p[y];m.type==="CASE_VALUE"?E[g]={value:Ut(m.expr,{},l.get(g))}:E[g]={value:pt(m,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 iE(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 gu(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 hS(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=pf(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:pf(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(oE(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 AS(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 gu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=yu(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(y=>{let m=y.id??"";if(!m)return y;let S=f.get(m);return S?{id:m,value:S}:{id:m}});await t.putRecords(TS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function SS(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 gu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=yu(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),y=R.filter((m,S)=>!g.has(S));await t.putRecords(oE(e.appId,p,yi(E),i,y))}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 yu(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}`]=Kl(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 oE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function TS(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function IS(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 pf(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 Kl(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 wS(e,t,n,r){let i=[];Rt(e.where,i);let o=await gu(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=yu(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((m,S)=>({row:m,i:S,flat:bS(E,e.subtableCode,m,S)}));g.sort((m,S)=>PS(m.flat,S.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(IS(e.appId,f,yi(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function bS(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}`]=Kl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Kl(a?.value);return i}function PS(e,t,n,r){for(let i of n){let o=df(i.key,e),a=df(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 df(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 mu(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 Eu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(nE(s),d.length!==e.fields.length){let y=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let c=[],u=[],p=await we(e.appId,t,r),f=l.map((y,m)=>{let S={};return e.fields.forEach((A,I)=>{if(s.importPresence&&!s.importPresence[m]?.has(A))return;let w=y[d[I]]??"";S[A]={value:Jf(w,p.get(A))}}),S});f.forEach(y=>ln([y],e.fields.filter(m=>m in y),o,a));let E=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(da.has(e)){let y=e.keyFields.map(S=>p.get(S)==="NUMBER"),m=new Set;for(let S of E){let A=sn(S,y);if(m.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");m.add(A)}}let R=await Ei(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,m)=>{let S=fi(R,E[m]);S!==void 0?u.push({id:S,record:y}):c.push(y)}),n.confirm&&c.length+u.length>0){let y=c.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new ce("UPDATE",y)}let g=[];for(let y=0;y<c.length;y+=100){let m=await t.postRecords({app:e.appId,records:c.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}async function aE(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 sE(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 NS(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 lE(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 uE(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 cE(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 pE=new WeakMap,Bl=new WeakMap,dE=new WeakMap,fE=new WeakMap;async function EE(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(y=>y.source===g||JSON.stringify(y.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 y=g;if(y.type==="SELECT"){let m=g;await fa(m,l,n);let S=[m.from,...m.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(re(m).type==="PLAIN"&&!S){let U=await Zl(m,l,n);U&&u.set(m,U)}let A=[m.from,...m.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(nt(m.where)||m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&A.forEach(U=>o.add(U));let{resolver:w,rewrites:C}=await tn(m,l,n);C.length>0&&Bl.set(m,C);let b=ge(m.where,w),D=E(m);if(b.capability==="UNSUPPORTED"&&!D)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(b)}).`);d.set(m,b);let _=nu.get(m)??Ea(m,await Ra(m,l,n));if(_&&pE.set(m,_),m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await oi(m,l,n);if(m.orderMode!=="KINTONE_NATIVE")for(let L of U.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(ia(m)&&!S&&D?.allowed!==!1){let L=b.capability==="EXACT_PUSHDOWN"?Ue(m):"FULL_SCAN";c.set(m,(m.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:m,staticMode:L,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:fe(m.where)}))}}}else if(y.type==="VALIDATE"){let m=g;o.add(m.appId);let S=await te(m.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=Ns(m,S),C=_n(m.checkGroups??[]),b=ql(m.where);for(let h of C){if(h.field!=="$id"&&!A.has(h.field)&&!I.has(h.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u306F APP${m.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${m.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(m,D);let N=ge(m.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=m.where===null?null:N.capability==="EXACT_PUSHDOWN"?m.where:bn(m.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:U,allowKlike:!1}),v=w.some(h=>h.field.fieldType==="NUMBER");v&&(s.add(m.appId),await st(m.appId,l,n)),dE.set(m,{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(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(g.appId),y.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=Bs(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))]]:[]))});fE.set(S,w)}}let m=g;(m.type!=="UPDATE"||!ua(m))&&E(m)?.allowed!==!1&&await $n(m,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&bt(e)){let g=Pt(e),{resolver:y,rewrites:m}=await tn(g,l,n);m.length>0&&Bl.set(g,m);let S=ge(g.where,y),A=E(g);if(S.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(S)}).`);if(d.set(g,S),ia(g)&&A?.allowed!==!1){let I=await oi(g,l,n);c.set(g,(g.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:g,staticMode:S.capability==="EXACT_PUSHDOWN"?Ue(g):"FULL_SCAN",whereCapability:S.capability,whereReasons:S.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:fe(g.where)}))}}return{capabilities:d,orderPlans:c,plainGroupByPlans:u,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Gl(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 CS(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 ff(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)} ${CS(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 $l(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?OS(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=hl(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ml(d)}: ${d}`,` ${Al(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=hl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=ff(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${ml(l)}: ${l}`,` ${Al(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)",` ${Ef(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=hl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=ff(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${ml(l)}: ${l}`,` ${Al(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)}`,` ${Ef(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 OS(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 ml(e){return J(e)?"relative date function":"kintone function"}function hl(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 Al(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function Ef(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var RE=Symbol("ksql.explainFetchPlan");function hu(e){return e[RE]}function gE(e,t){e[RE]=t}async function yE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=me){let d=Vl(r);try{let c=Xl(e,a),u=Qa(c),p=vs(c,n),f=Pf(c,p),E=new Map,R=[],g=[];for(let m=0;m<c.length;m++){let S=c[m],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 EE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?$l(I):[...$l(I),...mE(LS(A,u.statements[m],w.capabilities,w.orderPlans,s,l,C),o)],D=Gl(w);R.push({index:m,type:u.statements[m].statementType,plan:b.length===0?D:[b[0],...D,...b.slice(1)]}),g.push({index:m,fetch:Au(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 y={statementCount:c.length,statements:R};return gE(y,{statements:g}),y}finally{uu(d)}}function LS(e,t,n,r,i=100,o=me,a={sources:[]}){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Ke} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Jr(e.query,t,n,r,a,"main").map(s=>` ${s}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let s=ca(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Jr(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Jr(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],l=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return l.forEach((d,c)=>{s.push(l.length>1?` subquery[${c+1}]:`:" subquery:");let u=ca(d.query)?t:{...t,tempTablesReferenced:[]};s.push(...Jr(d.query,u,n,r,a).map(p=>` ${p}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Sa(e,void 0,n,r,i,o):Jr(e,t,n,r,a)}function ca(e){if(Array.isArray(e))return e.some(ca);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(ca)}return!1}function Jr(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return Sa(e,void 0,n,r,100,me,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&a.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}async function _S(e,t,n,r,i,o=100,a=me,s){let l=s??await pi(e.query,t,n),d=await EE(e.query,t,n,r,l),c={sources:[]},u=$l(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Gl(d),...u]:[...Gl(d),...u,...mE(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 gE(E,{statements:[{index:0,fetch:Au(c.sources),sources:c.sources}]}),E}function mE(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Sa(e,t,n,r,i=100,o=me,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=MS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="WITH"){let f=FS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="INSERT")return BS(e,t,i,o);if(e.type==="INSERT_SELECT")return GS(e,t,n,r,s);if(e.type==="UPSERT")return HS(e,t,i,o);if(e.type==="UPSERT_SELECT")return YS(e,t,n,r,s);if(e.type==="UPDATE")return $S(e,t,n,r,i,o,a);if(e.type==="DELETE")return WS(e,t);if(e.type==="REORDER")return jS(e,t);if(e.type==="VALIDATE")return US(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 Rf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Au(e){return e.reduce((t,n)=>Rf[t]>=Rf[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: ${Au(t).toUpperCase()}`,...n]}function DS(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:DS(o)};return e.sources.push(s),s}function vS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Xo(e){return` fetch: ${vS(e)}`}function US(e,t){let n=dE.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?zl:jl).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 kS(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&&Wf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=xS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Bp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Bl.get(e)??Of.get(e)??[])R.push(kS(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 y=re(e);if(y.type==="PLAIN"){let I=y.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(hE).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 m=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,S=At(m);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"?xf(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=c?.kind==="KORDER_CURSOR"?Gs(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=pE.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 MS(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 FS(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)a.query.type==="SELECT"&&(o.push(...ze(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...Sa(e.query,"[main]",t,n,100,me,1e4,r,!1,i)),bt(e)){o.push("");let a=Pt(e);o.push(...ze(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function xS(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 BS(e,t,n=ht,r=me){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Su(Ao(e,n,r))]:a}function GS(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function $S(e,t,n,r,i=100,o=me,a=1e4){if(e.applyBlocks?.length)return VS(e,t,i,o,a);let s=ip(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=zS(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(` ${XS(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 VS(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=fE.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",...Su(o)]}function WS(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 HS(e,t,n=ht,r=me){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Su(Ao(e,n,r))]:a}function Su(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 YS(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 jS(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(hE).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 hE(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 zS(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 AE(e,t,n,r,i){let o=fu(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 Re(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Re(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else throw Re(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw Re(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw Re(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...c],evaluationTypes:u}}function qS(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 XS(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} = ${SE(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 SE(e){return`${gf(e.left)} ${e.op} ${gf(e.right)}`}function gf(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"?`(${SE(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 he=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 Tu(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 he("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new he("PARSE_ERROR",e,t)}function TE(){let e=new on;return new he("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 he?e:e instanceof Te||e instanceof T?new he("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new he("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new he("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new he("CLIENT_ERROR",e.message,e.cause):JS(e)?new he("CLIENT_ERROR",mi(e),e):new he("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 Tu(n,e.statementIndex,r.type)}return n}var QS=2,Ia=5,ZS=3e4,eT=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??QS;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??eT}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 tT(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function nT(e,t=r=>new Promise(i=>setTimeout(i,r)),n=tT){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 rT(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 IE(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 rT(nT(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function wE(e){return bE(e,oT(e))}function bE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=aT(o.options),s=sT(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)&&!iT.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...bE(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var iT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function oT(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 aT(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 sT(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function PE(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 lT="Filter aborted because of too many search results";function NE(e){return e?.includes(lT)===!0}var CE="/k/v1/records.json",Pa="/k/v1/records/cursor.json",uT=4096,cT=2,Iu=e=>kintone.api.url(e,!0);function pT(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(CE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=uT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Iu(CE),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 dT(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 fT(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(Iu(e),t,n)}catch(r){throw hi(r)}}function ET(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function OE(e={}){let t=e.cursorMaxActive??cT;ET(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=pT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await dT(l);let d=await l.json();return NE(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw hi(s)}},async openCursor(a){let s=Iu(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??=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=IE(Number(c.totalCount),{get:()=>dn(Pa,"GET",{id:u}),delete:()=>dn(Pa,"DELETE",{id:u}),isAlreadyReleasedError:fT,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 wE(s.properties)},async getNumberPrecision(a){let s=await dn("/k/v1/app/settings.json","GET",{app:a});return Ip(s)},async getProcessStatuses(a){let s=await dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:PE(s.states)}}}}var LE=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 RT(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 TE();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 LE.has(d)?RT(d):Reflect.get(l,d,c)},has(l,d){return LE.has(d)?!1:Reflect.has(l,d)}})}function gT(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=gT(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 yT="A-Za-z",mT="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",bu=`${yT}${mT}`,DE=`${bu}0-9_`,hT=new RegExp(`^[${bu}]$`,"u"),AT=new RegExp(`^[${DE}]$`,"u"),ST=new RegExp(`^[${bu}][${DE}]{0,63}$`,"u");function TT(e){return hT.test(e)}function IT(e){return AT.test(e)}function Pu(e){let t=e.normalize("NFC").toUpperCase();if(!ST.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 wT(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 bT(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,!TT(e[l]??""))return null;for(l++;l<e.length&&IT(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&&wT(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=bT(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function _E(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function vE(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 y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.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 y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,y);l.set(m,S),s.add(S)}let d=new Map,c=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let S of m){let A=_E(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,y,m,S)=>{if(!g&&y===m)return;let A=f;u.push(g),f+=g.length,p.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:m,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:d.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let I=`logical:${g.logicalName}@${y}`,w=d.get(I);w===void 0&&(w=_E(s),d.set(I,w)),m={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:y}}c.set(m.mappedAppId,m),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)}${m.mappedAppId}${S}`:`APP${m.mappedAppId}${S}`;R(A,g.start,g.fullEnd,m.mappedAppId),E=g.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:p}}var UE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),kE=new Set([...UE,"onLimitReached"]),PT=new Set([...kE,"variables","tempTableMaxRows"]);function ME(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 FE(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 NT(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 xE(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 KE(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){ME(e);let n=t==="run"?kE:UE;FE(e.client);let r=KE(e,n,t==="run"?"runQuery":"explainQuery"),i=xE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function BE(e){ME(e),FE(e.client),e.variables!==void 0&&NT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=KE(e,PT,"runBatch"),n=xE(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 CT(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 (${CT(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=vE(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 OT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function LT(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=yf(e);return{type:"query",rows:e.rows.map(OT),columns:e.columns.map(r=>LT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ca(t)}}function GE(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parse();return We(r),r}function $E(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 VE(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 _T(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return GE(e,{import:!0})}catch(t){let n=VE(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 WE(e){if(Oi(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function HE(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return $E(e,{import:!0})}catch(t){throw VE(t)}}function DT(e){let t=WE(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(!Ku(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function YE(e){let t=WE(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 jE(e){let t=_T(e);return DT(t),t}function zE(e){let t=HE(e);return t.forEach(YE),t}function qE(e){let t=e.trim(),n=HE(t);n.forEach(YE);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 vT(e){let t=e.error,n=t?.cause!==void 0?pn(t.cause):new he("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Tu(n,e.index,e.type)}async function XE(e,t){let n=[],r=[];try{let i=BE(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=zE(o.sql);let a=await Qn(o.client,c=>bf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw vT(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 JE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function QE(e,t){let n=[];try{let r=Cu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=jE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await Qn(i.client,l=>Wl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return JE(s),Oa(s)}catch(r){throw Ii(pn(r),n)}}async function ZE(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=>Wl(a.legacySql,Jn(f),i.executeOptions));JE(c);let u=wi(c.rows.map(f=>String(f.plan??"")),r),p=hu(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=>yE(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=hu(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 UT="3.49.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});
13
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function lS(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${sS}`)}async function uS(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=Bs(e.where,{fieldTypes:s,fieldOptions:l});lS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(lo(e,r));for(let E of cS(e.where))u.add(E);let p=await pS(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 cS(e){return ql(e)}async function pS(e,t,n,r,i){let s=[...dS(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await cu(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 dS(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 fS(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=_s(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 ES(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ze(n,e.assignments.map(d=>d.field)).payloadFields,...Nr],s=Lr(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:si(s.branches[0]),guards:li(s.branches[0]),deletedRows:{total:t.plans.reduce((d,c)=>d+c.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return cn.set(l,ha(a,n,e.appId)),l}function RS(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Ze(n,e.fields).payloadFields,...Nr],l=Ds(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,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return cn.set(f,ha([...s],n,e.appId)),f}function si(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:rn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:rn(t,"ADD"),removedValues:rn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function li(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var ht=100,me=500;function Ge(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function ha(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Z({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ot(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function gS(e,t,n,r,i,o){let a=await tE(e,t,n,r,i,o),s=await we(e.appId,n,i),l=cs(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 yS(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 mS(e,t,n,r){if(await $n(e,t,r),gt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return TS(e,t,n,r);let i=lp(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=up(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function hS(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return BA(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=oE(e),c=await Ei(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((g,y)=>{let m=p[y];m.type==="CASE_VALUE"?E[g]={value:Ut(m.expr,{},l.get(g))}:E[g]={value:pt(m,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 oE(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 gu(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 AS(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=pf(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:pf(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(aE(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 SS(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 gu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=yu(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(y=>{let m=y.id??"";if(!m)return y;let S=f.get(m);return S?{id:m,value:S}:{id:m}});await t.putRecords(IS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function TS(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 gu(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=yu(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),y=R.filter((m,S)=>!g.has(S));await t.putRecords(aE(e.appId,p,yi(E),i,y))}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 yu(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}`]=Kl(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 aE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function IS(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function wS(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 pf(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 Kl(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 bS(e,t,n,r){let i=[];Rt(e.where,i);let o=await gu(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=yu(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((m,S)=>({row:m,i:S,flat:PS(E,e.subtableCode,m,S)}));g.sort((m,S)=>NS(m.flat,S.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(wS(e.appId,f,yi(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function PS(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}`]=Kl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Kl(a?.value);return i}function NS(e,t,n,r){for(let i of n){let o=df(i.key,e),a=df(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 df(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 mu(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 Eu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(rE(s),d.length!==e.fields.length){let y=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let c=[],u=[],p=await we(e.appId,t,r),f=l.map((y,m)=>{let S={};return e.fields.forEach((A,I)=>{if(s.importPresence&&!s.importPresence[m]?.has(A))return;let w=y[d[I]]??"";S[A]={value:Qf(w,p.get(A))}}),S});f.forEach(y=>ln([y],e.fields.filter(m=>m in y),o,a));let E=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(da.has(e)){let y=e.keyFields.map(S=>p.get(S)==="NUMBER"),m=new Set;for(let S of E){let A=sn(S,y);if(m.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");m.add(A)}}let R=await Ei(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,m)=>{let S=fi(R,E[m]);S!==void 0?u.push({id:S,record:y}):c.push(y)}),n.confirm&&c.length+u.length>0){let y=c.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new ce("UPDATE",y)}let g=[];for(let y=0;y<c.length;y+=100){let m=await t.postRecords({app:e.appId,records:c.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var CS=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),OS=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function sE(e){let t=await e.getApps(),n=[...CS],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 lE(e,t,n){let r=await te(e.appId,t,n),i=[...OS],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 LS(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 uE(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 cE(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 pE(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 dE=new WeakMap,Bl=new WeakMap,fE=new WeakMap,EE=new WeakMap;async function RE(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(y=>y.source===g||JSON.stringify(y.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 y=g;if(y.type==="SELECT"){let m=g;await fa(m,l,n);let S=[m.from,...m.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(re(m).type==="PLAIN"&&!S){let U=await Zl(m,l,n);U&&u.set(m,U)}let A=[m.from,...m.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(nt(m.where)||m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&A.forEach(U=>o.add(U));let{resolver:w,rewrites:C}=await tn(m,l,n);C.length>0&&Bl.set(m,C);let b=ge(m.where,w),D=E(m);if(b.capability==="UNSUPPORTED"&&!D)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(b)}).`);d.set(m,b);let _=nu.get(m)??Ea(m,await Ra(m,l,n));if(_&&dE.set(m,_),m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await oi(m,l,n);if(m.orderMode!=="KINTONE_NATIVE")for(let L of U.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(ia(m)&&!S&&D?.allowed!==!1){let L=b.capability==="EXACT_PUSHDOWN"?Ue(m):"FULL_SCAN";c.set(m,(m.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:m,staticMode:L,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:fe(m.where)}))}}}else if(y.type==="VALIDATE"){let m=g;o.add(m.appId);let S=await te(m.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=Ns(m,S),C=_n(m.checkGroups??[]),b=ql(m.where);for(let h of C){if(h.field!=="$id"&&!A.has(h.field)&&!I.has(h.field))throw Re(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u306F APP${m.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${m.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(m,D);let N=ge(m.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=m.where===null?null:N.capability==="EXACT_PUSHDOWN"?m.where:bn(m.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:U,allowKlike:!1}),v=w.some(h=>h.field.fieldType==="NUMBER");v&&(s.add(m.appId),await st(m.appId,l,n)),fE.set(m,{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(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(g.appId),y.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=Bs(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))]]:[]))});EE.set(S,w)}}let m=g;(m.type!=="UPDATE"||!ua(m))&&E(m)?.allowed!==!1&&await $n(m,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&bt(e)){let g=Pt(e),{resolver:y,rewrites:m}=await tn(g,l,n);m.length>0&&Bl.set(g,m);let S=ge(g.where,y),A=E(g);if(S.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(S)}).`);if(d.set(g,S),ia(g)&&A?.allowed!==!1){let I=await oi(g,l,n);c.set(g,(g.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:g,staticMode:S.capability==="EXACT_PUSHDOWN"?Ue(g):"FULL_SCAN",whereCapability:S.capability,whereReasons:S.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:fe(g.where)}))}}return{capabilities:d,orderPlans:c,plainGroupByPlans:u,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Gl(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 _S(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 ff(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)} ${_S(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 $l(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?DS(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=hl(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ml(d)}: ${d}`,` ${Al(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=hl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=ff(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${ml(l)}: ${l}`,` ${Al(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)",` ${Ef(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=hl(s),d=s.left.type==="FIELD"?s.left.field:void 0,c=ff(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${ml(l)}: ${l}`,` ${Al(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)}`,` ${Ef(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 DS(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 ml(e){return J(e)?"relative date function":"kintone function"}function hl(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 Al(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function Ef(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var gE=Symbol("ksql.explainFetchPlan");function hu(e){return e[gE]}function yE(e,t){e[gE]=t}async function mE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=me){let d=Vl(r);try{let c=Xl(e,a),u=Qa(c),p=vs(c,n),f=Pf(c,p),E=new Map,R=[],g=[];for(let m=0;m<c.length;m++){let S=c[m],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 RE(A,t,d,i,I),C={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?$l(I):[...$l(I),...hE(vS(A,u.statements[m],w.capabilities,w.orderPlans,s,l,C),o)],D=Gl(w);R.push({index:m,type:u.statements[m].statementType,plan:b.length===0?D:[b[0],...D,...b.slice(1)]}),g.push({index:m,fetch:Au(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 y={statementCount:c.length,statements:R};return yE(y,{statements:g}),y}finally{uu(d)}}function vS(e,t,n,r,i=100,o=me,a={sources:[]}){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Ke} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Jr(e.query,t,n,r,a,"main").map(s=>` ${s}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let s=ca(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Jr(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Jr(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],l=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return l.forEach((d,c)=>{s.push(l.length>1?` subquery[${c+1}]:`:" subquery:");let u=ca(d.query)?t:{...t,tempTablesReferenced:[]};s.push(...Jr(d.query,u,n,r,a).map(p=>` ${p}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Sa(e,void 0,n,r,i,o):Jr(e,t,n,r,a)}function ca(e){if(Array.isArray(e))return e.some(ca);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(ca)}return!1}function Jr(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return Sa(e,void 0,n,r,100,me,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&a.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}async function US(e,t,n,r,i,o=100,a=me,s){let l=s??await pi(e.query,t,n),d=await RE(e.query,t,n,r,l),c={sources:[]},u=$l(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Gl(d),...u]:[...Gl(d),...u,...hE(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 yE(E,{statements:[{index:0,fetch:Au(c.sources),sources:c.sources}]}),E}function hE(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Sa(e,t,n,r,i=100,o=me,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=KS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="WITH"){let f=BS(e,n,r,s,u);return l?na(f,u.sources):f}if(e.type==="INSERT")return VS(e,t,i,o);if(e.type==="INSERT_SELECT")return WS(e,t,n,r,s);if(e.type==="UPSERT")return zS(e,t,i,o);if(e.type==="UPSERT_SELECT")return qS(e,t,n,r,s);if(e.type==="UPDATE")return HS(e,t,n,r,i,o,a);if(e.type==="DELETE")return jS(e,t);if(e.type==="REORDER")return XS(e,t);if(e.type==="VALIDATE")return FS(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 Rf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Au(e){return e.reduce((t,n)=>Rf[t]>=Rf[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: ${Au(t).toUpperCase()}`,...n]}function kS(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:kS(o)};return e.sources.push(s),s}function MS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Xo(e){return` fetch: ${MS(e)}`}function FS(e,t){let n=fE.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?zl:jl).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 xS(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&&Wf(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=GS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=Bp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Bl.get(e)??Of.get(e)??[])R.push(xS(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 y=re(e);if(y.type==="PLAIN"){let I=y.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(AE).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 m=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,S=At(m);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"?xf(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=c?.kind==="KORDER_CURSOR"?Gs(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=dE.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(...$S(e,n,r,i,s)),R}function KS(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 BS(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)a.query.type==="SELECT"&&(o.push(...ze(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...Sa(e.query,"[main]",t,n,100,me,1e4,r,!1,i)),bt(e)){o.push("");let a=Pt(e);o.push(...ze(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function GS(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 $S(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 VS(e,t,n=ht,r=me){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Su(Ao(e,n,r))]:a}function WS(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 HS(e,t,n,r,i=100,o=me,a=1e4){if(e.applyBlocks?.length)return YS(e,t,i,o,a);let s=ip(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=JS(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${ZS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ze(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function YS(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=EE.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",...Su(o)]}function jS(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 zS(e,t,n=ht,r=me){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Su(Ao(e,n,r))]:a}function Su(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 qS(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 XS(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(AE).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 AE(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 JS(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 SE(e,t,n,r,i){let o=fu(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 Re(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Re(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else throw Re(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw Re(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw Re(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...c],evaluationTypes:u}}function QS(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 ZS(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${TE(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 TE(e){return`${gf(e.left)} ${e.op} ${gf(e.right)}`}function gf(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"?`(${TE(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 he=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 Tu(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 he("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new he("PARSE_ERROR",e,t)}function IE(){let e=new on;return new he("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 eT(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 he?e:e instanceof Te||e instanceof T?new he("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new he("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new he("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new he("CLIENT_ERROR",e.message,e.cause):eT(e)?new he("CLIENT_ERROR",mi(e),e):new he("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 Tu(n,e.statementIndex,r.type)}return n}var tT=2,Ia=5,nT=3e4,rT=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??tT;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??nT,this.quarantineMs=n.quarantineMs??rT}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 iT(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function oT(e,t=r=>new Promise(i=>setTimeout(i,r)),n=iT){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 aT(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 wE(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 aT(oT(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function bE(e){return PE(e,lT(e))}function PE(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=uT(o.options),s=cT(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)&&!sT.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...PE(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var sT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function lT(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 uT(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 cT(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function NE(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 pT="Filter aborted because of too many search results";function CE(e){return e?.includes(pT)===!0}var OE="/k/v1/records.json",Pa="/k/v1/records/cursor.json",dT=4096,fT=2,Iu=e=>kintone.api.url(e,!0);function ET(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(OE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=dT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Iu(OE),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function hi(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
14
+ `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function RT(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 gT(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(Iu(e),t,n)}catch(r){throw hi(r)}}function yT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function LE(e={}){let t=e.cursorMaxActive??fT;yT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=ET(a),l=await fetch(s.url,s.init);if(!l.ok)throw await RT(l);let d=await l.json();return CE(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw hi(s)}},async openCursor(a){let s=Iu(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??=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=wE(Number(c.totalCount),{get:()=>dn(Pa,"GET",{id:u}),delete:()=>dn(Pa,"DELETE",{id:u}),isAlreadyReleasedError:gT,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 bE(s.properties)},async getNumberPrecision(a){let s=await dn("/k/v1/app/settings.json","GET",{app:a});return Ip(s)},async getProcessStatuses(a){let s=await dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:NE(s.states)}}}}var _E=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 mT(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 IE();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 _E.has(d)?mT(d):Reflect.get(l,d,c)},has(l,d){return _E.has(d)?!1:Reflect.has(l,d)}})}function hT(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=hT(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 AT="A-Za-z",ST="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",bu=`${AT}${ST}`,vE=`${bu}0-9_`,TT=new RegExp(`^[${bu}]$`,"u"),IT=new RegExp(`^[${vE}]$`,"u"),wT=new RegExp(`^[${bu}][${vE}]{0,63}$`,"u");function bT(e){return TT.test(e)}function PT(e){return IT.test(e)}function Pu(e){let t=e.normalize("NFC").toUpperCase();if(!wT.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 NT(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 CT(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,!bT(e[l]??""))return null;for(l++;l<e.length&&PT(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&&NT(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]!==`
15
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=CT(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function DE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function UE(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 y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.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 y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,y);l.set(m,S),s.add(S)}let d=new Map,c=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let S of m){let A=DE(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,y,m,S)=>{if(!g&&y===m)return;let A=f;u.push(g),f+=g.length,p.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:m,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:d.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let I=`logical:${g.logicalName}@${y}`,w=d.get(I);w===void 0&&(w=DE(s),d.set(I,w)),m={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:y}}c.set(m.mappedAppId,m),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)}${m.mappedAppId}${S}`:`APP${m.mappedAppId}${S}`;R(A,g.start,g.fullEnd,m.mappedAppId),E=g.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:p}}var kE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),ME=new Set([...kE,"onLimitReached"]),OT=new Set([...ME,"variables","tempTableMaxRows"]);function FE(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 xE(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 LT(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 KE(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 BE(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){FE(e);let n=t==="run"?ME:kE;xE(e.client);let r=BE(e,n,t==="run"?"runQuery":"explainQuery"),i=KE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function GE(e){FE(e),xE(e.client),e.variables!==void 0&&LT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=BE(e,OT,"runBatch"),n=KE(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 _T(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 (${_T(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=UE(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 DT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function vT(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=yf(e);return{type:"query",rows:e.rows.map(DT),columns:e.columns.map(r=>vT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ca(t)}}function $E(e,t={}){let n=new Ot(e).tokenize(),r=new Lt(n,t).parse();return We(r),r}function VE(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 WE(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 UT(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return $E(e,{import:!0})}catch(t){let n=WE(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 HE(e){if(Oi(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function YE(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return VE(e,{import:!0})}catch(t){throw WE(t)}}function kT(e){let t=HE(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(!Ku(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function jE(e){let t=HE(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 zE(e){let t=UT(e);return kT(t),t}function qE(e){let t=YE(e);return t.forEach(jE),t}function XE(e){let t=e.trim(),n=YE(t);n.forEach(jE);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 MT(e){let t=e.error,n=t?.cause!==void 0?pn(t.cause):new he("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Tu(n,e.index,e.type)}async function JE(e,t){let n=[],r=[];try{let i=GE(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=qE(o.sql);let a=await Qn(o.client,c=>bf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw MT(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 ZE(e,t){let n=[];try{let r=Cu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=zE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await Qn(i.client,l=>Wl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return QE(s),Oa(s)}catch(r){throw Ii(pn(r),n)}}async function eR(e,t){let n=[],r=[];try{let i=Cu(t,"explain"),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings;let a=XE(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await Qn(o.client,f=>Wl(a.legacySql,Jn(f),i.executeOptions));QE(c);let u=wi(c.rows.map(f=>String(f.plan??"")),r),p=hu(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
16
+ `),plan:p,metrics:Ca(c.metrics)}}let s=await Qn(o.client,c=>mE(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=hu(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
+ `),plan:d,metrics:Ca()}}catch(i){throw Ii(Ta(i,n),r)}}var FT="3.50.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});