@rex0220/kintone-sql-tools 3.36.0 → 3.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,15 @@
1
- "use strict";var da=Object.defineProperty;var dE=Object.getOwnPropertyDescriptor;var fE=Object.getOwnPropertyNames;var EE=Object.prototype.hasOwnProperty;var RE=(e,t)=>{for(var n in t)da(e,n,{get:t[n],enumerable:!0})},mE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of fE(t))!EE.call(e,i)&&i!==n&&da(e,i,{get:()=>t[i],enumerable:!(r=dE(t,i))||r.enumerable});return e};var yE=e=>mE(da({},"__esModule",{value:!0}),e);var OS={};RE(OS,{KsqlEngineError:()=>Ee,createReadonlyKintoneClient:()=>Hf,explainQuery:()=>pE,runBatch:()=>lE,runQuery:()=>cE,version:()=>CS});module.exports=yE(OS);async function Ie(e,t,n,r,i={}){let o=i.pageSize??hE,a=Math.max(1,i.parallel??gE),s=i.maxRecords??AE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,h=0,m=su(n,R),y=await au(e,t,m,c,o,h);if(ou(y,i),u.push(...y.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(y.records.length<o)return u;for(h+=o,h>=fa&&(R=lu(y.records),h=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}let g=p-u.length,S=Math.ceil(g/o),P=Math.max(1,Math.min(a,S)),b=[];for(let w=0;w<P;w++){let D=h+w*o;if(D>=fa)break;b.push(D)}let L=su(n,R),I=await Promise.all(b.map(w=>au(e,t,L,c,o,w)));for(let w of I)ou(w,i);let v=!1;for(let w of I){if(u.push(...w.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(w.records.length<o){v=!0;break}}if(v)break;if(h+=o*b.length,h>=fa){let w=I[I.length-1];R=lu(w.records),h=0}}return u}function ou(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 hE=500,gE=1,AE=1e4,fa=1e4;async function au(e,t,n,r,i,o){let a=SE(n,i,o);return e({app:t,query:a,fields:r})}function su(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 SE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function lu(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 TE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function IE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=TE.exec(e.trim());if(t===null)return null;let n=IE(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 wE(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 cu(e){let t=Le(e);return t===null?null:wE(t)}function bE(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 di(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=bE(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function fi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return di(n,r)}var qe="__NO_FROM__";function Re(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return cu(t)??t}function pu(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 PE(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=PE(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 du(e){return ne(e).type!=="NONE"}function fu(e,t){let n=ne(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function mi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Mt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function NE(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 Ea(e){return Mt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!Ea(e)&&(NE(e.type)||Mt(e.type))}function Eu(e){return dn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Ru=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function me(e,t){for(let n of t)e.add(n)}function Ei(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"&&Ru.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=>Ei(i,t)):Ei(r,t))}function Ri(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"&&!Ru.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=>Ri(i,t)):Ri(r,t))}function gt(e){let t=new Set;if(Mt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":me(t,pn(e));break;case"UNION":me(t,yu(e));break;case"WITH":for(let n of e.ctes)me(t,gt(n.query));me(t,gt(e.query));break;case"CREATE_TEMP_TABLE":me(t,gt(e.query));break;default:break}return Ei(e)&&t.add("STATISTICAL_AGGREGATE"),Ri(e)&&t.add("AGGREGATE"),t}function mu(e){return gt(e).size>0}function yu(e){let t=e.left.type==="SELECT"?pn(e.left):yu(e.left);return me(t,pn(e.right)),e.all||t.add("DISTINCT"),t}function pn(e){let t=new Set,n=ne(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.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&me(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)me(t,cn(i.condition));return me(t,cn(e.where)),me(t,cn(e.having)),Ei(e)&&t.add("STATISTICAL_AGGREGATE"),Ri(e)&&t.add("AGGREGATE"),t}function cn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&me(t,pn(e.right.query));break;case"LOGICAL":me(t,cn(e.left)),me(t,cn(e.right));break;case"NOT":case"GROUP":me(t,cn(e.expr));break;case"EXISTS":me(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function hu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function gu(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 yi=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"]),qn=new Set([...kt,...yi]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return yi.has(e)}function fn(e){return kt.has(e)}function Be(e){return qn.has(e)}var CE=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})}),ya=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),zn="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${zn} scope does not support ${e}`)}function OE(e,t){let n=zn;zn=e;try{return t()}finally{zn=n}}function LE(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function mn(e,t){return OE(e,()=>_E(t,CE[e]))}function _E(e,t){let n=LE(e);if(n===null)return;if(n.type==="UPSERT"){vE(n,t);return}let r=n.applyBlocks;if(Ra(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){UE(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"),ME(i.where,t.multipleParents),Su(r,t)}function Su(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Tu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)hi(i,"APPEND targets");Rn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Au(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.assignments.length===0&&W("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&W("parent or qualified PATCH targets in this phase")}Rn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Au(r.selector.where,t.idxSelectors)}}}}function Tu(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 DE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Iu(e,t){if(Tu(e),e.targetKind==="MULTI_VALUE"){if(!DE.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 Ra(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${zn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function vE(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??[];Ra(n),Ra(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),wu(n,"UPSERT ON INSERT"),Su(r,{...t,idxSelectors:!1,expectRows:!1})}function wu(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)hi(i,"APPEND targets");Rn(r.values,"APPEND values")}}function UE(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"),wu(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function gi(e,t){let n=ya[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ha(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${En(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${En(e)} execution does not support multiple-parent APPLY`)}function ha(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 bu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!ya[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!ya[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function ME(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&W("a parent $id that is not a positive safe integer in this phase"),t||W("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),ma(e,t))}function ma(e,t){if(Array.isArray(e)){for(let o of e)ma(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&W("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&W("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&W("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&W("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&J(n.name))&&W("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))ma(o,t)}function Au(e,t){Rn(e,"child row selectors",t)}function Rn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Rn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&W(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&W(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&W(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&J(r.name))&&W(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&W(`qualified or parent field references in ${t}`),hi(l,t,n)}if(i==="FIELD_REF"&&hi(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function hi(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&W(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&W(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&W(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=kE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function kE(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 Pu(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ce(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return ce(e.left)||ce(e.right);case"NOT":case"GROUP":return ce(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return FE(e);case"NULL_CHECK":return KE(e);case"LOGICAL":return BE(e);case"NOT":return $E(e);case"GROUP":return GE(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 FE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Cu(e.left),n=xE(e.op),r=VE(e.right,e.op);return`${t} ${n} ${r}`}function xE(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 KE(e){let t=Cu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function BE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=Nu(e.left)?`(${t})`:t,o=Nu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function $E(e){return G(Jn(e.expr))}function GE(e){return`(${G(e.expr)})`}function Cu(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return XE(e.field)}function VE(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 Ou(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Lu(e);case"IN_LIST":return zE(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 Ou(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Lu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return WE(e)}function WE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!jE(e.args.offset,e.args.offsetText)||!HE.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!YE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!qE(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var HE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),YE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function jE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function qE(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function zE(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 JE(e.values),`(${e.values.map(r=>r.type==="STRING"?Ou(r):r.type==="NUMBER"?H(r):Lu(r)).join(",")})`}function JE(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 XE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Nu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ai(e){return`'${e.replace(/'/g,"''")}'`}function hn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return H(e);if(e.type==="STRING_FUNC")return Aa(e);let n=`${hn(e.left)}${e.op}${hn(e.right)}`;return t?n:`(${n})`}function _u(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Aa(e.expr);if(e.type==="ARITH_FIELD")return hn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ga(e.expr)}function vu(e){switch(e.type){case"STRING":return Ai(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=>Ai(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(vu).join(",")})`;case"ARITH_VALUE":return hn(e.expr);case"CASE_VALUE":return ga(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${_u(e.left)} ${e.op.replace("_"," ")} ${vu(e.right)}`;case"NULL_CHECK":return`${_u(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Du(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ai(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?hn(e):xt(e)}function ga(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Du(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Du(e.elseResult)}`;return`CASE ${t}${n} END`}function QE(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function Aa(e){return`${e.func}(${e.args.map(QE).join(",")})`}function xt(e){switch(e.type){case"STRING":return Ai(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 Aa(e);case"CASE_WHEN":return ga(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function ZE(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?hn(e,!0):xt(e)}function we(e,t,n){let r=ZE(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function eR(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||eR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&xu(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Uu(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return Uu(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Uu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Si(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(tR).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:nR(e.columns),totalCount:!1}}function Fu(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=Bu(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 tR(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 nR(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(Ta(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?Ia(r.expr,n):r.type==="SCALAR_VALUE_COL"&&gn(r.expr,n);return[...new Set(n)]}function rR(e,t){tr(e.left,t),tr(e.right,t)}function tr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Ta(e.field)):e.type==="ARITH"?rR(e,t):e.type==="STRING_FUNC"&&Ia(e,t)}function Ta(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ia(e,t){for(let n of e.args)iR(n,t)}function iR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Sa(e,t);return}gn(e,t)}function gn(e,t){if(e.type==="FIELD"){t.push(Ta(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ia(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){gn(e.left,t),gn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Mu(n.result,t);e.elseResult&&Mu(e.elseResult,t)}}function Mu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}gn(e,t)}}function Sa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&oR(e.arg,t);return}e.type==="AGG_ARITH"&&(Sa(e.left,t),Sa(e.right,t))}function oR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):gn(e,t)}function xu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?xu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>ku(t.result))||e.elseResult!==null&&ku(e.elseResult):!1}function ku(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Ku(e,t){let n=new Set,r=Bu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Bu(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let p=aR(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},u=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&x.fields.add(O);return}return void 0}C&&x.fields.add(C)}},R=(A,C="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){u();return}if(F==="_p"){f();return}let j=d.get(F);if(j){c(j);return}return}if(C==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&E(F,x.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&sR(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),j=A.slice(O+1);if(F==="_p"){l&&E(l,`_p.${j}`);return}let z=d.get(F);if(z){E(z,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},h=(A,C,x="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let O=d.get(C);if(O){E(O,A);return}if(n)return}R(A,x)},m=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){m(A.left,C),m(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},y=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&b(A.arg,C);return}A.type==="AGG_ARITH"&&(y(A.left,C),y(A.right,C))},g=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,C);return}P(A,C)},S=(A,C="select")=>{for(let x of A.args)g(x,C)},P=(A,C="select")=>{if(A.type==="FIELD"){h(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){P(A.left,C),P(A.right,C);return}A.type==="CASE_WHEN"&&I(A,C)},b=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)}},I=(A,C="select")=>{for(let x of A.branches)D(x.condition,C),L(x.result,C);A.elseResult&&L(A.elseResult,C)},v=(A,C="select")=>{if(A.type==="FIELD"){h(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){m(A.expr,C);return}A.type!=="GROUPING_FIELD"&&I(A.expr,C)},w=(A,C="select")=>{if(A.type==="ARITH_VALUE"){m(A.expr,C);return}if(A.type==="CASE_VALUE"){I(A.expr,C);return}},D=(A,C="where")=>{if(A)switch(A.type){case"BINARY":v(A.left,C),w(A.right,C);return;case"NULL_CHECK":v(A.field,C);return;case"LOGICAL":D(A.left,C),D(A.right,C);return;case"NOT":case"GROUP":D(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},k=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){m(A.expr,"groupBy");return}S(A.expr,"groupBy")},N=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){m(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&b(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":m(A.expr,"select");break;case"CASE_COL":I(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":P(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)h(C.field,C.tableAlias,"select");for(let C of A.orderBy)N(C.key,"select");break}for(let A of e.joins)h(A.on.left.field,A.on.left.tableAlias,"where"),h(A.on.right.field,A.on.right.tableAlias,"where");D(e.where,"where");let _=ne(e);if(_.type==="PLAIN")_.allItems.forEach((A,C)=>k(A,t?.items[C]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)h(A.field,A.tableAlias,"select");D(e.having,"having");for(let A of e.orderBy)N(A.key);return a}function aR(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(we(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function sR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||du(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=Ti(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 Ti(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:$u(e.left,t)};case"NULL_CHECK":return{...e,field:$u(e.field,t)};case"LOGICAL":return{...e,left:Ti(e.left,t),right:Ti(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Ti(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function $u(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>lR(n,t))}function ir(e,t={}){return rr(e,n=>Gu(n,t)||Vu(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function lR(e,t){return uR(e,t)||dR(e,t)?!0:Gu(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":pR(e,t)}function uR(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 cR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function pR(e,t){if(!Vu(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||!cR.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 dR(e,t){return!fR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function fR(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 Gu(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 Vu(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 or(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())Sn(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function ba(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Ii(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=ue(t.where);if(l.length===0||!mR(l,a)||o===null||!Wu(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:RR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return ER(p,e,l),p}function ER(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(!Wu(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ue(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function RR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function mR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Wu(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Hu(e){Yu(e)}function Na(e){if(ba(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Yu(e){switch(e.type){case"SELECT":In(e);return;case"UNION":Oa(e);return;case"WITH":ju(e);return;case"EXPLAIN":Yu(e.query);return;case"CREATE_TEMP_TABLE":Ca(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&ce(e.where)){Pa(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&ce(e.where)&&!gR(e,e.where)){Pa(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&ce(e.where)){Pa(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Pa(e){bi(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Ca(e){e.type==="SELECT"?In(e):e.type==="UNION"?Oa(e):ju(e)}function Oa(e){Ca(e.left),In(e.right)}function ju(e){if(It(e)){In(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&Oa(t.query);Ca(e.query)}function In(e){if(hR(e),ce(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(ba(n).length===0){Bt(e);return}if(yR(e)){Bt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function yR(e){return e.where!==null&&ue(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function hR(e){bi(e,t=>{if(!St(t))return;if(!wi(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Pi(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Pi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function gR(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function wi(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return wi(e.left,t)||wi(e.right,t);case"NOT":case"GROUP":return wi(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function bi(e,t){if(Array.isArray(e)){for(let r of e)bi(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&&AR(r)||bi(r,t)}function Pi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Pi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Pi(i,t)}function AR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ar=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 qu(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(SR(t))throw new ar;return;default:return}}function SR(e){let t=!1;return Ni(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||TR(n.where)&&(t=!0)}),t}function TR(e){let t=!1;return Ni(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Ni(e,t){if(Array.isArray(e)){for(let r of e)Ni(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Ni(r,t)}function $e(e){qu(e),Hu(e)}var zu=Symbol("ksql.groupingRowMeta"),Ju=new WeakMap;function Xu(e,t){return Object.defineProperty(e,zu,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function IR(e){return e[zu]}function wR(e){return IR(e)?.includedCanonicalIds}function Qu(e,t){Ju.set(e,t)}function wn(e,t){let n=wR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Ju.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ec=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Li(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function _a(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function _i(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>_i(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=>_i(r,t))}}function sr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>sr(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(_a(n.field));return}Object.values(n).forEach(i=>sr(i,t))}}function lr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(lr);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(lr)}function bR(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"?lr(e):!1}function PR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Zu(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 NR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Li(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Li(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Qu(e,r.canonicalId)}function La(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Li(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function CR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[_a(e.name)];let t=[];return sr(e,t),t}function Da(e){let t=ne(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),_i(e.columns,r),_i(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 tc(e,t,n=()=>{}){Da(e);let r=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&De(p,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=fu(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${Li(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let p of i)NR(p,t,a);let l=PR(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(_a(p.field)):sr(p,c);for(let u of c)La(u,t,a,"SELECT")}if(e.having){let p=[];sr(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||Zu(c)||La(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of CR(p.key))c.tableAlias===null&&l.has(c.field)||Zu(c)||La(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!bR(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Di=16,nc=64,Z=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ur(e,t,n){if(Array.isArray(e)){for(let r of e)ur(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))ur(a,t,n)}}function va(e,t){if(Array.isArray(e)){for(let n of e)va(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))va(i,t)}}function Ua(e){if(Array.isArray(e)){for(let t of e)Ua(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Da(e);for(let n of Object.values(t))Ua(n)}}function Ma(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{Ua(c)}catch(f){throw f instanceof Error?new Z(f.message,u):f}try{mn("phase15b",c),$e(c)}catch(f){throw f instanceof oe||f instanceof ar?new Z(f.message,u):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Z(f.message,u):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let u=c==="SET_VARIABLE"?"SET":"DECLARE";throw new Z(`ArgumentError: ${u} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let u=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Z(`ArgumentError: ${u} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,u)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let L=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Z(L,u)}let E=mi(c),R=[],h=[],m=new Set,y=new Set,g=new Set,S=[];va(c,S);let P=new Set;for(let L of S){let I=o.get(L.name);if(I===void 0)throw new Z(`ParseError: variable @${L.name} is not defined before statement ${u+1}.`,u);if(I.kind==="scalar"&&L.kind==="array-in-list")throw new Z(`ParseError: scalar variable @${L.name} cannot be used as IN @${L.name}; use IN (@${L.name}) instead.`,u);if(I.kind==="array"&&L.kind!=="array-in-list")throw new Z(`ParseError: array variable @${L.name} can only be used as IN @${L.name}.`,u);P.has(L.name)||(I.referencedBy.push(u),P.add(L.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new Z(`ParseError: variable @${c.name} is already defined.`,u);if(o.set(c.name,{index:u,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>nc)throw new Z(`ParseError: batch exceeds ${nc} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?ur(c.query,m,y):c.type==="DROP_TEMP_TABLE"||ur(c,m,y);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let L=new Set,I=new Set;ur(c.select,L,I),b=L.size>0&&I.size===0}for(let L of m){let I=t.get(L);if(I===void 0)throw new Z(`ParseError: temp table ${L} is not defined in this batch.`,u);g.add(I)}if(f){let L=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(w=>w.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(w=>w.field)]:"fields"in c?c.fields:[],I=JSON.stringify(L),v=t.get(f);if(v===void 0){if(t.set(f,u),n.set(f,I),r.push(f),R.push(f),t.size>Di)throw new Z(`ParseError: batch exceeds ${Di} temp tables.`,u)}else{if(n.get(f)!==I)throw new Z(`ParseError: validation error table ${f} has a different payload schema.`,u);g.add(v)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new Z(`ParseError: temp table ${c.name} is already defined.`,u);if(t.set(c.name,u),r.push(c.name),R.push(c.name),t.size>Di)throw new Z(`ParseError: batch exceeds ${Di} temp tables.`,u)}if(c.type==="DROP_TEMP_TABLE"){let L=t.get(c.name);if(L===void 0)throw new Z(`ParseError: temp table ${c.name} is not defined in this batch.`,u);g.add(L),h.push(c.name),t.delete(c.name)}i.push({index:u,statementType:E,isDml:Ea(c),isReadOnly:dn(c),hasWhere:hu(c),insertValuesCount:gu(c),appIds:[...y].sort((L,I)=>L-I),tempTablesCreated:R,tempTablesReferenced:[...m],tempTablesDropped:h,dependsOn:[...g].sort((L,I)=>L-I),tempOnlySource:b,targetAppId:Mt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:mu(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var vi=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 ye=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Pt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ka(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ye(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ye("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ye("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!bn(this.input[this.pos]))throw new ye("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&rc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=vi.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(!ka(n))throw new ye("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&rc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ye(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ye("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ye("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";var Ea=Object.defineProperty;var TE=Object.getOwnPropertyDescriptor;var IE=Object.getOwnPropertyNames;var wE=Object.prototype.hasOwnProperty;var bE=(e,t)=>{for(var n in t)Ea(e,n,{get:t[n],enumerable:!0})},PE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of IE(t))!wE.call(e,i)&&i!==n&&Ea(e,i,{get:()=>t[i],enumerable:!(r=TE(t,i))||r.enumerable});return e};var NE=e=>PE(Ea({},"__esModule",{value:!0}),e);var qS={};bE(qS,{KsqlEngineError:()=>Ee,createReadonlyKintoneClient:()=>Xf,explainQuery:()=>SE,runBatch:()=>gE,runQuery:()=>AE,version:()=>zS});module.exports=NE(qS);async function Ie(e,t,n,r,i={}){let o=i.pageSize??CE,a=Math.max(1,i.parallel??OE),s=i.maxRecords??LE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=fu(n,R),g=await du(e,t,y,c,o,m);if(pu(g,i),u.push(...g.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(g.records.length<o)return u;for(m+=o,m>=Ra&&(R=Eu(g.records),m=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}let h=p-u.length,S=Math.ceil(h/o),w=Math.max(1,Math.min(a,S)),I=[];for(let P=0;P<w;P++){let D=m+P*o;if(D>=Ra)break;I.push(D)}let L=fu(n,R),b=await Promise.all(I.map(P=>du(e,t,L,c,o,P)));for(let P of b)pu(P,i);let v=!1;for(let P of b){if(u.push(...P.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(P.records.length<o){v=!0;break}}if(v)break;if(m+=o*I.length,m>=Ra){let P=b[b.length-1];R=Eu(P.records),m=0}}return u}function pu(e,t){e.searchAborted&&t.onSearchAborted?.()}function Ru(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 CE=500,OE=1,LE=1e4,Ra=1e4;async function du(e,t,n,r,i,o){let a=_E(n,i,o);return e({app:t,query:a,fields:r})}function fu(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 _E(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Eu(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 DE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function vE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=DE.exec(e.trim());if(t===null)return null;let n=vE(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 UE(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 mu(e){let t=Le(e);return t===null?null:UE(t)}function ME(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 Ri(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=ME(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function mi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Ri(n,r)}var ze="__NO_FROM__";function Re(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return mu(t)??t}function yu(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 kE(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=kE(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function gu(e){return ne(e).type!=="NONE"}function hu(e,t){let n=ne(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function hi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Mt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function FE(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 ma(e){return Mt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!ma(e)&&(FE(e.type)||Mt(e.type))}function Au(e){return dn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Su=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function me(e,t){for(let n of t)e.add(n)}function yi(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"&&Su.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=>yi(i,t)):yi(r,t))}function gi(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"&&!Su.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=>gi(i,t)):gi(r,t))}function ht(e){let t=new Set;if(Mt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":me(t,pn(e));break;case"UNION":me(t,Iu(e));break;case"WITH":for(let n of e.ctes)me(t,ht(n.query));me(t,ht(e.query));break;case"CREATE_TEMP_TABLE":me(t,ht(e.query));break;default:break}return yi(e)&&t.add("STATISTICAL_AGGREGATE"),gi(e)&&t.add("AGGREGATE"),t}function Tu(e){return ht(e).size>0}function Iu(e){let t=e.left.type==="SELECT"?pn(e.left):Iu(e.left);return me(t,pn(e.right)),e.all||t.add("DISTINCT"),t}function pn(e){let t=new Set,n=ne(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.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&me(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)me(t,cn(i.condition));return me(t,cn(e.where)),me(t,cn(e.having)),yi(e)&&t.add("STATISTICAL_AGGREGATE"),gi(e)&&t.add("AGGREGATE"),t}function cn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&me(t,pn(e.right.query));break;case"LOGICAL":me(t,cn(e.left)),me(t,cn(e.right));break;case"NOT":case"GROUP":me(t,cn(e.expr));break;case"EXISTS":me(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function wu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function bu(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 Ai=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,...Ai]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return Ai.has(e)}function fn(e){return kt.has(e)}function Be(e){return zn.has(e)}var xE=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})}),ha=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})}),qn="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${qn} scope does not support ${e}`)}function KE(e,t){let n=qn;qn=e;try{return t()}finally{qn=n}}function BE(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function mn(e,t){return KE(e,()=>$E(t,xE[e]))}function $E(e,t){let n=BE(e);if(n===null)return;if(n.type==="UPSERT"){VE(n,t);return}let r=n.applyBlocks;if(ya(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){WE(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"),HE(i.where,t.multipleParents),Nu(r,t)}function Nu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Cu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Si(i,"APPEND targets");Rn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Pu(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.assignments.length===0&&W("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&W("parent or qualified PATCH targets in this phase")}Rn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Pu(r.selector.where,t.idxSelectors)}}}}function Cu(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 GE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ou(e,t){if(Cu(e),e.targetKind==="MULTI_VALUE"){if(!GE.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 ya(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${qn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function VE(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??[];ya(n),ya(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Lu(n,"UPSERT ON INSERT"),Nu(r,{...t,idxSelectors:!1,expectRows:!1})}function Lu(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)Si(i,"APPEND targets");Rn(r.values,"APPEND values")}}function WE(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"),Lu(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function Ti(e,t){let n=ha[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Aa(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${En(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${En(e)} execution does not support multiple-parent APPLY`)}function Aa(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 _u(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!ha[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!ha[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function HE(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&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"),ga(e,t))}function ga(e,t){if(Array.isArray(e)){for(let o of e)ga(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))ga(o,t)}function Pu(e,t){Rn(e,"child row selectors",t)}function Rn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Rn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&W(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&W(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&W(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&J(r.name))&&W(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&W(`qualified or parent field references in ${t}`),Si(l,t,n)}if(i==="FIELD_REF"&&Si(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function Si(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&W(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&W(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&W(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=YE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function YE(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 Du(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ce(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return ce(e.left)||ce(e.right);case"NOT":case"GROUP":return ce(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return jE(e);case"NULL_CHECK":return qE(e);case"LOGICAL":return JE(e);case"NOT":return XE(e);case"GROUP":return QE(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 jE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Uu(e.left),n=zE(e.op),r=ZE(e.right,e.op);return`${t} ${n} ${r}`}function zE(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 qE(e){let t=Uu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function JE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=vu(e.left)?`(${t})`:t,o=vu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function XE(e){return G(Jn(e.expr))}function QE(e){return`(${G(e.expr)})`}function Uu(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return sR(e.field)}function ZE(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 Mu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return ku(e);case"IN_LIST":return oR(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 Mu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ku(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return eR(e)}function eR(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!rR(e.args.offset,e.args.offsetText)||!tR.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!nR.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!iR(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var tR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),nR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function rR(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function iR(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function oR(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 aR(e.values),`(${e.values.map(r=>r.type==="STRING"?Mu(r):r.type==="NUMBER"?H(r):ku(r)).join(",")})`}function aR(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 sR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function vu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ii(e){return`'${e.replace(/'/g,"''")}'`}function gn(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 Ta(e);let n=`${gn(e.left)}${e.op}${gn(e.right)}`;return t?n:`(${n})`}function Fu(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ta(e.expr);if(e.type==="ARITH_FIELD")return gn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Sa(e.expr)}function Ku(e){switch(e.type){case"STRING":return Ii(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=>Ii(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Ku).join(",")})`;case"ARITH_VALUE":return gn(e.expr);case"CASE_VALUE":return Sa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${Fu(e.left)} ${e.op.replace("_"," ")} ${Ku(e.right)}`;case"NULL_CHECK":return`${Fu(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function xu(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ii(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?gn(e):xt(e)}function Sa(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${xu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${xu(e.elseResult)}`;return`CASE ${t}${n} END`}function lR(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function Ta(e){return`${e.func}(${e.args.map(lR).join(",")})`}function xt(e){switch(e.type){case"STRING":return Ii(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 Ta(e);case"CASE_WHEN":return Sa(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function uR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?gn(e,!0):xt(e)}function we(e,t,n){let r=uR(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function cR(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||cR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Wu(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Bu(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return Bu(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Bu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function wi(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(pR).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:dR(e.columns),totalCount:!1}}function Vu(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=Yu(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 pR(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 dR(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(wa(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?ba(r.expr,n):r.type==="SCALAR_VALUE_COL"&&hn(r.expr,n);return[...new Set(n)]}function fR(e,t){tr(e.left,t),tr(e.right,t)}function tr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(wa(e.field)):e.type==="ARITH"?fR(e,t):e.type==="STRING_FUNC"&&ba(e,t)}function wa(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ba(e,t){for(let n of e.args)ER(n,t)}function ER(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ia(e,t);return}hn(e,t)}function hn(e,t){if(e.type==="FIELD"){t.push(wa(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ba(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){hn(e.left,t),hn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)$u(n.result,t);e.elseResult&&$u(e.elseResult,t)}}function $u(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}hn(e,t)}}function Ia(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&RR(e.arg,t);return}e.type==="AGG_ARITH"&&(Ia(e.left,t),Ia(e.right,t))}function RR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):hn(e,t)}function Wu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?Wu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Gu(t.result))||e.elseResult!==null&&Gu(e.elseResult):!1}function Gu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Hu(e,t){let n=new Set,r=Yu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Yu(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let p=mR(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},u=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&x.fields.add(O);return}return void 0}C&&x.fields.add(C)}},R=(A,C="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){u();return}if(F==="_p"){f();return}let j=d.get(F);if(j){c(j);return}return}if(C==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&E(F,x.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&yR(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),j=A.slice(O+1);if(F==="_p"){l&&E(l,`_p.${j}`);return}let q=d.get(F);if(q){E(q,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},m=(A,C,x="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let O=d.get(C);if(O){E(O,A);return}if(n)return}R(A,x)},y=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){y(A.left,C),y(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},g=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&I(A.arg,C);return}A.type==="AGG_ARITH"&&(g(A.left,C),g(A.right,C))},h=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){g(A,C);return}w(A,C)},S=(A,C="select")=>{for(let x of A.args)h(x,C)},w=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){w(A.left,C),w(A.right,C);return}A.type==="CASE_WHEN"&&b(A,C)},I=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}w(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}w(A,C)}},b=(A,C="select")=>{for(let x of A.branches)D(x.condition,C),L(x.result,C);A.elseResult&&L(A.elseResult,C)},v=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){y(A.expr,C);return}A.type!=="GROUPING_FIELD"&&b(A.expr,C)},P=(A,C="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,C);return}if(A.type==="CASE_VALUE"){b(A.expr,C);return}},D=(A,C="where")=>{if(A)switch(A.type){case"BINARY":v(A.left,C),P(A.right,C);return;case"NULL_CHECK":v(A.field,C);return;case"LOGICAL":D(A.left,C),D(A.right,C);return;case"NOT":case"GROUP":D(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},k=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}S(A.expr,"groupBy")},N=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){y(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&I(A.arg,"select");break;case"ARITH_AGG_COL":g(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":b(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":w(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)m(C.field,C.tableAlias,"select");for(let C of A.orderBy)N(C.key,"select");break}for(let A of e.joins)m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where");D(e.where,"where");let _=ne(e);if(_.type==="PLAIN")_.allItems.forEach((A,C)=>k(A,t?.items[C]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)m(A.field,A.tableAlias,"select");D(e.having,"having");for(let A of e.orderBy)N(A.key);return a}function mR(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(we(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function yR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||gu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=bi(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 bi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:ju(e.left,t)};case"NULL_CHECK":return{...e,field:ju(e.field,t)};case"LOGICAL":return{...e,left:bi(e.left,t),right:bi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:bi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function ju(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>gR(n,t))}function ir(e,t={}){return rr(e,n=>zu(n,t)||qu(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function gR(e,t){return hR(e,t)||TR(e,t)?!0:zu(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":SR(e,t)}function hR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Pa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var AR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function SR(e,t){if(!qu(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||!AR.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function TR(e,t){return!IR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function IR(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 zu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Pa(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 qu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Pa(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 Pa(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function or(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())Sn(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Na(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Pi(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=ue(t.where);if(l.length===0||!PR(l,a)||o===null||!Ju(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:bR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return wR(p,e,l),p}function wR(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(!Ju(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ue(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function bR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function PR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Ju(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Xu(e){Qu(e)}function Oa(e){if(Na(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Qu(e){switch(e.type){case"SELECT":In(e);return;case"UNION":_a(e);return;case"WITH":Zu(e);return;case"EXPLAIN":Qu(e.query);return;case"CREATE_TEMP_TABLE":La(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&ce(e.where)){Ca(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&ce(e.where)&&!OR(e,e.where)){Ca(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&ce(e.where)){Ca(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Ca(e){Ci(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function La(e){e.type==="SELECT"?In(e):e.type==="UNION"?_a(e):Zu(e)}function _a(e){La(e.left),In(e.right)}function Zu(e){if(It(e)){In(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&_a(t.query);La(e.query)}function In(e){if(CR(e),ce(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(Na(n).length===0){Bt(e);return}if(NR(e)){Bt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function NR(e){return e.where!==null&&ue(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function CR(e){Ci(e,t=>{if(!St(t))return;if(!Ni(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Oi(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Oi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function OR(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 Ni(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ni(e.left,t)||Ni(e.right,t);case"NOT":case"GROUP":return Ni(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Ci(e,t){if(Array.isArray(e)){for(let r of e)Ci(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&&LR(r)||Ci(r,t)}function Oi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Oi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Oi(i,t)}function LR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ar=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 ec(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(_R(t))throw new ar;return;default:return}}function _R(e){let t=!1;return Li(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||DR(n.where)&&(t=!0)}),t}function DR(e){let t=!1;return Li(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Li(e,t){if(Array.isArray(e)){for(let r of e)Li(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Li(r,t)}function $e(e){ec(e),Xu(e)}var tc=Symbol("ksql.groupingRowMeta"),nc=new WeakMap;function rc(e,t){return Object.defineProperty(e,tc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function vR(e){return e[tc]}function UR(e){return vR(e)?.includedCanonicalIds}function ic(e,t){nc.set(e,t)}function wn(e,t){let n=UR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=nc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ac=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 vi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function va(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 Ui(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ui(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=>Ui(r,t))}}function sr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>sr(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(va(n.field));return}Object.values(n).forEach(i=>sr(i,t))}}function lr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(lr);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(lr)}function MR(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"?lr(e):!1}function kR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function oc(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 FR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${vi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${vi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ic(e,r.canonicalId)}function Da(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${vi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function xR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[va(e.name)];let t=[];return sr(e,t),t}function Ua(e){let t=ne(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),Ui(e.columns,r),Ui(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 sc(e,t,n=()=>{}){Ua(e);let r=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&De(p,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=hu(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${vi(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let p of i)FR(p,t,a);let l=kR(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(va(p.field)):sr(p,c);for(let u of c)Da(u,t,a,"SELECT")}if(e.having){let p=[];sr(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||oc(c)||Da(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of xR(p.key))c.tableAlias===null&&l.has(c.field)||oc(c)||Da(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!MR(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Mi=16,lc=64,Z=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ur(e,t,n){if(Array.isArray(e)){for(let r of e)ur(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))ur(a,t,n)}}function Ma(e,t){if(Array.isArray(e)){for(let n of e)Ma(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Ma(i,t)}}function ka(e){if(Array.isArray(e)){for(let t of e)ka(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Ua(e);for(let n of Object.values(t))ka(n)}}function Fa(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{ka(c)}catch(f){throw f instanceof Error?new Z(f.message,u):f}try{mn("phase15b",c),$e(c)}catch(f){throw f instanceof oe||f instanceof ar?new Z(f.message,u):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Z(f.message,u):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let u=c==="SET_VARIABLE"?"SET":"DECLARE";throw new Z(`ArgumentError: ${u} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let u=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Z(`ArgumentError: ${u} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,u)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let L=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Z(L,u)}let E=hi(c),R=[],m=[],y=new Set,g=new Set,h=new Set,S=[];Ma(c,S);let w=new Set;for(let L of S){let b=o.get(L.name);if(b===void 0)throw new Z(`ParseError: variable @${L.name} is not defined before statement ${u+1}.`,u);if(b.kind==="scalar"&&L.kind==="array-in-list")throw new Z(`ParseError: scalar variable @${L.name} cannot be used as IN @${L.name}; use IN (@${L.name}) instead.`,u);if(b.kind==="array"&&L.kind!=="array-in-list")throw new Z(`ParseError: array variable @${L.name} can only be used as IN @${L.name}.`,u);w.has(L.name)||(b.referencedBy.push(u),w.add(L.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new Z(`ParseError: variable @${c.name} is already defined.`,u);if(o.set(c.name,{index:u,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>lc)throw new Z(`ParseError: batch exceeds ${lc} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?ur(c.query,y,g):c.type==="DROP_TEMP_TABLE"||ur(c,y,g);let I=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let L=new Set,b=new Set;ur(c.select,L,b),I=L.size>0&&b.size===0}for(let L of y){let b=t.get(L);if(b===void 0)throw new Z(`ParseError: temp table ${L} is not defined in this batch.`,u);h.add(b)}if(f){let L=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(P=>P.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(P=>P.kind==="FIELD"?[P.field]:P.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(P=>P.field)]:"fields"in c?c.fields:[],b=JSON.stringify(L),v=t.get(f);if(v===void 0){if(t.set(f,u),n.set(f,b),r.push(f),R.push(f),t.size>Mi)throw new Z(`ParseError: batch exceeds ${Mi} temp tables.`,u)}else{if(n.get(f)!==b)throw new Z(`ParseError: validation error table ${f} has a different payload schema.`,u);h.add(v)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new Z(`ParseError: temp table ${c.name} is already defined.`,u);if(t.set(c.name,u),r.push(c.name),R.push(c.name),t.size>Mi)throw new Z(`ParseError: batch exceeds ${Mi} temp tables.`,u)}if(c.type==="DROP_TEMP_TABLE"){let L=t.get(c.name);if(L===void 0)throw new Z(`ParseError: temp table ${c.name} is not defined in this batch.`,u);h.add(L),m.push(c.name),t.delete(c.name)}i.push({index:u,statementType:E,isDml:ma(c),isReadOnly:dn(c),hasWhere:wu(c),insertValuesCount:bu(c),appIds:[...g].sort((L,b)=>L-b),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...h].sort((L,b)=>L-b),tempOnlySource:I,targetAppId:Mt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:Tu(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var ki=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 ye=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Pt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(xa(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ye(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ye("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ye("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!bn(this.input[this.pos]))throw new ye("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&bn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&uc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=ki.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(!xa(n))throw new ye("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&uc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ye(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ye("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ye("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
2
2
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
3
- `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ye("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function ka(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||OR(t)}function rc(e){let t=e.codePointAt(0);return ka(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function OR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var oc=20,Fa=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"}),sc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),xa=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"}),YT=Object.freeze(Object.values(xa).filter(e=>e!==void 0)),LR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),_R=new Set(LR);function DR(e){return _R.has(e)}var lc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Ui=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function ac(e){return Ui[e]!==void 0}var vR=Object.freeze([...yi]),UR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),MR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function kR(e){return UR.has(e)}function FR(e){return MR.has(e)}function xR(e){return Number.isInteger(e)&&e>=1&&e<=31}var jT=Object.freeze(Array.from(new Set([...Object.keys(Fa),...sc,...Object.keys(xa),...Object.keys(lc),...Object.keys(Ui),...vR,"IF"]))),KR=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 BR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!KR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>oc)throw new T(`batch exceeds ${oc} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Ui[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)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new T(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:L,...I?{rowIdSourceHeader:I}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==qe||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let h,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}m=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(h=this.parseOnDuplicate());let y;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let g=o.filter(b=>b.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!m)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(y);for(let L of g){if(!L.rowIdSourceHeader)throw new T(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(L.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of b)if(!g.some(I=>I.subtableCode===L))throw new T(`REPLACE SUBTABLES target ${L} is not declared in INTO.`,this.prev())}}else if(y)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!m)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(h)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),P=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...y?{replaceSubtables:y}:{},...h?{keyFields:h}:{},...S,...P}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&BR(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:qe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(m=>m.type==="WINDOW_COL"),h=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||h))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return lc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"AGG_ARITH",left:Re("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Re(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Re(`${n.kind==="-"?"-":"+"}${H(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Re("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Re(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Re(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"ARITH",left:Re("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Re(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Fa[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Fa[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(sc.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=$R(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 xa[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(!DR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!kR(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(!FR(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(!xR(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(ac(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Ui[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Re(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Re(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=pu(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Re(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Re(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let u=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let u=this.matchUpdateFromJoin(p,n,r);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(ac(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||vi.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function $R(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function lt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}var GR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),VR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function X(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":VR.has(e.fieldType)?t="option":GR.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Pn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Mi(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function WR(e,t){return e<t?-1:e>t?1:0}function uc(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function HR(e,t){let n=uc(e),r=uc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?di(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function cc(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 YR(e,t,n){let r=cc(e,n),i=cc(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function jR(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 pc(e,t){let n=t.optionOrder??new Map,i=[...new Set(jR(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(dc),i}function dc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function qR(e,t,n){let r=pc(e,n),i=pc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=dc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return HR(e,t);case"recordNumber":return YR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return qR(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function fc(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?di(s,l):WR(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function pe(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(pe(e.left,t,n,r)),o=Number(pe(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return yc(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return pe(e,t,n,r)}}function ki(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 zR(e){return e>=55296&&e<=56319}function JR(e){return e>=56320&&e<=57343}function xi(e,t){return t>0&&t<e.length&&zR(e.charCodeAt(t-1))&&JR(e.charCodeAt(t))}function Ec(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 Ba(e,t){let n=Math.min(Math.max(0,t),e.length);return xi(e,n)&&(n-=1),e.slice(0,n)}function XR(e,t){let n=Math.max(0,e.length-t);return xi(e,n)&&(n+=1),e.slice(n)}function QR(e,t,n){let r=Ec(t,e.length),i=Ec(n,e.length);return i<=r?"":(xi(e,r)&&(r+=1),xi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function ZR(e,t){let n=e.repeat(Math.ceil(t/e.length));return Ba(n,t)}var em=200,cr=new Map;function tm(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function Ka(e,t,n=!1){let r=tm(t)+(n?"g":""),i=`${e}\0${r}`,o=cr.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(cr.size>=em){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function nm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function rm(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 im(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function om(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),p=a.slice(0,d);return im(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>fm(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return he("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return QR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{he("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Ba(o,a)}case"RIGHT":{he("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":XR(o,a)}case"INSTR":return he("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{he(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Ba(o,a);let s=i[2]??" ";if(s==="")return o;let l=ZR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return he(e.func,i,2),fc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return he("REGEXP_LIKE",i,2,3),Ka(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{he("REGEXP_REPLACE",i,3,5),nm(i[2]);let o=rm(i[4]),a=Ka(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):om(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return he("REGEXP_SUBSTR",i,2,3),Ka(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{he("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return ki("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return ki("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return ki("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return he("TRUNCATE",i,1,2),ki("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 pm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return he(e.func,i,1,1),Fi(i[0])?String($a(i[0])+1):"";case"QUARTER":return he(e.func,i,1,1),Fi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return he(e.func,i,1,1),Fi(i[0])?String(mc(i[0])):"";case"DATE_FORMAT":return sm(i[0]??"",i[1]??"");case"DATEDIFF":return lm(i[0]??"",i[1]??"");case"DATE_ADD":return um(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return he("LAST_DAY",i,1,1),cm(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function he(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function pr(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function Ki(e){let t=new Date(0);return t.setUTCHours(0,0,0,0),t.setUTCFullYear(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),t}function Fi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ki(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function $a(e){return Ki(e).getUTCDay()}function Rc(e){let t=Ki(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function am(e){return Rc(e).getUTCFullYear()}function mc(e){let t=Rc(e),n=t.getUTCFullYear(),r=Ki(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function sm(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pr(e),l=Fi(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($a(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][$a(e)]:"";case"%v":return l?String(mc(e)).padStart(2,"0"):"";case"%G":return l?String(am(e)).padStart(4,"0"):"";default:return d}})}function lm(e,t){if(e.length<10||t.length<10)return"0";let n=pr(e),r=pr(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 um(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}=pr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function cm(e){if(!e||e.length<10)return e;let{y:t,mo:n}=pr(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 pm(e,t){if(/^-?\d+$/.test(t.trim()))return dm(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return n?E+"%":E}function dm(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 fm(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(pe(e,t,n,r))}function ut(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function te(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Em(e,t,n,r,i);case"NULL_CHECK":return Am(e,t);case"LOGICAL":return Sm(e,t,n,r,i);case"NOT":return!te(e.expr,t,n,r,i);case"GROUP":return te(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Em(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=bc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=mm(e.left,a,i);return Rm(e.op,o,e.right,t,a,n,s,i)}function Rm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(gm(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?H(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let p=hm(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=Ga(n,r,o);return wc(t,d)}if(e==="NOT_LIKE"){let d=Ga(n,r,o);return!wc(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=Ga(n,r,o,s);return Gt(e,t,l,a)}var hc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function mm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?X({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(hc.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(hc.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var gc=new Set(["CHECK_BOX","MULTI_SELECT"]),Ac=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),ym=new Set(["CREATOR","MODIFIER"]);function hm(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Gt("=",e,a,o))}let i;if(gc.has(n)||Ac.has(n)||ym.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return gc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Ac.has(n)?!Array.isArray(i)||!i.every(Sc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Sc(i)?t.has(i.code):r()}function Sc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function gm(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${at}`)}function Am(e,t){let n=bc(e.field,t);return e.not?n!=="":n===""}function Sm(e,t,n,r,i){return e.op==="AND"?te(e.left,t,n,r,i)&&te(e.right,t,n,r,i):te(e.left,t,n,r,i)||te(e.right,t,n,r,i)}function bc(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function Ga(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 Tm(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Ic(i.result,t,n,r);return e.elseResult!==null?Ic(e.elseResult,t,n,r):""}function yc(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Tc(i.result,t,n,r);return e.elseResult===null?null:Tc(e.elseResult,t,n,r)}function Tc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function Ic(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(pe(e,t,n,r))}function Pc(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 Tm(e){throw J(e)?new Error(`${e}: ${Ft}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Bi=new Map,Im=200;function wc(e,t){if(!Pu(t))return e.includes(t);let n=Bi.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"),Bi.size>=Im&&Bi.clear(),Bi.set(t,n)}return n.test(e)}function Nn(e){return Cc(e)}function Nc(e){return Cc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Cc(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 de("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 de("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 de(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function $i(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!te(a.condition,t,n))continue;let s=pe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Wa(e){if(At(e))throw new Q("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var wm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),bm=new Set(["CHECK_BOX","MULTI_SELECT"]);function Vi(e,t=new Map){let n=e.values.map(r=>Pm(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function Pm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function fr(e){Wa(e.where);let t=$c(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=Nm(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Nm(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:ct(i,t.get(r))});return n}function Dc(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 Wi(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 Ha(e){Wa(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?vc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?Ya(n,t):n.type==="CASE_VALUE"&&Uc(n.expr,t);return $c(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function vc(e,t){dr(e.left,t),dr(e.right,t)}function dr(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"?vc(e,t):e.type==="STRING_FUNC"&&Ya(e,t)}function Ya(e,t){for(let n of e.args)Cm(n,t)}function Cm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Va(e,t);return}Cn(e,t)}function Cn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Ya(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Cn(e.left,t),Cn(e.right,t);return}e.type==="CASE_WHEN"&&Uc(e,t)}function Va(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Om(e.arg,t);return}e.type==="AGG_ARITH"&&(Va(e.left,t),Va(e.right,t))}function Om(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function Oc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function Uc(e,t){for(let n of e.branches)Gi(n.condition,t),Oc(n.result,t);e.elseResult!==null&&Oc(e.elseResult,t)}function Gi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&dr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Gi(e.left,t),Gi(e.right,t);break;case"NOT":case"GROUP":Gi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function ja(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Mc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:qa(d,a,n.get(l),i)};return{id:o,record:s}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function qa(e,t,n,r){if(e.type==="ARITH")return String(r?Ja(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(pe(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Q("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function Hi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Lm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function za(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Q("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Mc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Lm.has(c??""))throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new Q(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new Q(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:ct({type:"STRING",value:u},c)}}else{if(p.type==="STRING_FUNC")throw new Q("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[d]={value:String(Ja(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(pe(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Lt(p.expr,s,c)}:l[d]={value:ct(p,c)}}}return{id:a,record:l}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function Mc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Ja(e,t){let n=Lc(e.left,t),r=Lc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Lc(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 Ja(e,t);if(e.type==="STRING_FUNC")throw new Q("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new Q(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function kc(e){return Wa(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Fc(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function xc(e){return wm.has(e??"")}function _m(e){return bm.has(e??"")}function Dm(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 vm(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Kc(e,t){return xc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):_m(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Dm(e):t==="DATE"?vm(e):e}function Bc(e,t){return xc(t)?e.map(n=>({code:n})):e}function _c(e,t,n){return e.type==="ARRAY"?Bc(e.elements.map(r=>r.value),n):e.type==="STRING"?Kc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(pe(e,t))}function $c(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Nn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(te(r.condition,t))return _c(r.result,t,n);return e.elseResult!==null?_c(e.elseResult,t,n):""}function ct(e,t){let n=Xa(e,t);if(!n.ok)throw new Q(n.message);return n.value}function Xa(e,t){try{return{ok:!0,value:Um(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Um(e,t){switch(e.type){case"VARIABLE":throw new Q(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Q(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Kc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Bc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Q(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Q("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Q("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new Q("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new Q("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Q("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Q=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Qa=new Set(["CHECK_BOX","MULTI_SELECT"]),Mm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function Gc(e,t,n){let r=km(n.fieldType,e.field),i=Fm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let y=m.value;y!==""&&(m.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let m of s)l.has(m)&&mr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),p=a.filter(m=>!o.has(m)),c=[...d,...p],u=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let y=m.kind==="ADD"?f:E,g=!y.has(m.value);return y.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&g&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),h=Qa.has(r)?c:c.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:h,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function km(e,t){return Qa.has(e)||Mm.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Fm(e,t,n){if(!Array.isArray(e))return mr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Qa.has(t)?typeof i!="string"?mr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?mr(`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 ts(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?Y("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return Y("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)Za(s.field,null,r),xm(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&Y(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?Y(`APPLY target ${s.field} is not a SUBTABLE.`):Y(`APPLY target ${s.field} does not exist as a top-level field.`);if(Iu(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&Y(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)Za(u.field,s.field,r,p),es(u.value,s.field,r,p);c.selector.kind==="WHERE"&&es(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),Za(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&es(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function xm(e,t){yr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&Y(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&Y(`APPLY parent FILE reference ${n} is not supported.`)})}function Za(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&Y(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&Y(`APPLY child ${e} does not belong to subtable ${t}.`),Y(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&Y(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function es(e,t,n,r){yr(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 Yi(e,t){let n=pt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)yr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ji(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=qc(i?.value);return n}function Wc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=is(n.$id?.value,"APPLY snapshot $id"),a=ts(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Yc(t,n,i,o)}function Hc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=is(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Yc(e,o,r,a)})}function Yc(e,t,n,r){let i=is(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let w=n.targetMultiValueFields.get(p.field);w||Y(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Gc(p,t[p.field]?.value,w));continue}let c=n.childrenByTable.get(p.field),u=Wm(t,p.field),f=new Set;for(let w of u)w.id||Y(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(w.id)&&Y(`APPLY snapshot for ${p.field} contains duplicate _rid ${w.id}.`),f.add(w.id);let E=w=>w.field==="_rid"?"SINGLE_LINE_TEXT":w.field==="_idx"?"NUMBER":c.get(w.field)?.fieldType,R=[],h=[],m=[],y=new Set,g=new Set,S=new Set,P=p.operations.some(w=>w.kind==="REMOVE");for(let[w,D]of p.operations.entries()){if(D.kind==="APPEND"){let N=ns(D,c,p.field);m.push({kind:"APPEND",addedRows:N.length}),h.push(...N);continue}if(D.kind==="REMOVE"){let N=$m(D,u,E,p.field);D.expectRows&&Vc(D.expectRows,N.length,r,p.field,w,D.kind),m.push({kind:"REMOVE",removedRows:N.length});for(let _ of N){let A=u[_].id;g.has(_)&&Y(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(_)&&Y(`APPLY removes row ${A} more than once.`),S.add(_)}continue}if(D.kind!=="PATCH")continue;let k=Bm(D,u,E,p.field);D.expectRows&&Vc(D.expectRows,k.length,r,p.field,w,D.kind),m.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let N of k){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),g.add(N);let A=ji(_,N);for(let C of D.assignments){let x=`${_.id}\0${C.field}`;y.has(x)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),y.add(x),R.push({rowIndex:N,field:C.field,value:Hi(C.value,A,E)})}}}let b=new Map;for(let w of R){let D=b.get(w.rowIndex)??{};D[w.field]={value:w.value},b.set(w.rowIndex,D)}let I=[...u.flatMap((w,D)=>S.has(D)?[]:[{id:w.id,value:{...w.value,...b.get(D)??{}}}]),...h],v={table:p.field,operations:m,changedSubtableRows:b.size+S.size+h.length,deletedRows:S.size,snapshotRowIds:u.map(w=>w.id),postImageRows:I};P?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((w,D)=>S.has(D)?[w.id]:[]),payloadRows:I.map(w=>({...w.id===void 0?{}:{id:w.id},value:w.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((w,D)=>{let k=b.get(D);return k?{id:w.id,value:k}:{id:w.id}}),...h.map(w=>({value:w.value}))]})}let s=Hm(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:qa(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function Vc(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 qi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return Y(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:Y(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:Y(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function ns(e,t,n){return e.values.map(r=>({value:Km(e,r,t,n)}))}function Km(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?rs(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function rs(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 Bm(e,t,n,r){return jc(e.selector,t,n,r)}function $m(e,t,n,r){return jc(e.selector,t,n,r)}function jc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>te(i,ji(l,d),n)?[d]:[]),a=Gm(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Vm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Gm(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 Vm(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 Wm(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 is(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function Hm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=qc(r?.value);return t}function qc(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 yr(e,t){if(Array.isArray(e)){e.forEach(r=>yr(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))yr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Ji(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function hr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),Ym(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function zc(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function Ym(e){let t=os(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(os(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");zi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");zi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=os(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));zi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");zi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!as(p.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(p=>!d.has(p)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function os(e,t){let n=[...e],r=new Set;for(let i of n)i||re(`APPLY ${t} contains an empty row id.`),r.has(i)&&re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function zi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function as(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((a,s)=>as(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&as(n[a],r[a]))}function Jc(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 Xc(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Jc(t.digits,"digits",1,30),r=Jc(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 Qc(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 jm=new Set(["CHECK_BOX","MULTI_SELECT"]),qm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ne(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=zm(e);if(i!==""&&!Jm(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=gr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:Xm(t.fieldType),message:o}}if(t.required&&Xi(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Xi(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&fi(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&&fi(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}=Qc(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(!Xi(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!Xi(r)&&qm.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 zm(e){return e==null?"":Qi(e)&&e.type==="NUMBER"?H(e):Qi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Jm(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function gr(e,t){if(Qi(e)){let r=Xa(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(jm.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function Qi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Qi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Xi(e){return e===""||Array.isArray(e)&&e.length===0}function Xm(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var On=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ss(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=gr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function ls(e,t,n,r,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(h=>[h.code,h])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&ss(e,r,i);let R;for(let h of e){h.record??={};let m=d?[...h.preErrors]:[],y=[],g=[],S=h.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let I of r){if(!h.payload.has(I))continue;let v=h.payload.get(I),w=c.get(I).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(w)&&Array.isArray(v)&&v.every(N=>typeof N=="object"&&N!==null&&"code"in N);if(!S)continue;let k=Ne(v,c.get(I),a);k.ok?h.record[I]={value:D?v:k.value}:y.push({field:I,code:k.code,message:k.message})}if(l&&h.mode==="create")for(let I of i){if(I.inSubtable||h.payload.has(I.code))continue;if(Wt(I.defaultValue)){let w=Ne("",I,a);w.ok?I.required&&y.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:I.code,code:w.code,message:w.message})}else{let w=Ne(I.defaultValue,I,a);w.ok||y.push({field:I.code,code:w.code,message:`\u65E2\u5B9A\u5024: ${w.message}`})}}if(s.length>0){let I=h.evaluationRow??Object.fromEntries([...h.payload].map(([D,k])=>[D,ze(k)])),v=h.evaluationFieldTypes,w=D=>{let k=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(k)??v?.get(D.field)};try{for(let D of $i(s,I,w))g.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){R??=D}}let P=I=>I.map(v=>{let w={};for(let D of n)w[D]=ze(h.payload.get(D));return w.$err_statement=String(o),w.$err_operation=t,w.$err_row=String(h.rowNumber),w.$err_field=v.field,w.$err_code=v.code,w.$err_message=v.message,w.$err_value="",w.$err_subtable="",w.$err_subrow="",w.$err_subrow_id="",w}),b={rowNumber:h.rowNumber,preErrors:P(m),builtInErrors:P(y),checkErrors:P(g)};E.push(b);let L=[...b.preErrors,...b.builtInErrors,...b.checkErrors];L.length>0&&f.add(h.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function ze(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var us=["required","length","range","choice"];function cs(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 Qm(e){return cs(e).length>0}function Zm(e){return e.fieldType==="NUMBER"||Qm(e)}function Zi(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ds(e,t){let{topByCode:n,childrenByTable:r}=ps(t),i=Zm;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...r.entries()].some(([R,h])=>R!==l.subtableCode&&h.some(m=>m.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(d);if(p?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ar(e,t){return Wt(e)?"":ze(gr(e,t))}var ey=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Sr=On;function Je(e,t=["$id"]){let n=ps(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!ey.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Ht(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Yt(e,t,n,r,i=1,o="UPDATE"){let a=ty(e),s=[],l=new Set,d=[...t.payloadFields,...Sr],p=ze(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let h={};for(let m of t.payloadFields)h[m]=m==="$id"?p:ze(e[m]?.value);h.$err_statement=String(r),h.$err_operation=o,h.$err_row=String(i),h.$err_field=u.code,h.$err_code=E.code,h.$err_message=E.message,h.$err_value=Ar(f,u.fieldType),h.$err_subtable=R?.subtable??"",h.$err_subrow=R?String(R.subrow):"",h.$err_subrow_id=R?.subrowId??"",s.push(h)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Ne(f,u,n);E.ok?a[u.code]={value:Zc(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let h=0;h<E.length;h++){let m=E[h],y=R[h];for(let g of f){let S=m.value?.[g.code]?.value,P=Ne(S,g,n);P.ok?(y.value??={},y.value[g.code]={value:Zc(S,g.fieldType,P.value)}):c(g,S,P,Zi(u,h,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Zc(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 ty(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 eo(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;ep(o,"dmlMaxRows"),ep(a,"dmlMaxSubtableRows");for(let g of n)Ji(g);let l=Hc(t,n,r,i),d=Je(r,t.assignments.map(g=>g.field)),p=l.some(g=>Ht(g.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((g,S)=>Yt(g.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=u.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let h=l.map((g,S)=>qi(g,u[S].normalizedRecord)),m=h.flatMap(g=>hr(g).records),y=u.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return tp({plans:h,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function ep(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function tp(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))tp(n,t);return Object.freeze(e)}var fs=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function to(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)np(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return Xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),np(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function ny(e,t,n=to(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Vi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(p=>ns(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||fs.has(c.fieldType)||(d[c.code]=s[c.code]??{value:rs(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Tr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;rp(r,"dmlMaxRows"),rp(i,"dmlMaxSubtableRows");let a=e.metadata??to(t,n),s=ny(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!fs.has(S.fieldType)),d=Je(l,t.fields),p=s.some(S=>Ht(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(P=>P.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,P)=>S+P.tables.reduce((b,L)=>b+L.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let h=s.map((S,P)=>{let b=u[P].normalizedRecord,L={};for(let I of t.fields)L[I]=b[I];for(let I of S.tables){let v=b[I.table]?.value;L[I.table]={value:I.rows.map((w,D)=>({value:Object.fromEntries(Object.keys(w.value).map(k=>[k,v[D]?.value?.[k]??w.value[k]]))}))}}return{...S,postImage:b,record:L}}),m=h.map(S=>S.record),y=[];for(let S=0;S<m.length;S+=100)y.push({app:t.appId,records:m.slice(S,S+100)});let g=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return ip({applyBlocks:t.applyBlocks??[],candidates:h,records:m,batches:y,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function np(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||fs.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function rp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function ip(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))ip(n,t);return Object.freeze(e)}async function ap(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;op(i,"dmlMaxRows"),op(o,"dmlMaxSubtableRows"),sy(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=ry(t,s.map(m=>m.sourceRowIndex)),p=await Tr({statement:d,fieldInfos:r,metadata:to(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let m of l){let y=m.targetId;u.has(y)&&Es(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),u.add(y),m.snapshot||Es(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let g=Number(m.snapshot.$id?.value);g!==y&&Es(`UPSERT APPLY snapshot $id ${g} does not match target $id ${y}.`);let S=iy(t,m.sourceRowIndex,y),P=S.applyBlocks?.length?pt(S,r):oy(r);c.push(await eo({statement:S,snapshots:[m.snapshot],fieldInfos:r,metadata:P,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=ay(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,h=E>i||R>o;if(!t.validateOnly){let m=[...p.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:m})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Rs({create:p,update:f,createBatches:p.batches,updateBatches:ly(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:h,create:p.guards,update:f.guards}})}function ry(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function iy(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 oy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function ay(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 Rs({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 sy(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 ly(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 op(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Es(e){throw new Error(`ArgumentError: ${e}`)}function Rs(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))Rs(n,t);return Object.freeze(e)}function wr(e){return Ln("UPDATE",[up(e)])}function ms(e){return Ln("INSERT",[lp(e)])}function ys(e){return Ln("UPSERT",[lp(e.create),up(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ro(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[no("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[no("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[no("insert",e.onInsertApplyBlocks??[],null,!1,t,n),no("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function lp(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function up(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:sp(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:sp(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 sp(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:Ir(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ir(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ir(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ir(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ir(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ir(e,t){return e==null||t===null?null:e+t}function no(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>uy(f,n)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function uy(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var Qe=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function cp(e,t,n){yn("phase10c");let r=zc(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function pp(e,t,n){yn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function dp(e,t,n){yn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});r.push(p.ids)}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var cy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function py(e){if(!cy.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 dy(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=py(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 hs(e,t){let n=dy(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 fy(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 gs(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 fy(i)?!0:Object.values(i).some(n)};return n(e)}function fp(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 Ep(e,t){let n=ne(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return io(e.left);case"NULL_CHECK":return io(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function io(e){if(Array.isArray(e))return e.some(io);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(io)}async function Ge(e,t,n,r,i){let o=await Ie(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function oo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:uu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],Ey=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Ry=new Set(Me),my=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"])]]),yy=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),hy=["=","!=","in","not in"],gy=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(hy)]]),Ay=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"])]]),yp=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"]),hp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Sy(e){return gy.get(e)??new Set}function Ce(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Pr(e,t)}function Pr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Ty(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ss():by(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ss();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Ap(n.reasons)?Cr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Pr(e.left,t),r=Pr(e.right,t);return Ny(e.op,n,r)}}}function Ty(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return Iy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Rp(n))return mp(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?mp(e,t,p[0],r):ao("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Nr(e))}if(t.type!=="FIELD")return Ss();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Nr(e));let o=Nr(e);if(!gp(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Py(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Sy(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Rp(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 Rp(e){return e.type==="KINTONE_FUNC"&&kt.has(e.name)}function mp(e,t,n,r){let i=Nr(e),o=n.name;if(!kt.has(o)||t.type!=="FIELD")return ao("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=my.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ao("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):yy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:ao("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Iy(e,t,n,r){let i=Nr(e),o=n.name;if(t.type!=="FIELD")return br("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?wy(n)?Ry.has(i)?!Ey.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?br("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}]}:br("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function wy(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 by(e,t,n){let r=n(e);return r?gp(r.fieldType,t)?!yp.has(r.fieldType)&&!hp.has(r.fieldType)?_n("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:_n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):_n("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function gp(e,t){let n=Ay.get(e);return n===void 0||n.has(t)}function Py(e,t){return yp.has(e)?!0:hp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Nr(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 Ny(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Cr({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")?Cr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Cr({capability:"LOCAL_ONLY",reasons:r})}function Ss(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _n(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function ao(e,t,n,r,i){return Cr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function br(e,t,n,r,i){return Sp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Ap(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Cy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&kt.has(t.functionName))}function Sp(e){if(e.capability==="EXACT_PUSHDOWN"||!Ap(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 Oy(e){if(e.capability==="EXACT_PUSHDOWN"||!Cy(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 Cr(e){return Oy(Sp(e))}var Ly=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),_y=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Dy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function vn(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?Ip(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"}):Ip(n[0],e.field)}function Is(e,t){if(e.left.type!=="FIELD")return Or();let n=vn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Or();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ce(e,a=>{let s=vn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:X({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Or();let o=Fy(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function wp(e,t){let n=ue(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=vn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ce(e,o=>{let a=vn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:X({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function bp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:Cp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=vy(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(ky(e,t)),fetchQueriesByAlias:new Map,...o})}function Pp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,Un(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=Un({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!qt(fo(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 Mn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!qt(fo(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))||Np(My(e))!==e.allKlikes.length))}function vy(e,t){if(e===null)return Tp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Tp(e);let r=Uy(e,t,n);if(r!==null)return r;let i=uo(e),o=[],a=new Set;for(let c of i){let u=wp(c,t);if(u.relation!=="function-leaf-exact")continue;let f={targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,relation:"exact"},E;try{E=Un(f,t)}catch{continue}let R=fo(E);qt(R,u.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:u.functionOccurrences,relation:u.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=co(e,a),l=Object.freeze(s===null?[]:[...ue(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=qt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function Uy(e,t,n){let r=so(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Un(i,t)}catch{return null}if(!qt(fo(o),n))return null;let a=new Set;if(jt(e,a),Np(o)!==a.size)return null;let s=Object.freeze(lo(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 so(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=wp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Is(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=so(e.left,t),r=so(e.right,t);return n!==null&&r!==null&&Eo(n,r)?n:null}case"GROUP":case"NOT":return so(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function lo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...lo(e.left),...lo(e.right)];case"GROUP":case"NOT":return lo(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Tp(e){let t=e===null?[]:ue(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function uo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...uo(e.left),...uo(e.right)]:[];case"GROUP":return uo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function co(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=co(e.left,t),r=co(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=co(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function fo(e){let t=[];for(let n of qn){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function qt(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function Np(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function My(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function ky(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=vn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(po(i.right)){n.add("CROSS_TABLE_BINARY");return}Is(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Dp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!Eo(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Un(e,t){return Lr(e.predicate,e,t),G(e.predicate)}function Lr(e,t,n){switch(e.type){case"LOGICAL":Lr(e.left,t,n),Lr(e.right,t,n);return;case"GROUP":Lr(e.expr,t,n);return;case"NOT":Lr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||po(e.right))throw Ts(t,"predicate contains a non-target or RHS field reference");let r=vn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Ts(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ts(t,"predicate shape is outside the Phase A serializer contract")}}function Ts(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Dn(e,t){switch(e.type){case"BINARY":{let n=Is(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Dn(e.left,t),r=Dn(e.right,t);if(e.op==="AND")return Cp([...n,...r]);if(Dp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Eo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Op(i.relation,o.relation)}]:[]}case"GROUP":return Dn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Cp(e){let t=[];for(let n of e){let r=t.findIndex(o=>Eo(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:Op(i.relation,n.relation)}}return t}function Fy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return _y.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return xy(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===">")&&Lp(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"||Dy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?_p(e.right.value)?"superset":"unsafe":n==="TIME"?Ky(e.right.value)?"superset":"unsafe":By(e.right.value)?"superset":"unsafe";if(Ly.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 Ip(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Or(){return Object.freeze({relation:"unsafe"})}function Eo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Op(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function xy(e){return e.type==="NUMBER"&&Lp(e)&&e.value>0}function Lp(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function _p(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 Ky(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function By(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!_p(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Dp(e){let t=new Set;return jt(e,t),t.size>0}function po(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(po);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(po)}function ws(e,t){let n=or(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function $y(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Gy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(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=$y(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"&&!Gy(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 Vy=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 Wy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Dr(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(Wy(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}Vy.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 Ro=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"}},mo=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}},yo=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 vp(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 yo(a).message}}return{records:n,cleanupWarning:o}}function bs(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var Up=["$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 Ps(e){return e.startsWith("_")||e.startsWith("$")}var Hy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Cs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Cs);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"?Hy.test(t.field):Object.values(t).some(Cs)}function Yy(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 lr(e)||Cs(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var jy=["_pid","_rid","_idx"];function Ns(e){return[...new Set(e)]}function qy(e){switch(e.kind){case"APP":return Ns([...e.fieldCodes,...Up]);case"SUBTABLE":return Ns([...e.childFieldCodes,...jy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ns(e.columns)}}function Mp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:qy(t(r,i))}))}function zy(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 Jy(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Xy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Qy(e,t,n){let r=zy(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:Jy(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Xy(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=Yy(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function kp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Qy(r.name,t,n):{kind:"EXPRESSION"})}}var Zy={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 Fp(e,t){let n=Zy[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 xp(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=>Fp(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Fp(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function eh(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(Kp(e,a,r.leftColumns),Kp(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",h=c.get(R);h?h.push(E):c.set(R,[E])}let u={};for(let E of r.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",h=c.get(R)??[];if(h.length>0)for(let m of h)f.push({...m,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of r.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function Kp(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 th(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function Yp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Ur(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function nh(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,u)=>ih(c,l,i?.items[u],n,o)).join("\0"),p=a.get(d);p?p.push(l):a.set(d,[l])}a.size===0&&t.length===0&&Yp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let p of t)p.type==="ARITH_KEY"?d[Us(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));jp(d,l,n,r),s.push(d)}return s}function rh(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Bp(E,u),h=f.children.get(R);h||(h={children:new Map},f.children.set(R,h)),f=h}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Bp(R,u[0]));for(let R of t.allItems){let h=E.get(R.canonicalId)??"";f[R.directKey]=h,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=h)}jp(f,u,n,r),Xu(f,c),o.push(f)}}return o}function Bp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function jp(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(Ls(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??kn(i.expr);e[o]=String(ho(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Ur(i.expr)){let o=i.alias??Dt(i.expr),a=Ms(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=Ao(i.expr,t,r);e[o]=String(pe(a,e))}}function ih(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=go(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function Ls(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?qp(n,o):void 0,c=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let h of a)f.set(h,(f.get(h)??0)+1);let E="",R=0;for(let[h,m]of f){if(m>R){E=h,R=m;continue}if(m!==R)continue;let y=$t(h,E,c);(y<0||y===0&&Ct(h,E)<0)&&(E=h)}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 h=$t(R,E,c);(e==="MAX"&&h>0||e==="MIN"&&h<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,h)=>R-h),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,h=0,m=0;for(let g of u){let S=g-E;R++;let P=S-h;h+=P/R,m+=P*(S-h)}let y=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function oh(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 ho(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Ls(e.func,e.distinct,e.arg,e.separator,t,n));let r=ho(e.left,t,n),i=ho(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function kn(e){return er(e)}function qp(e,t){if(e.type==="FIELD_REF")return t?.(oh(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=>qp(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 ah(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function sh(e,t,n,r,i){if(e.length===0)return e;let o=lh(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 lh(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(fh(t,a,o))}function _s(e,t,n,r,i,o){return t.length===0?e:zp(e,t,n,r,i,o).rows.map(a=>a.row)}function zp(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(Jp.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:ph(p,d,o)}))})),l=(d,p)=>uh(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function uh(e,t,n,r){for(let i=0;i<n.length;i++){let o=ch(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function ch(e,t,n){return $t(e.s,t.s,n.semantics)}var Jp=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ph(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function Ds(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=kn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Ur(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(pe(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function vs(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>dh(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=zp(l,a.orderBy,n,r,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function dh(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function So(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function go(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??kn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Ur(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(pe(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function fh(e,t,n={}){return e.map((r,i)=>{let o=go(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 u=e.map(E=>{let R=Wp(Gp(E),a),h=go(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof h!="string")for(let[y,g]of h.entries)g!==null&&(m[y]=g);return m}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=mh(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:Eh(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:Rh(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Wp(Gp(u),a)),parentWildcardKeys:Object.keys(u).filter(h=>h.startsWith("_p.")).sort()};for(let[h,m]of t.entries()){let y=go(m,u,h,R);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof y!="string")for(let[g,S]of y.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof y!="string")for(let[g,S]of y.entries)S!==null&&(E[g]=S),f===0&&p.push(g);break}case"FIELD":{let g=d?.[h]??m.alias??s.get(h)??m.field;E[g]=y,d===null&&f===0&&p.push(g);break}case"LITERAL_COL":{let g=d?.[h]??m.alias??`'${m.value}'`;E[g]=y,d===null&&f===0&&p.push(g);break}case"AGGREGATE":{let g=we(m.func,m.distinct,m.arg),S=d?.[h]??m.alias??g;E[S]=y,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let g=d?.[h]??m.alias??kn(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"ARITH_COL":{let g=d?.[h]??m.alias??Us(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"CASE_COL":{let g=d?.[h]??m.alias??"case";E[g]=y,d===null&&f===0&&p.push(g);break}case"GROUPING_COL":{let g=d?.[h]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[g]=y,d===null&&f===0&&p.push(g);break}case"STRFUNC_COL":{let g=d?.[h]??m.alias??Dt(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"SCALAR_VALUE_COL":{let g=d?.[h]??m.alias??et(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=d?.[h]??m.alias??"(subquery)";E[g]=y,d===null&&f===0&&p.push(g);break}case"WINDOW_COL":{let g=d?.[h]??m.alias;E[g]=y,d===null&&f===0&&p.push(g);break}}}return E}),columns:p}}function Eh(e,t){return e.map((n,r)=>Xp(n,r,t))}function Rh(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=Xp(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Xp(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??kn(e.expr);case"ARITH_COL":return e.alias??Us(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function mh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=$p(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=$p(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 $p(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Gp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Us(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?H(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?kn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function yh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Ur(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Vp(t.result))||e.elseResult!==null&&Vp(e.elseResult):!1}function Vp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Ur(e){return e.args.some(t=>yh(t))}function hh(e,t,n){if(e.type==="AGG_REF"){let r=Ls(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=ho(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Ms(e,t,n):Ao(e,t,n)}function Ao(e,t,n){return e.type==="STRING_FUNC"?Ms(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ao(e.left,t,n),right:Ao(e.right,t,n)}:e}function Ms(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>hh(r,t,n))}}function Wp(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 Hp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Os(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function gh(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(Jp.has(n.expr.func)?"number":"string")));return t}function ks(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:h,plainGroupByPlan:m}=e,y=gh(t.columns);for(let[v,w]of a??[])y.set(v,w);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let b=Os(Hp(E?.get(S),S),void 0,g);for(let v of t.joins){let w=v.table.alias,k=(n.get(w)??[]).map(_=>dt(_,w)),N=Os(Hp(E?.get(w),w),void 0,k);g=eh(g,k,v,{leftColumns:b,rightColumns:N}),b=Os(b,N,g)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;g=th(g,L,s,u,l);let I=ne(t);if(I.type==="GROUPING_SETS"){if(!h)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=rh(g,h,t.columns,c,{maxGeneratedRows:5e4})}else(I.type==="PLAIN"||Yp(t.columns))&&(g=nh(g,I.type==="PLAIN"?I.allItems:[],t.columns,c,I.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=ah(g,t.having,d,p),g=vs(g,t.columns,i,o,y),t.distinct&&(g=sh(g,t.columns,r,s,l)),g=_s(g,t.orderBy,i,o,y,Ds(t.columns,r,s,l)),g=So(g,t.limit,t.offset),vr(g,t.columns,r,s,f,l,R)}function Qp(e,t){let n=[];for(let r of e){let i=Fs(r.$id?.value),o=Ah(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,p]of Object.entries(r)){if(d===t)continue;let c=Fs(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:Fs(p?.value)};n.push(l)}}return n}function Ah(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Fs(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 Zp(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function ed(e,t){let n=Mr(e);for(let[r,i]of Object.entries(t))n[r]=Mr(i);return n}function td(e){let t=[...e.preErrors.map(i=>xs(i)),...e.postImageErrors.map(i=>xs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>xs(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]=Mr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function xs(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 Mr(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(Mr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Mr(a,t);return i}function rd(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&Be(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function Bs(e){return rd(e,!0)}function To(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function Ve(e,t,n,r,i=!0,o=!0,a=r){let s=Bs(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:ue(e.where)}),To(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function kr(e,t,n,r,i=!0){e.left.type==="UNION"?kr(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function nd(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&kr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):kr(e.query,`${t}.main`,n,!0,!1)}function id(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":kr(e,t,n,r);return;case"WITH":nd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?nd(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?kr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":id(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Bs(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),To(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Bs(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=rd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}To(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:To(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Io(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function $s(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Sh(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)&&Mn(t)}function Th(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Ih(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return fn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function Ks(e,t){let n=e.functionNames[0],r=fn(n)?at:Ft,i=Ih(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function od(e,t){let n=[];id(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=Th(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ks(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=_e(p),f=await t.select(p),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Io(E,i.relativeFunctionOccurrences),h,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let P=await t.prefilterDecomposition(p);P?.eligible===!0&&$s(p,P)&&(h=P.plan,m=!0,R=!0)}let y;!R&&f.capability==="EXACT_PUSHDOWN"&&(y=Ii({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(h=y.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let P=await t.joinServerFunctionPlan(p);P!==null&&Sh(p,P)&&(g=P,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...h?{prefilterPlan:h,phase2PrefilterEligible:m}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(P=>P.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ks(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Io(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ks(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Gs(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:Ft,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function Vs(e,t,n={}){let r=Ce(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=xr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=wh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!bh(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=Nh(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,p=n.containsFunctions??Io,c=[];for(let g of a.leaves){let S=No(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let P;try{P=d(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(P,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(g)}let u=Ph(l.condition),f=new Set(c),E=bo(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let h=c.map(g=>No(g));if(!p(R,[...new Set(h)])||!Ch(R,h))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):Po(e.where,f);if(m!==null&&xr(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let g of h)y.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:c,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function wh(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}xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(No(o)===null)return;if(Ce(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":xr(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 No(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function xr(e){let t=[],n=r=>{if(r.type==="BINARY"&&No(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 bh(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 Ph(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 Fr={type:"BOOLEAN",value:!0};function Po(e,t){if(e.type==="BINARY"&&t.has(e))return Fr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Po(e.left,t)??Fr,r=Po(e.right,t)??Fr;return wo(n)?wo(r)?null:r:wo(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Po(e.expr,t)??Fr;return wo(n)?Fr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function wo(e){return e.type==="BOOLEAN"&&e.value}function Nh(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 Ch(e,t){let n=new Map;for(let r of t){if(!qn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function ad(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function Co(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function Oh(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function Lh(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
3
+ `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ye("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function xa(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||KR(t)}function uc(e){let t=e.codePointAt(0);return xa(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function KR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var pc=20,Ka=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),fc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Ba=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"}),dI=Object.freeze(Object.values(Ba).filter(e=>e!==void 0)),BR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),$R=new Set(BR);function GR(e){return $R.has(e)}var Ec=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Fi=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function dc(e){return Fi[e]!==void 0}var VR=Object.freeze([...Ai]),WR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),HR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function YR(e){return WR.has(e)}function jR(e){return HR.has(e)}function zR(e){return Number.isInteger(e)&&e>=1&&e<=31}var fI=Object.freeze(Array.from(new Set([...Object.keys(Ka),...fc,...Object.keys(Ba),...Object.keys(Ec),...Object.keys(Fi),...VR,"IF"]))),qR=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 JR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!qR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>pc)throw new T(`batch exceeds ${pc} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Fi[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)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let I=this.parseIdentifier();if(s.has(I))throw new T(`IMPORT target ${I} is declared more than once.`,this.prev());if(s.add(I),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new T(`IMPORT subtable ${I} contains duplicate child declarations.`,this.prev());let b;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:I,children:L,...b?{rowIdSourceHeader:b}:{}})}else a.push(I),o.push({kind:"FIELD",field:I});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let I=this.parseIdentifier().toUpperCase();if(I!=="UTF8"&&I!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=I==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==ze||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(I=>I.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let I of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(I))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;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("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let h=o.filter(I=>I.kind==="SUBTABLE");if(h.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(h.some(I=>I.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)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(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let I=new Set(g);for(let L of h){if(!L.rowIdSourceHeader)throw new T(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!I.has(L.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of I)if(!h.some(b=>b.subtableCode===L))throw new T(`REPLACE SUBTABLES target ${L} is not declared in INTO.`,this.prev())}}else if(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),w=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...S,...w}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&JR(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:ze},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||d!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return Ec[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"AGG_ARITH",left:Re("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Re(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Re(`${n.kind==="-"?"-":"+"}${H(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Re("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Re(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Re(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"ARITH",left:Re("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Re(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Ka[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Ka[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(fc.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=XR(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 Ba[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!GR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!YR(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!jR(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(!zR(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(dc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Fi[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Re(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Re(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=yu(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Re(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Re(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let u=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let u=this.matchUpdateFromJoin(p,n,r);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(dc(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||ki.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function XR(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function lt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}var QR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),ZR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function X(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":ZR.has(e.fieldType)?t="option":QR.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Pn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function 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 Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function em(e,t){return e<t?-1:e>t?1:0}function Rc(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function tm(e,t){let n=Rc(e),r=Rc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Ri(n.value,r.value):n.band===5&&r.band===5?Ct(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 nm(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=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function rm(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 yc(e,t){let n=t.optionOrder??new Map,i=[...new Set(rm(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(gc),i}function gc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function im(e,t,n){let r=yc(e,n),i=yc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=gc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return tm(e,t);case"recordNumber":return nm(e,t,n.fieldType==="RECORD_NUMBER");case"option":return im(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function hc(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?Ri(s,l):em(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function pe(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(pe(e.left,t,n,r)),o=Number(pe(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return Ic(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return pe(e,t,n,r)}}function Ki(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 om(e){return e>=55296&&e<=56319}function am(e){return e>=56320&&e<=57343}function $i(e,t){return t>0&&t<e.length&&om(e.charCodeAt(t-1))&&am(e.charCodeAt(t))}function Ac(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 Ga(e,t){let n=Math.min(Math.max(0,t),e.length);return $i(e,n)&&(n-=1),e.slice(0,n)}function sm(e,t){let n=Math.max(0,e.length-t);return $i(e,n)&&(n+=1),e.slice(n)}function lm(e,t,n){let r=Ac(t,e.length),i=Ac(n,e.length);return i<=r?"":($i(e,r)&&(r+=1),$i(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function um(e,t){let n=e.repeat(Math.ceil(t/e.length));return Ga(n,t)}var cm=200,cr=new Map;function pm(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 $a(e,t,n=!1){let r=pm(t)+(n?"g":""),i=`${e}\0${r}`,o=cr.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(cr.size>=cm){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function dm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function fm(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 Em(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function Rm(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),p=a.slice(0,d);return Em(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>Im(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ge("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return lm(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ge("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Ga(o,a)}case"RIGHT":{ge("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":sm(o,a)}case"INSTR":return ge("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ge(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Ga(o,a);let s=i[2]??" ";if(s==="")return o;let l=um(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ge(e.func,i,2),hc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ge("REGEXP_LIKE",i,2,3),$a(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ge("REGEXP_REPLACE",i,3,5),dm(i[2]);let o=fm(i[4]),a=$a(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Rm(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ge("REGEXP_SUBSTR",i,2,3),$a(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ge("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Ki("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Ki("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Ki("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ge("TRUNCATE",i,1,2),Ki("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 Sm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ge(e.func,i,1,1),Bi(i[0])?String(Va(i[0])+1):"";case"QUARTER":return ge(e.func,i,1,1),Bi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ge(e.func,i,1,1),Bi(i[0])?String(Tc(i[0])):"";case"DATE_FORMAT":return ym(i[0]??"",i[1]??"");case"DATEDIFF":return gm(i[0]??"",i[1]??"");case"DATE_ADD":return hm(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ge("LAST_DAY",i,1,1),Am(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ge(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function pr(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 Gi(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 Bi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Gi(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 Va(e){return Gi(e).getUTCDay()}function Sc(e){let t=Gi(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function mm(e){return Sc(e).getUTCFullYear()}function Tc(e){let t=Sc(e),n=t.getUTCFullYear(),r=Gi(`${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 ym(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pr(e),l=Bi(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(Va(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Va(e)]:"";case"%v":return l?String(Tc(e)).padStart(2,"0"):"";case"%G":return l?String(mm(e)).padStart(4,"0"):"";default:return d}})}function gm(e,t){if(e.length<10||t.length<10)return"0";let n=pr(e),r=pr(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 hm(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}=pr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function Am(e){if(!e||e.length<10)return e;let{y:t,mo:n}=pr(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 Sm(e,t){if(/^-?\d+$/.test(t.trim()))return Tm(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return n?E+"%":E}function Tm(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 Im(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(pe(e,t,n,r))}function ut(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function te(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return wm(e,t,n,r,i);case"NULL_CHECK":return Lm(e,t);case"LOGICAL":return _m(e,t,n,r,i);case"NOT":return!te(e.expr,t,n,r,i);case"GROUP":return te(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function wm(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=_c(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Pm(e.left,a,i);return bm(e.op,o,e.right,t,a,n,s,i)}function bm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(Om(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?H(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let p=Cm(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=Wa(n,r,o);return Lc(t,d)}if(e==="NOT_LIKE"){let d=Wa(n,r,o);return!Lc(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=Wa(n,r,o,s);return Gt(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 Pm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?X({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(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 B("number");if(o.type==="STRING_FUNC")return B(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)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var bc=new Set(["CHECK_BOX","MULTI_SELECT"]),Pc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Nm=new Set(["CREATOR","MODIFIER"]);function Cm(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Gt("=",e,a,o))}let i;if(bc.has(n)||Pc.has(n)||Nm.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return bc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Pc.has(n)?!Array.isArray(i)||!i.every(Nc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Nc(i)?t.has(i.code):r()}function Nc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Om(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${at}`)}function Lm(e,t){let n=_c(e.field,t);return e.not?n!=="":n===""}function _m(e,t,n,r,i){return e.op==="AND"?te(e.left,t,n,r,i)&&te(e.right,t,n,r,i):te(e.left,t,n,r,i)||te(e.right,t,n,r,i)}function _c(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function Wa(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 Dm(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Oc(i.result,t,n,r);return e.elseResult!==null?Oc(e.elseResult,t,n,r):""}function Ic(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Cc(i.result,t,n,r);return e.elseResult===null?null:Cc(e.elseResult,t,n,r)}function Cc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function Oc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(pe(e,t,n,r))}function Dc(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 Dm(e){throw J(e)?new Error(`${e}: ${Ft}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Vi=new Map,vm=200;function Lc(e,t){if(!Du(t))return e.includes(t);let n=Vi.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"),Vi.size>=vm&&Vi.clear(),Vi.set(t,n)}return n.test(e)}function Nn(e){return Uc(e)}function vc(e){return Uc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Uc(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 de("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 de("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 de(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Wi(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!te(a.condition,t,n))continue;let s=pe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ya(e){if(At(e))throw new Q("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var Um=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Mm=new Set(["CHECK_BOX","MULTI_SELECT"]);function Yi(e,t=new Map){let n=e.values.map(r=>km(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function km(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function fr(e){Ya(e.where);let t=jc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=Fm(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Fm(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:ct(i,t.get(r))});return n}function xc(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 ji(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 ja(e){Ya(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Kc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?za(n,t):n.type==="CASE_VALUE"&&Bc(n.expr,t);return jc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Kc(e,t){dr(e.left,t),dr(e.right,t)}function dr(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"?Kc(e,t):e.type==="STRING_FUNC"&&za(e,t)}function za(e,t){for(let n of e.args)xm(n,t)}function xm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ha(e,t);return}Cn(e,t)}function Cn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){za(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Cn(e.left,t),Cn(e.right,t);return}e.type==="CASE_WHEN"&&Bc(e,t)}function Ha(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Km(e.arg,t);return}e.type==="AGG_ARITH"&&(Ha(e.left,t),Ha(e.right,t))}function Km(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function Mc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function Bc(e,t){for(let n of e.branches)Hi(n.condition,t),Mc(n.result,t);e.elseResult!==null&&Mc(e.elseResult,t)}function Hi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&dr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Hi(e.left,t),Hi(e.right,t);break;case"NOT":case"GROUP":Hi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function qa(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=$c(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:Ja(d,a,n.get(l),i)};return{id:o,record:s}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function Ja(e,t,n,r){if(e.type==="ARITH")return String(r?Qa(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(pe(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Q("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function zi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Bm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Xa(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Q("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=$c(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Bm.has(c??""))throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new Q(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new Q(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:ct({type:"STRING",value:u},c)}}else{if(p.type==="STRING_FUNC")throw new Q("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[d]={value:String(Qa(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(pe(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Lt(p.expr,s,c)}:l[d]={value:ct(p,c)}}}return{id:a,record:l}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function $c(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Qa(e,t){let n=kc(e.left,t),r=kc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function kc(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 Qa(e,t);if(e.type==="STRING_FUNC")throw new Q("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new Q(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function Gc(e){return Ya(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Vc(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function Wc(e){return Um.has(e??"")}function $m(e){return Mm.has(e??"")}function Gm(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function Vm(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Hc(e,t){return Wc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):$m(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Gm(e):t==="DATE"?Vm(e):e}function Yc(e,t){return Wc(t)?e.map(n=>({code:n})):e}function Fc(e,t,n){return e.type==="ARRAY"?Yc(e.elements.map(r=>r.value),n):e.type==="STRING"?Hc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(pe(e,t))}function jc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Nn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(te(r.condition,t))return Fc(r.result,t,n);return e.elseResult!==null?Fc(e.elseResult,t,n):""}function ct(e,t){let n=Za(e,t);if(!n.ok)throw new Q(n.message);return n.value}function Za(e,t){try{return{ok:!0,value:Wm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Wm(e,t){switch(e.type){case"VARIABLE":throw new Q(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Q(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Hc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Yc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Q(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Q("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Q("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new Q("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new Q("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Q("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Q=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var es=new Set(["CHECK_BOX","MULTI_SELECT"]),Hm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function zc(e,t,n){let r=Ym(n.fieldType,e.field),i=jm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&mr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),p=a.filter(y=>!o.has(y)),c=[...d,...p],u=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,h=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&h&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=es.has(r)?c:c.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function Ym(e,t){return es.has(e)||Hm.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function jm(e,t,n){if(!Array.isArray(e))return mr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>es.has(t)?typeof i!="string"?mr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?mr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function Y(e){throw new Error(`ArgumentError: ${e}`)}function rs(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?Y("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return Y("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)ts(s.field,null,r),zm(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&Y(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?Y(`APPLY target ${s.field} is not a SUBTABLE.`):Y(`APPLY target ${s.field} does not exist as a top-level field.`);if(Ou(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&Y(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)ts(u.field,s.field,r,p),ns(u.value,s.field,r,p);c.selector.kind==="WHERE"&&ns(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),ts(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&ns(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function zm(e,t){yr(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 ts(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 ns(e,t,n,r){yr(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 qi(e,t){let n=pt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)yr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Ji(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=ep(i?.value);return n}function Jc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=as(n.$id?.value,"APPLY snapshot $id"),a=rs(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Qc(t,n,i,o)}function Xc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=as(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Qc(e,o,r,a)})}function Qc(e,t,n,r){let i=as(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let P=n.targetMultiValueFields.get(p.field);P||Y(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(zc(p,t[p.field]?.value,P));continue}let c=n.childrenByTable.get(p.field),u=ey(t,p.field),f=new Set;for(let P of u)P.id||Y(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(P.id)&&Y(`APPLY snapshot for ${p.field} contains duplicate _rid ${P.id}.`),f.add(P.id);let E=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":c.get(P.field)?.fieldType,R=[],m=[],y=[],g=new Set,h=new Set,S=new Set,w=p.operations.some(P=>P.kind==="REMOVE");for(let[P,D]of p.operations.entries()){if(D.kind==="APPEND"){let N=is(D,c,p.field);y.push({kind:"APPEND",addedRows:N.length}),m.push(...N);continue}if(D.kind==="REMOVE"){let N=Xm(D,u,E,p.field);D.expectRows&&qc(D.expectRows,N.length,r,p.field,P,D.kind),y.push({kind:"REMOVE",removedRows:N.length});for(let _ of N){let A=u[_].id;h.has(_)&&Y(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(_)&&Y(`APPLY removes row ${A} more than once.`),S.add(_)}continue}if(D.kind!=="PATCH")continue;let k=Jm(D,u,E,p.field);D.expectRows&&qc(D.expectRows,k.length,r,p.field,P,D.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let N of k){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),h.add(N);let A=Ji(_,N);for(let C of D.assignments){let x=`${_.id}\0${C.field}`;g.has(x)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),g.add(x),R.push({rowIndex:N,field:C.field,value:zi(C.value,A,E)})}}}let I=new Map;for(let P of R){let D=I.get(P.rowIndex)??{};D[P.field]={value:P.value},I.set(P.rowIndex,D)}let b=[...u.flatMap((P,D)=>S.has(D)?[]:[{id:P.id,value:{...P.value,...I.get(D)??{}}}]),...m],v={table:p.field,operations:y,changedSubtableRows:I.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:u.map(P=>P.id),postImageRows:b};w?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((P,D)=>S.has(D)?[P.id]:[]),payloadRows:b.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((P,D)=>{let k=I.get(D);return k?{id:P.id,value:k}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let s=ty(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:Ja(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function qc(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 Xi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return Y(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:Y(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:Y(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function is(e,t,n){return e.values.map(r=>({value:qm(e,r,t,n)}))}function qm(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?os(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function os(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 Jm(e,t,n,r){return Zc(e.selector,t,n,r)}function Xm(e,t,n,r){return Zc(e.selector,t,n,r)}function Zc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>te(i,Ji(l,d),n)?[d]:[]),a=Qm(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Zm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Qm(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 Zm(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 ey(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 as(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function ty(e){let t={};for(let[n,r]of Object.entries(e))t[n]=ep(r?.value);return t}function ep(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 yr(e,t){if(Array.isArray(e)){e.forEach(r=>yr(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))yr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Zi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function gr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),ny(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function tp(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function ny(e){let t=ss(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(ss(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");Qi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");Qi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=ss(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));Qi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");Qi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!ls(p.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(p=>!d.has(p)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function ss(e,t){let n=[...e],r=new Set;for(let i of n)i||re(`APPLY ${t} contains an empty row id.`),r.has(i)&&re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Qi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function ls(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)=>ls(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)&&ls(n[a],r[a]))}function np(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 rp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=np(t.digits,"digits",1,30),r=np(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function ip(e){return e.sign===0?{integerDigits:0,fractionDigits:0}:{integerDigits:Math.max(e.coefficient.length-e.scale,0),fractionDigits:Math.max(e.scale,0)}}var ry=new Set(["CHECK_BOX","MULTI_SELECT"]),iy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ne(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=oy(e);if(i!==""&&!ay(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=hr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:sy(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=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&mi(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&&mi(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=ip(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!eo(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!eo(r)&&iy.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function oy(e){return e==null?"":to(e)&&e.type==="NUMBER"?H(e):to(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function ay(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function hr(e,t){if(to(e)){let r=Za(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(ry.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 to(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(to(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 sy(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var On=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function us(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(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=hr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function cs(e,t,n,r,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(m=>[m.code,m])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&us(e,r,i);let R;for(let m of e){m.record??={};let y=d?[...m.preErrors]:[],g=[],h=[],S=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let b of r){if(!m.payload.has(b))continue;let v=m.payload.get(b),P=c.get(b).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(P)&&Array.isArray(v)&&v.every(N=>typeof N=="object"&&N!==null&&"code"in N);if(!S)continue;let k=Ne(v,c.get(b),a);k.ok?m.record[b]={value:D?v:k.value}:g.push({field:b,code:k.code,message:k.message})}if(l&&m.mode==="create")for(let b of i){if(b.inSubtable||m.payload.has(b.code))continue;if(Wt(b.defaultValue)){let P=Ne("",b,a);P.ok?b.required&&g.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:b.code,code:P.code,message:P.message})}else{let P=Ne(b.defaultValue,b,a);P.ok||g.push({field:b.code,code:P.code,message:`\u65E2\u5B9A\u5024: ${P.message}`})}}if(s.length>0){let b=m.evaluationRow??Object.fromEntries([...m.payload].map(([D,k])=>[D,qe(k)])),v=m.evaluationFieldTypes,P=D=>{let k=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(k)??v?.get(D.field)};try{for(let D of Wi(s,b,P))h.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){R??=D}}let w=b=>b.map(v=>{let P={};for(let D of n)P[D]=qe(m.payload.get(D));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(m.rowNumber),P.$err_field=v.field,P.$err_code=v.code,P.$err_message=v.message,P.$err_value="",P.$err_subtable="",P.$err_subrow="",P.$err_subrow_id="",P}),I={rowNumber:m.rowNumber,preErrors:w(y),builtInErrors:w(g),checkErrors:w(h)};E.push(I);let L=[...I.preErrors,...I.builtInErrors,...I.checkErrors];L.length>0&&f.add(m.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function qe(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var ps=["required","length","range","choice"];function ds(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 fs(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 ly(e){return ds(e).length>0}function uy(e){return e.fieldType==="NUMBER"||ly(e)}function no(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Es(e,t){let{topByCode:n,childrenByTable:r}=fs(t),i=uy;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(d);if(p?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ar(e,t){return Wt(e)?"":qe(hr(e,t))}var cy=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Sr=On;function Je(e,t=["$id"]){let n=fs(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!cy.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Ht(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Yt(e,t,n,r,i=1,o="UPDATE"){let a=py(e),s=[],l=new Set,d=[...t.payloadFields,...Sr],p=qe(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?p:qe(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=u.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Ar(f,u.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Ne(f,u,n);E.ok?a[u.code]={value:op(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let m=0;m<E.length;m++){let y=E[m],g=R[m];for(let h of f){let S=y.value?.[h.code]?.value,w=Ne(S,h,n);w.ok?(g.value??={},g.value[h.code]={value:op(S,h.fieldType,w.value)}):c(h,S,w,no(u,m,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function op(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function py(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 ro(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;ap(o,"dmlMaxRows"),ap(a,"dmlMaxSubtableRows");for(let h of n)Zi(h);let l=Xc(t,n,r,i),d=Je(r,t.assignments.map(h=>h.field)),p=l.some(h=>Ht(h.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((h,S)=>Yt(h.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let h=u.flatMap(S=>S.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:h})}`)}let f=l.length,E=l.reduce((h,S)=>h+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((h,S)=>Xi(h,u[S].normalizedRecord)),y=m.flatMap(h=>gr(h).records),g=u.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return sp({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function ap(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function sp(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))sp(n,t);return Object.freeze(e)}var Rs=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function io(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)lp(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return Xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),lp(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function dy(e,t,n=io(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Yi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(p=>is(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Rs.has(c.fieldType)||(d[c.code]=s[c.code]??{value:os(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Tr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;up(r,"dmlMaxRows"),up(i,"dmlMaxSubtableRows");let a=e.metadata??io(t,n),s=dy(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!Rs.has(S.fieldType)),d=Je(l,t.fields),p=s.some(S=>Ht(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(w=>w.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,w)=>S+w.tables.reduce((I,L)=>I+L.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,w)=>{let I=u[w].normalizedRecord,L={};for(let b of t.fields)L[b]=I[b];for(let b of S.tables){let v=I[b.table]?.value;L[b.table]={value:b.rows.map((P,D)=>({value:Object.fromEntries(Object.keys(P.value).map(k=>[k,v[D]?.value?.[k]??P.value[k]]))}))}}return{...S,postImage:I,record:L}}),y=m.map(S=>S.record),g=[];for(let S=0;S<y.length;S+=100)g.push({app:t.appId,records:y.slice(S,S+100)});let h=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return cp({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:h,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function lp(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Rs.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function up(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function cp(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))cp(n,t);return Object.freeze(e)}async function dp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;pp(i,"dmlMaxRows"),pp(o,"dmlMaxSubtableRows"),yy(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=fy(t,s.map(y=>y.sourceRowIndex)),p=await Tr({statement:d,fieldInfos:r,metadata:io(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let y of l){let g=y.targetId;u.has(g)&&ms(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),u.add(g),y.snapshot||ms(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let h=Number(y.snapshot.$id?.value);h!==g&&ms(`UPSERT APPLY snapshot $id ${h} does not match target $id ${g}.`);let S=Ey(t,y.sourceRowIndex,g),w=S.applyBlocks?.length?pt(S,r):Ry(r);c.push(await ro({statement:S,snapshots:[y.snapshot],fieldInfos:r,metadata:w,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=my(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...p.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.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 ys({create:p,update:f,createBatches:p.batches,updateBatches:gy(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function fy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Ey(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 Ry(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function my(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 ys({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 yy(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 gy(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 pp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ms(e){throw new Error(`ArgumentError: ${e}`)}function ys(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))ys(n,t);return Object.freeze(e)}function wr(e){return Ln("UPDATE",[Rp(e)])}function gs(e){return Ln("INSERT",[Ep(e)])}function hs(e){return Ln("UPSERT",[Ep(e.create),Rp(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ao(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[oo("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[oo("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[oo("insert",e.onInsertApplyBlocks??[],null,!1,t,n),oo("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Ep(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 Rp(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:fp(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:fp(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function fp(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:Ir(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ir(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ir(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ir(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ir(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ir(e,t){return e==null||t===null?null:e+t}function oo(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>hy(f,n)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function hy(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var Qe=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function mp(e,t,n){yn("phase10c");let r=tp(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function yp(e,t,n){yn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function gp(e,t,n){yn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});r.push(p.ids)}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var Ay=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Sy(e){if(!Ay.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 Ty(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Sy(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 As(e,t){let n=Ty(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 Iy(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 Ss(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 Iy(i)?!0:Object.values(i).some(n)};return n(e)}function hp(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 Ap(e,t){let n=ne(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return so(e.left);case"NULL_CHECK":return so(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function 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 Ge(e,t,n,r,i){let o=await Ie(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function lo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:Ru(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],wy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),by=new Set(Me),Py=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"])]]),Ny=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Cy=["=","!=","in","not in"],Oy=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(Cy)]]),Ly=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"])]]),Ip=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),wp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function _y(e){return Oy.get(e)??new Set}function Ce(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Pr(e,t)}function Pr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Dy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Is():My(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Is();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Pp(n.reasons)?Cr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Pr(e.left,t),r=Pr(e.right,t);return Fy(e.op,n,r)}}}function Dy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return vy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Sp(n))return Tp(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Tp(e,t,p[0],r):uo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Nr(e))}if(t.type!=="FIELD")return Is();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Nr(e));let o=Nr(e);if(!bp(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!ky(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=_y(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Sp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function Sp(e){return e.type==="KINTONE_FUNC"&&kt.has(e.name)}function Tp(e,t,n,r){let i=Nr(e),o=n.name;if(!kt.has(o)||t.type!=="FIELD")return uo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Py.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?uo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Ny.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:uo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function vy(e,t,n,r){let i=Nr(e),o=n.name;if(t.type!=="FIELD")return br("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Uy(n)?by.has(i)?!wy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?br("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}]}:br("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Uy(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 My(e,t,n){let r=n(e);return r?bp(r.fieldType,t)?!Ip.has(r.fieldType)&&!wp.has(r.fieldType)?_n("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:_n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):_n("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function bp(e,t){let n=Ly.get(e);return n===void 0||n.has(t)}function ky(e,t){return Ip.has(e)?!0:wp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Nr(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 Fy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Cr({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")?Cr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Cr({capability:"LOCAL_ONLY",reasons:r})}function Is(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _n(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function uo(e,t,n,r,i){return Cr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function br(e,t,n,r,i){return Np({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Pp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function xy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&kt.has(t.functionName))}function Np(e){if(e.capability==="EXACT_PUSHDOWN"||!Pp(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 Ky(e){if(e.capability==="EXACT_PUSHDOWN"||!xy(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 Cr(e){return Ky(Np(e))}var By=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),$y=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Gy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function vn(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?Op(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"}):Op(n[0],e.field)}function bs(e,t){if(e.left.type!=="FIELD")return Or();let n=vn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Or();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ce(e,a=>{let s=vn(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:X({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Or();let o=jy(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function Lp(e,t){let n=ue(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=vn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ce(e,o=>{let a=vn(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:X({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function _p(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:Up(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Vy(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Yy(e,t)),fetchQueriesByAlias:new Map,...o})}function Dp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!zt(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,Un(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=Un({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!zt(mo(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 Mn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!zt(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&&!zt(mo(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))||vp(Hy(e))!==e.allKlikes.length))}function Vy(e,t){if(e===null)return Cp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Cp(e);let r=Wy(e,t,n);if(r!==null)return r;let i=fo(e),o=[],a=new Set;for(let c of i){let u=Lp(c,t);if(u.relation!=="function-leaf-exact")continue;let f={targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,relation:"exact"},E;try{E=Un(f,t)}catch{continue}let R=mo(E);zt(R,u.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:u.functionOccurrences,relation:u.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Eo(e,a),l=Object.freeze(s===null?[]:[...ue(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=zt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function Wy(e,t,n){let r=co(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Un(i,t)}catch{return null}if(!zt(mo(o),n))return null;let a=new Set;if(jt(e,a),vp(o)!==a.size)return null;let s=Object.freeze(po(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function co(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=Lp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=bs(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=co(e.left,t),r=co(e.right,t);return n!==null&&r!==null&&yo(n,r)?n:null}case"GROUP":case"NOT":return co(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function po(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...po(e.left),...po(e.right)];case"GROUP":case"NOT":return po(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Cp(e){let t=e===null?[]:ue(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function fo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...fo(e.left),...fo(e.right)]:[];case"GROUP":return fo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Eo(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Eo(e.left,t),r=Eo(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=Eo(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function mo(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 zt(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 vp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Hy(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Yy(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=vn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ro(i.right)){n.add("CROSS_TABLE_BINARY");return}bs(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(xp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!yo(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Un(e,t){return Lr(e.predicate,e,t),G(e.predicate)}function Lr(e,t,n){switch(e.type){case"LOGICAL":Lr(e.left,t,n),Lr(e.right,t,n);return;case"GROUP":Lr(e.expr,t,n);return;case"NOT":Lr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ro(e.right))throw ws(t,"predicate contains a non-target or RHS field reference");let r=vn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw ws(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw ws(t,"predicate shape is outside the Phase A serializer contract")}}function ws(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Dn(e,t){switch(e.type){case"BINARY":{let n=bs(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Dn(e.left,t),r=Dn(e.right,t);if(e.op==="AND")return Up([...n,...r]);if(xp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return yo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Mp(i.relation,o.relation)}]:[]}case"GROUP":return Dn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Up(e){let t=[];for(let n of e){let r=t.findIndex(o=>yo(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:Mp(i.relation,n.relation)}}return t}function jy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return $y.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return zy(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===">")&&kp(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||Gy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?Fp(e.right.value)?"superset":"unsafe":n==="TIME"?qy(e.right.value)?"superset":"unsafe":Jy(e.right.value)?"superset":"unsafe";if(By.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 Op(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Or(){return Object.freeze({relation:"unsafe"})}function yo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Mp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function zy(e){return e.type==="NUMBER"&&kp(e)&&e.value>0}function kp(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function Fp(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 qy(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Jy(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Fp(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function xp(e){let t=new Set;return jt(e,t),t.size>0}function Ro(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ro);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ro)}function Ps(e,t){let n=or(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function Xy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Qy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(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=Xy(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"&&!Qy(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 Zy=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 eg(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Dr(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(eg(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}Zy.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 go=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"}},ho=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}},Ao=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 Kp(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 Ao(a).message}}return{records:n,cleanupWarning:o}}function Ns(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var Bp=["$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 Cs(e){return e.startsWith("_")||e.startsWith("$")}var tg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ls(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ls);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"?tg.test(t.field):Object.values(t).some(Ls)}function ng(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 lr(e)||Ls(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var rg=["_pid","_rid","_idx"];function Os(e){return[...new Set(e)]}function ig(e){switch(e.kind){case"APP":return Os([...e.fieldCodes,...Bp]);case"SUBTABLE":return Os([...e.childFieldCodes,...rg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Os(e.columns)}}function $p(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:ig(t(r,i))}))}function og(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 ag(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function sg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function lg(e,t,n){let r=og(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:ag(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>sg(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=ng(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Gp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?lg(r.name,t,n):{kind:"EXPRESSION"})}}var ug={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 Vp(e,t){let n=ug[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 Wp(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=>Vp(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Vp(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function cg(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(Hp(e,a,r.leftColumns),Hp(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",m=c.get(R);m?m.push(E):c.set(R,[E])}let u={};for(let E of r.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",m=c.get(R)??[];if(m.length>0)for(let y of m)f.push({...y,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of r.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function Hp(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 pg(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function Qp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Ur(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function dg(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,u)=>Eg(c,l,i?.items[u],n,o)).join("\0"),p=a.get(d);p?p.push(l):a.set(d,[l])}a.size===0&&t.length===0&&Qp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let p of t)p.type==="ARITH_KEY"?d[ks(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));Zp(d,l,n,r),s.push(d)}return s}function fg(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Yp(E,u),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Yp(R,u[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}Zp(f,u,n,r),rc(f,c),o.push(f)}}return o}function Yp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Zp(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(Ds(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??kn(i.expr);e[o]=String(So(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Ur(i.expr)){let o=i.alias??Dt(i.expr),a=Fs(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=Io(i.expr,t,r);e[o]=String(pe(a,e))}}function Eg(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=To(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function Ds(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?ed(n,o):void 0,c=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let g=$t(m,E,c);(g<0||g===0&&Ct(m,E)<0)&&(E=m)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let m=$t(R,E,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,m=0,y=0;for(let h of u){let S=h-E;R++;let w=S-m;m+=w/R,y+=w*(S-m)}let g=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(g):g}}}function Rg(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 So(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Ds(e.func,e.distinct,e.arg,e.separator,t,n));let r=So(e.left,t,n),i=So(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function kn(e){return er(e)}function ed(e,t){if(e.type==="FIELD_REF")return t?.(Rg(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=>ed(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 mg(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function yg(e,t,n,r,i){if(e.length===0)return e;let o=gg(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 gg(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(Ig(t,a,o))}function vs(e,t,n,r,i,o){return t.length===0?e:td(e,t,n,r,i,o).rows.map(a=>a.row)}function td(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(nd.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:Sg(p,d,o)}))})),l=(d,p)=>hg(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function hg(e,t,n,r){for(let i=0;i<n.length;i++){let o=Ag(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Ag(e,t,n){return $t(e.s,t.s,n.semantics)}var nd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Sg(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function Us(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=kn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Ur(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(pe(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Ms(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>Tg(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=td(l,a.orderBy,n,r,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function Tg(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function wo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function To(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??kn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Ur(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(pe(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function Ig(e,t,n={}){return e.map((r,i)=>{let o=To(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 u=e.map(E=>{let R=Jp(zp(E),a),m=To(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[g,h]of m.entries)h!==null&&(y[g]=h);return y}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=Pg(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:wg(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:bg(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Jp(zp(u),a)),parentWildcardKeys:Object.keys(u).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let g=To(y,u,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof g!="string")for(let[h,S]of g.entries)S!==null&&(E[h]=S);break;case"PARENT_WILDCARD":{if(typeof g!="string")for(let[h,S]of g.entries)S!==null&&(E[h]=S),f===0&&p.push(h);break}case"FIELD":{let h=d?.[m]??y.alias??s.get(m)??y.field;E[h]=g,d===null&&f===0&&p.push(h);break}case"LITERAL_COL":{let h=d?.[m]??y.alias??`'${y.value}'`;E[h]=g,d===null&&f===0&&p.push(h);break}case"AGGREGATE":{let h=we(y.func,y.distinct,y.arg),S=d?.[m]??y.alias??h;E[S]=g,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let h=d?.[m]??y.alias??kn(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"ARITH_COL":{let h=d?.[m]??y.alias??ks(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"CASE_COL":{let h=d?.[m]??y.alias??"case";E[h]=g,d===null&&f===0&&p.push(h);break}case"GROUPING_COL":{let h=d?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[h]=g,d===null&&f===0&&p.push(h);break}case"STRFUNC_COL":{let h=d?.[m]??y.alias??Dt(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"SCALAR_VALUE_COL":{let h=d?.[m]??y.alias??et(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=d?.[m]??y.alias??"(subquery)";E[h]=g,d===null&&f===0&&p.push(h);break}case"WINDOW_COL":{let h=d?.[m]??y.alias;E[h]=g,d===null&&f===0&&p.push(h);break}}}return E}),columns:p}}function wg(e,t){return e.map((n,r)=>rd(n,r,t))}function bg(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=rd(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function rd(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??kn(e.expr);case"ARITH_COL":return e.alias??ks(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function Pg(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=jp(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=jp(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 jp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function zp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function ks(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?H(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?kn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function Ng(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Ur(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>qp(t.result))||e.elseResult!==null&&qp(e.elseResult):!1}function qp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Ur(e){return e.args.some(t=>Ng(t))}function Cg(e,t,n){if(e.type==="AGG_REF"){let r=Ds(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=So(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Fs(e,t,n):Io(e,t,n)}function Io(e,t,n){return e.type==="STRING_FUNC"?Fs(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Io(e.left,t,n),right:Io(e.right,t,n)}:e}function Fs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Cg(r,t,n))}}function Jp(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 Xp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function _s(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Og(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(nd.has(n.expr.func)?"number":"string")));return t}function xs(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y}=e,g=Og(t.columns);for(let[v,P]of a??[])g.set(v,P);let h=[],S=t.from.alias;h=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let I=_s(Xp(E?.get(S),S),void 0,h);for(let v of t.joins){let P=v.table.alias,k=(n.get(P)??[]).map(_=>dt(_,P)),N=_s(Xp(E?.get(P),P),void 0,k);h=cg(h,k,v,{leftColumns:I,rightColumns:N}),I=_s(I,N,h)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;h=pg(h,L,s,u,l);let b=ne(t);if(b.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");h=fg(h,m,t.columns,c,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Qp(t.columns))&&(h=dg(h,b.type==="PLAIN"?b.allItems:[],t.columns,c,b.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return h=mg(h,t.having,d,p),h=Ms(h,t.columns,i,o,g),t.distinct&&(h=yg(h,t.columns,r,s,l)),h=vs(h,t.orderBy,i,o,g,Us(t.columns,r,s,l)),h=wo(h,t.limit,t.offset),vr(h,t.columns,r,s,f,l,R)}function id(e,t){let n=[];for(let r of e){let i=Ks(r.$id?.value),o=Lg(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,p]of Object.entries(r)){if(d===t)continue;let c=Ks(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:Ks(p?.value)};n.push(l)}}return n}function Lg(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Ks(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function od(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function ad(e,t){let n=Mr(e);for(let[r,i]of Object.entries(t))n[r]=Mr(i);return n}function sd(e){let t=[...e.preErrors.map(i=>Bs(i)),...e.postImageErrors.map(i=>Bs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Bs(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]=Mr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Bs(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 Mr(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(Mr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Mr(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"&&Be(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function Gs(e){return ud(e,!0)}function bo(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function Ve(e,t,n,r,i=!0,o=!0,a=r){let s=Gs(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:ue(e.where)}),bo(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function kr(e,t,n,r,i=!0){e.left.type==="UNION"?kr(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function ld(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&kr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):kr(e.query,`${t}.main`,n,!0,!1)}function cd(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":kr(e,t,n,r);return;case"WITH":ld(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?ld(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?kr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":cd(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Gs(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),bo(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Gs(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=ud(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}bo(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:bo(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Po(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Vs(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function _g(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)&&Mn(t)}function Dg(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function vg(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return fn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function $s(e,t){let n=e.functionNames[0],r=fn(n)?at:Ft,i=vg(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function pd(e,t){let n=[];cd(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=Dg(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:$s(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=_e(p),f=await t.select(p),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Po(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let w=await t.prefilterDecomposition(p);w?.eligible===!0&&Vs(p,w)&&(m=w.plan,y=!0,R=!0)}let g;!R&&f.capability==="EXACT_PUSHDOWN"&&(g=Pi({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,g&&(m=g.prefilterPlan,R=!0));let h;if(!R&&t.joinServerFunctionPlan){let w=await t.joinServerFunctionPlan(p);w!==null&&_g(p,w)&&(h=w,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...g?{fullScanExactPlan:g,allowForm:g.allowForm}:{},...h?{joinServerFunctionPlan:h,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:h.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(w=>w.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:$s(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Po(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:$s(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Ws(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:Ft,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function Hs(e,t,n={}){let r=Ce(e.where,t),i=(h,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:h,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=xr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Ug(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Mg(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=Fg(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,p=n.containsFunctions??Po,c=[];for(let h of a.leaves){let S=Lo(h);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let w;try{w=d(h)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(w,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(h)}let u=kg(l.condition),f=new Set(c),E=Co(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(h=>Lo(h));if(!p(R,[...new Set(m)])||!xg(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Oo(e.where,f);if(y!==null&&xr(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let h of m)g.add(h);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:c,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Ug(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}xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Lo(o)===null)return;if(Ce(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":xr(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 Lo(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function xr(e){let t=[],n=r=>{if(r.type==="BINARY"&&Lo(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 Mg(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 kg(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 Co(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=Co(e.left,t,n),i=Co(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Co(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Fr={type:"BOOLEAN",value:!0};function Oo(e,t){if(e.type==="BINARY"&&t.has(e))return Fr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Oo(e.left,t)??Fr,r=Oo(e.right,t)??Fr;return No(n)?No(r)?null:r:No(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Oo(e.expr,t)??Fr;return No(n)?Fr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function No(e){return e.type==="BOOLEAN"&&e.value}function Fg(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 xg(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 K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function dd(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function _o(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function Kg(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function Bg(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
4
4
  `)throw new K(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new K(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
5
5
  `){d==="\r"&&e[a+1]===`
6
- `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function _h(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new K(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new K(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Oo(e,t){let n=Lh(Oh(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}`)),_h(r),i.length===0)throw new K("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new K(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var Dh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),vh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Kr=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 sd(e,t,n){if(!Dh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Kr;return vh.has(t??"")?r.map(i=>({code:i})):r}function ft(e,t,n,r){throw new K(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function ld(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function ud(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
6
+ `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function $g(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new K(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new K(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Do(e,t){let n=Bg(Kg(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}`)),$g(r),i.length===0)throw new K("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new K(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var Gg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Vg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Kr=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function fd(e,t,n){if(!Gg.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Kr;return Vg.has(t??"")?r.map(i=>({code:i})):r}function ft(e,t,n,r){throw new K(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function Ed(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function Rd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
7
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
8
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let u="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ft("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),h={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
- `,r:"\r",t:" "};if(R in h){u+=h[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let m=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(m)||ft("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let y=Number.parseInt(m,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let P=0;P<4;P++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(y-55296<<10)+S-56320)}else y>=56320&&y<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):u+=String.fromCharCode(y)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function Lo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function _o(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=ud(ld(e)),n=0,r=(d,p=t[n])=>{throw new K(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[n];(p.kind!=="punct"||p.value!==d)&&r(`expected ${d}; found ${Lo(p)}`,p),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Lo(c)}`,c);let u=c.value;p.has(u)&&r(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${Lo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Lo(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,p)=>{if(!(d instanceof Map))throw new K(`JSON record ${p+1} must be an object.`)}),l}var Uh=new Set(["CHECK_BOX","MULTI_SELECT"]),cd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function Mh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function kh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),Mh(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Uh.has(t.fieldType)&&!cd.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),cd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ws(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=_o(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let u of l.keys())o.has(u)||tt(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of n)l.has(u.code)&&(c.add(u.code),p[u.code]=kh(l.get(u.code),u,d+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Hs(e,t,n,r,i,o){let a=Oo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((m,y)=>[m,y]));for(let m of r)if(!l.has(m))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),p=new Set(r);if(o&&p.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],u=[],f=m=>a.rows.filter(y=>y[m]!=="").length,E=m=>m.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":m.inSubtable||m.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":m.writable===!1?`non-writable ${m.fieldType} field`:`known export-only ${m.fieldType} field`;for(let[m,y]of a.columns.entries()){if(p.has(y)||y===o)continue;let g=d.get(y);if(g)c.push({column:y,reason:E(g),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)u.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let m of r){let y=d.get(m);if(!y)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${y.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let y=[],g={};for(let S of r){let P=m[l.get(S)];try{g[S]=sd(P,d.get(S)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof Kr))throw b;g[S]=P,y.push({field:S,code:b.code,message:b.message})}}return R.push(y),g}),columns:[...r],columnMeta:new Map(r.map(m=>[m,{fieldType:d.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Br=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function pd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=_o(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let p=d+1;for(let E of l.keys())a.has(E)||Br(p,E,"unknown key (not declared in INTO).");let c=new Map,u=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let h=l.get(R);if(E.kind==="FIELD"){h instanceof Map&&Br(p,R,"object is not accepted for a top-level field."),c.set(R,h);continue}Array.isArray(h)||Br(p,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),y=h.map((g,S)=>{g instanceof Map||Br(p,R,`childRow=${S+1} must be an object.`);let P=g;for(let b of P.keys())m.has(b)||Br(p,b,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:P}});u.set(R,y)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function dd(e,t,n,r,i,o){let a=Oo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((u,f)=>[u,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(u=>u.kind==="FIELD"),d=n.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(h=>[h.field,u[s.get(h.field)]])),subtables:new Map(d.map(h=>[h.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let h of l){let m=u[s.get(h.field)];if(m!==""&&m!==c.top.get(h.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${h.field} at source row ${E}.`)}if(o){let h=u[s.get(o)];if(h!==""&&h!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let h of d){let m=u[s.get(h.rowIdSourceHeader)],y=new Map(h.children.map(S=>[S,u[s.get(S)]]));if(m===""&&[...y.values()].every(S=>S===""))continue;let g=c.subtables.get(h.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:y})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var Fh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),xh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qs(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function md(e,t,n,r,i){let o=new Map(n.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of n)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)fd(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)fd(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>Kh(u,s,l,o,a,r,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function Kh(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&js(e.top.get(u.field),r.get(u.field),o,d,u.field,l,Ys(e,a,u.field));let p={};if(a==="INSERT")for(let u of r.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||Ed(u,o,p,l,Ys(e,a,u.code));let c=new Map;for(let u of n){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let h=l.length,m={},y=i.get(u.subtableCode);for(let g of u.children){let S=y.get(g),P=Ys(e,a,g,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?js(R.values.get(g),S,o,m,g,l,P):Ed(S,o,m,l,P)}l.length===h?(f.validChildRows++,E.push(m)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function fd(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&&xh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Ed(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;js(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function js(e,t,n,r,i,o,a,s=!1){let l=Bh(e),d=Ne(l,t,n);d.ok?r[i]={value:$h(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Bh(e){return Rd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Rd(t)?t.lexeme:t):e}function Rd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function $h(e,t){return Fh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Ys(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 zs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Js(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Gh(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 Gh(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 Xs(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 yd(e,t){return Xs(e,t,"DROP")}function hd(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 gd(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function Vh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Ad(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 Sd(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=Vh(d.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),h=s.subtables.get(f)??[],m=o.subtables.get(f)??[],y=0,g=0,S=0,P=h.map((b,L)=>{let I=m[L]??{};return b.rowId&&R.has(b.rowId)?(y++,{rowId:b.rowId,record:I}):(b.rowId&&((i.get(b.rowId)??[]).some(w=>w.parentId!==l||w.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),S++),g++,{record:I})});c.set(f,P),u.push({table:f,existingRows:E.length,inputRows:h.length,updateRows:y,addRows:g,deleteRows:E.length-y,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var Qs="#__import_source";function Td(e){return{...e,from:{appId:0,alias:null,cteName:Qs}}}function Wh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Zs(e,t){let n=e.map(Wh),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 Hh="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",tn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},fe=new WeakMap;function xd(e){return fe.get(e)}var sn=new WeakMap,qo=new WeakMap,Id=new WeakMap,Yh=1,jh=1;function Kd(e,t){if(t)return t;let n=Id.get(e);return n||(n=`client:${Yh++}`,Id.set(e,n)),n}function Pl(e){return`${e}\0inv:${jh++}`}async function Nl(e,t,n={}){let r=Date.now(),i=Pl(Kd(t,n.cacheContext));try{let o=vA(e,n.enableImport===!0),a=Bd(),s=Gd(t,a),l={aborted:!1},d=Ol(s,l,!zh(o)||gs(o)),p=await ol(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...Vd(p,l),metrics:a};if(p.type==="SELECT"){let u=fe.get(p);u&&fe.set(c,u)}return c}finally{Wl(i)}}function Bd(){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 $d=Symbol("limitMetricsSink");function Cl(e,t){let n=e[$d];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Gd(e,t){return{[$d]: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 wd=Symbol("searchAbortFailClosed");function Ol(e,t,n){return n&&e[wd]?e:{...e,...n?{[wd]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function qh(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 zh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Vd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Hh),{...e,warnings:[...n]}}async function bd(e,t,n){let r=await ni(e,t,n);return Gs(r),r}async function ni(e,t,n){return od(e,{select:r=>qr(r,t,n),dml:r=>Xd(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return Vs(r,i)},joinServerFunctionPlan:async r=>{let i=await Xo(r,t,n),o=Jo(r,i);return o===null?null:(Mn(o.joinPlan)&&Fl.set(r,o),o.joinPlan)}})}async function ol(e,t,n,r){let i=await ni(e,t,r);e.type!=="EXPLAIN"&&Gs(i);let o=sl(e);if(o!==null&&!pA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),gi("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await sg(e,t,r),e.type==="IMPORT")return Af(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 Tl(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 Yl(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 Jh(e,t,n,r);case"SELECT":return vt(pl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return cf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Gl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return oA(e,t,n,r);case"INSERT_SELECT":return Jl(e,t,n,r);case"UPSERT":return wA(e,t,n,r);case"UPSERT_SELECT":return Zl(e,t,n,r);case"UPDATE":return Tl(e,t,n,r);case"DELETE":return IA(e,t,n,r);case"REORDER":return LA(e,t,n,r);case"SHOW_APPS":return bf(t);case"DESCRIBE":return Pf(e,t,r);case"EXPLAIN":return FA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se):Se,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return qd(e,t,n,r)}}var Ll=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],_l=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Dl(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 Wd(e=!1){let t=e?_l:Ll;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function Jh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Hd(e,t,n,r)}async function Hd(e,t,n,r){let i=await ee(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=ds(e,i),l=new Set(s.flatMap(O=>cs(O.field))),d={present:us.filter(O=>l.has(O)),absent:us.filter(O=>!l.has(O))},p=e.checkGroups??[],c=Nn(p);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([O,F])=>[O,F.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=Dl(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(O=>O.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,h=O=>O.field==="$id"?X({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?X(o.get(O.field)):void 0),m=Ce(e.where,h);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),g=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:m.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:g,allowKlike:!1}),P=S===null?"":G(S),L=(await Ie(t.getRecords,e.appId,P,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:dt(O,null)})).filter(O=>e.where===null||te(e.where,O.flat,F=>u.get(F.field))),I=[],v=new Map,w=new Map,D=new Set,k=0,N=O=>{if(D.add(O.id),k+=1,e.summary){let z=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=w.get(z);U?U.$err_count=String(Number(U.$err_count)+1):w.set(z,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=v.get(F);j?(j.$err_count=String(Number(j.$err_count)+1),O.subrow!==void 0&&(j.$err_subrow=`${j.$err_subrow},${O.subrow}`,j.$err_subrow_id=`${j.$err_subrow_id},${O.subrowId??""}`)):v.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of L){for(let F of _){let j=O.record[F.field.code]?.value,z=Ne(j,F.field,R);z.ok||N({id:O.id,field:F.field.code,code:z.code,message:z.message,value:Ar(j,F.field.fieldType)})}for(let[F,j]of A){let z=O.record[F]?.value;if(Array.isArray(z))for(let U=0;U<z.length;U++){let M=z[U];for(let $ of j){let be=M.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=Zi(F,U,M);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:Ar(be,$.field.fieldType),...Te})}}}}for(let F of $i(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)I.push(...w.values());else for(let O of v.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),I.push(O)}let x={type:"SELECT",columns:[...e.summary?_l:Ll],rows:I,rowCount:I.length,validateStats:{errorRecords:D.size,errorCount:k,constraintMetadata:d}};return fe.set(x,Wd(e.summary===!0)),x}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!Xh(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function Xh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Mi(i.semantics,r.semantics))return!1}return!0}var Fn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Yd(e,t,n={}){let r=jd(e,n.enableImport===!0),i=Ma(r);if(r.forEach(u=>gi("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>ha(u)||u.type==="UPSERT"&&Qh(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=hs(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let u of i.statements){if(!u.isDml||u.tempTablesReferenced.length===0||u.statementType==="INSERT_SELECT"||u.statementType==="UPSERT_SELECT")continue;let f=r[u.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new Z(`ArgumentError: temp table references in ${u.statementType} are not supported yet.`,u.index)}let s=Bd(),l=Gd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Pl(Kd(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,h=null;for(let m=0;m<r.length;m++){let y=i.statements[m],g={index:m,type:y.statementType};if(h){E.push({...g,status:"skipped",skippedReason:h}),R.add(m);continue}let S=y.dependsOn.find(P=>R.has(P));if(S!==void 0){let P=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${P}`}),R.add(m);continue}if(p!==null&&Date.now()>=p){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(m),h="timeout";continue}try{let P=p!==null?p-Date.now():null,b=a.confirm,L=b?{...a,confirm:(k,N,_)=>b(k,N,{statementIndex:m,statementCount:r.length,statementType:y.statementType,targetAppId:y.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,I={aborted:!1},v=Ol(l,I,y.statementType!=="SELECT"&&y.statementType!=="UNION"&&y.statementType!=="WITH"||gs(r[m])),w=qh(v),D=await tg(Zh(r[m],y,w.client,L,c,u,f),P,w.closeActive);D.result&&(D.result=Vd(D.result,I)),E.push({...g,status:"success",...D})}catch(P){E.push({...g,status:"error",error:ng(P),...P instanceof Xr?{result:P.diagnostic}:{}}),R.add(m),P instanceof Fn?h="timeout":P instanceof Kn?h="assertion":y.statementType==="SET_VARIABLE"||y.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{Wl(c)}}function Qh(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 Zh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=xo(e,a);if($e(l),await bd(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await zd(l.expr.query,n,r,i,o),p=l.expr.query.columns[0],c=p?.type==="ARITH_COL"||p?.type==="ARITH_AGG_COL"||p?.type==="WINDOW_COL"||p?.type==="AGGREGATE"&&(p.func==="COUNT"||p.func==="SUM"||p.func==="AVG"||p.func==="STDDEV_POP"||p.func==="STDDEV_SAMP"||p.func==="VAR_POP"||p.func==="VAR_SAMP"||p.func==="MEDIAN");if(p?.type==="AGGREGATE"&&p.func==="MODE"){let f=(await Vo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let u=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(u)?{type:"number",value:u,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Pd(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=Pd(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=xo(e,a);if(mn("phase15b",s),gi("phase15b",s),$e(s),await bd(s,n,i),s.type==="VALIDATE"){let l=await Hd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,fe.get(l)??Wd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await Af(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await Yl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await Al(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await eg(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:fe.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await ol(s,n,r,i)};if(s.type==="ASSERT")return await qd(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await Gl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await Jl(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Zl(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Tl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await ol(s,n,r,i)}}async function eg(e,t,n,r,i){return e.type==="WITH"?Gl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function tg(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Fn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Fn)})()},t)})])}catch(a){throw a instanceof Fn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function ng(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??el(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:rg(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:el(r),message:r}}else{let n=String(e);t={code:el(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function el(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function rg(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function jd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Pd(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:Pc(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function xo(e,t){return al(e,t,!1)}function al(e,t,n){if(Array.isArray(e))return e.map(r=>al(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number"&&a.placeholder!==!0)throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,al(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=ig(i);if(o.type==="SELECT"&&ke(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&ke(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 ke(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function ig(e){if(e.type==="NOT"&&ke(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&ke(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(ke(t,!1)||ke(n,!1))return{type:"BOOLEAN",value:!1};if(ke(t,!0))return n;if(ke(n,!0))return t}else if(e.op==="OR"){if(ke(t,!0)||ke(n,!0))return{type:"BOOLEAN",value:!0};if(ke(t,!1))return n;if(ke(n,!1))return t}}return e}function sl(e){if(Array.isArray(e)){for(let t of e){let n=sl(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=sl(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function qd(e,t,n,r,i){let o=await Do(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Do(e.low,t,n,r,i),d=await Do(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Do(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Do(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(ll(e));case"SCALAR_SUBQUERY":try{return await zd(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function zd(e,t,n,r,i){let{query:o,probed:a}=og(e),s=await Yr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function og(e){return ne(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function ll(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=ll(e.left),n=ll(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Ze(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await ee(u,t,n);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(h=>f.get(h)?.fieldType==="STATUS"))return;let R=await Hl(u,t,n);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return Pn(X({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(u.appId)?.get(ge(u,f));if(!R)return;let h=R.semantics??X(R),m=R.fieldType==="STATUS"&&p.has(u.appId)?{...h,optionOrder:p.get(u.appId)}:h;return Pn(m,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Oe(R)===u.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Mo(E,u.field)!==void 0))return f.length>1?B("string"):void 0}}function vl(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Jd(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Bl(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=nn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function qr(e,t,n,r){if(e.where===null)return Ce(null,()=>{});let i=await $n(e,t,n,r);return Ce(e.where,i)}function Zt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function Ko(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Xd(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ce(null,()=>{}):Ce(e.where,o=>{if(o.field==="$id")return X({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?X(a):void 0)})}async function xn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Xd(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Q(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await zo(e,t,r,i),cg(e))return s=fg(e),o&&fe.set(s,await Vo(e,s.columns,t,r,i,a)),s;let l=await Ul(e,t,r,i);await Nf(e,t,n,r,i);let d=Ng(e,await qr(e,t,r,i));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let p=_e(e),c,u;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=Vs(e,g);S.eligible&&$s(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=G(e.where)}catch{g=null}u=Ii({select:e,selectMode:p,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ue(e.where)})??void 0,u&&(c=u.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?p:"FULL_SCAN",E=await Jr(e,t,r,i),R=Ko(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:ce(e.where)}):null;await Rg(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let h=Ml(e,n,R),y=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Ol(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await Eg(e,y,h.effectiveOptions,r,R,E):s=await Lg(e,y,h.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){Qd(h,g)}return o&&fe.set(s,await Vo(e,s.columns,t,r,i,a)),s}async function Ul(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let p=await ee(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)};let c=p.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:p.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Mp(e,(d,p)=>o[p]),s=e.groupBy,l=kp(s,e.columns,a);return ag(e,s,l),l}function ag(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let p=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${p}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var zr=new WeakMap;async function sg(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 zo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function lg(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await ee(p,t,n);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=ge(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=r?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,u.field)!==null).length,R=i.some(m=>l(m,u.field)),h=Oe(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&h?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(h=>Oe(h)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function zo(e,t,n,r){zr.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await lg(e,t,n,r),s=tc(e,a,ec);s&&zr.set(e,s)}function ug(e){let t=[...e].join(", "),n=[["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 Ml(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?gt({...e,orderBy:[]}):gt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Qd(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(ug(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function ul(e,t){try{return await t()}catch(n){Qd(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function cg(e){return e.from.appId===0&&e.from.cteName===qe}function Bo(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"?Bo(e.left)||Bo(e.right):e.type==="STRING_FUNC"?kl(e):!1}function pg(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Gr(e)}function Gr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?kl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Gr(e.left)||Gr(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"?Bo(n):Gr(n))):!1}function kl(e){return e.args.some(t=>pg(t))}function dg(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(Bo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(kl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Gr(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 fg(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");dg(e);let t=vs([{}],e.columns),{rows:n,columns:r}=vr(t,e.columns),i=So(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function Eg(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?rf(e):e,s=Si(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Kl(e,t,r),p=$l(e,d),c=e.columns.some(I=>I.type==="CASE_COL")?await $n(e,t,r,void 0,vl(e)):void 0,u=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,h=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&m!==null&&m<=u&&!ce(e.where)?m:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let I=await vp({client:t,app:s.app,fields:s.fields,query:bs(e),offset:e.offset??0,limit:e.limit});g=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(h)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?G(e.where):"";g=await Ie(t.getRecords,s.app,I,l,{parallel:R,maxRecords:u,stopAfter:y,onLimit:E,onTruncate:v=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${v} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${v} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Cl(t,e.from.appId)}})}let S=g.map(I=>dt(I,null));h||(S=_s(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Ds(e.columns,void 0,p.row,c)),S=So(S,e.limit,e.offset));let{rows:P,columns:b}=vr(S,e.columns,void 0,p.row,void 0,c),L=await Vl(e,P,b,t,r);return{type:"SELECT",rows:P,columns:L,rowCount:P.length,warnings:[...f]}}async function Rg(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=Si(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!Ps(u));if(l.length===0)continue;let d=await ee(a,n,r);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Nd(e){return e.cteName??`APP${e.appId}`}function mg(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function yg(e,t){return Ps(t)||e.validCodes.has(t)}function tl(e,t){return e.table.cteName!==null?e.validCodes.has(t):yg(e,t)}function hg(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 gg(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=Oe(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===qe)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:Nd(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===qe)return;let u=await ee(p.appId,t,r);s.set(p,{table:p,label:Nd(p),validCodes:new Set(u.map(f=>f.code)),authoritative:u.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of mg(p.table))l.set(c,p);for(let p of e.joins)for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let u=l.get(c.tableAlias);if(u&&u.table.cteName!==null&&!u.schemaUnavailable&&!tl(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Ku(e);for(let[p,c]of d.bySource){let u=s.get(p);if(!u||u.schemaUnavailable||!u.authoritative)continue;let f=[...c].filter(E=>!tl(u,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${u.label})`)}for(let p of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>tl(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let u=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${u})`)}}async function Uo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Uo(e.left,t,n,r,i),await Uo(e.right,t,n,r,i);return}await gg(e,t,n,r);for(let o of hg(e))await Uo(o,t,n,r,i)}}function Zd(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var Fl=new WeakMap;function Jo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=bp(e.where,r),o=Pp(i,r),a=new Map,s=new Map;for(let[c,u]of o.fetchQueriesByAlias)s.set(c,u);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,Un(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Xo(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,Zd(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,p]=await Promise.all([Ae(s,t,n),Mg(s,t,n)]),c=Ag(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await Zo(s,t,n);if(u.enable&&u.states&&u.states.length>0){let f=new Set(u.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,d,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Ag(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Et(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&$o(e.left.expr,t),e.right.type==="CASE_VALUE"&&$o(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function $o(e,t){for(let n of e.branches)Et(n.condition,t)}function Sg(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&$o(n.expr,t);return t}function Oe(e){return e.alias??e.cteName}function ef(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Oe(n)===t)}function xl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Kl(e,t,n){let r=Sg(e);if(r.length===0)return new Map;let i=new Set,o=xl(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=ef(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Ae(s,t,n)]));return new Map(a)}function Ye(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function tf(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||zt(t,n)}function zt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){zt(e.left,t),zt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){zt(e.left,t),zt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&zt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&zt(n,t)}function Go(e,t){if(e.type==="AGG_REF"){tf(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Go(e.left,t),Go(e.right,t))}function cl(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Go(n,t):Vr(n,t)}function Vr(e,t){if(e.type==="STRING_FUNC"){cl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vr(e.left,t),Vr(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?cl(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vr(r,t)}}function Tg(e){let t=[];for(let n of e)n.type==="AGGREGATE"?tf(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Go(n.expr,t):n.type==="STRFUNC_COL"?cl(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Vr(n.expr,t);return t}var Ig=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function wg(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":Ig.has(e.fieldType)?"string":void 0}async function nf(e,t,n,r){let i=Tg(e.columns);if(i.length===0)return;let o=new Set,a=xl(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=ef(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await ee(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(h=>E.get(h)?.fieldType==="STATUS"))return;let R=await Hl(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??X(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let h=p.find(m=>Oe(m)===f.tableAlias);if(!h)return;if(h.cteName!==null)return r?.get(h.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(h.appId)?.get(ge(h,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(ge(e.from,f.field))}else{let h=p.flatMap(m=>{if(m.cteName!==null){let g=r?.get(m.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let y=s.get(m.appId)?.get(ge(m,f.field));return y?[c(y,m.appId)]:[]});return h.length!==1?void 0:h[0]}if(!E)return;let R=f.tableAlias!==null?p.find(h=>Oe(h)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function ge(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Mo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??X(e);return{sortKind:wg(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function rf(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function q(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function of(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:X({fieldType:"__ID__"})};if(e==="_rid")return q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return q("number")}var bg=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?q("number"):q("string")}return bg.has(e.func)?q("number"):q("string")}function Bn(e,t){return e.type==="STRING"?q("string"):e.type==="ARRAY"?of():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?q("number"):e.type==="STRING_FUNC"?nn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function Qo(e){if(e.length===0)return it();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Mi(n(r.semantics),n(t.semantics)))?e.every(i=>Mi(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?of("KSQL_MIXED_UNSUPPORTED"):it()}function Bl(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return q("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return q("string");if(e.type==="STRING_FUNC")return nn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),Qo(n)}function Pg(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Vo(e,t,n,r,i,o=!1){let a=new Map;Pg(e)&&await Promise.all(xl(e).map(async R=>{if(a.has(R.appId))return;let h=await ee(R.appId,n,r);a.set(R.appId,new Map(h.map(m=>[m.code,m])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?nt(g,e.from.appId):void 0}let m=s.find(g=>Oe(g)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let y=a.get(m.appId)?.get(ge(m,R.field));return y?nt(y,m.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let m=a.get(e.from.appId)?.get(ge(e.from,R.field));return m?nt(m,e.from.appId):Jt(R.field)}let h=s.flatMap(m=>{if(m.cteName!==null){let S=i?.get(m.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let y=a.get(m.appId)?.get(ge(m,R.field)),g=y?nt(y,m.appId):Jt(R.field);return g?[g]:[]});return h.length===1?h[0]:void 0},p=R=>{if(!l)return;let h=s.filter(m=>{if(R.tableAlias!==null&&Oe(m)!==R.tableAlias)return!1;let y=ge(m,R.field);return a.get(m.appId)?.has(y)===!0||Jt(R.field)!==void 0});return h.length===1?h[0].appId:void 0},c=(R,h)=>{let m=p(h);return R&&m!==void 0?{...R,publicSourceApp:m}:R},u=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let h=Ye(R),m=c(d(h),h);m&&u.set(R,m)}return u}if(f)for(let R of t){let h=Ye(R),m=c(d(h),h);m&&u.set(R,m)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,h)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[h];if(!m)return;let y;if(R.type==="FIELD"){let g=Ye(R.field);y=c(d(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?y=q("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?y=q("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(y=Bl(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")y=q("number");else if(R.type==="GROUPING_COL")y=q("number");else if(R.type==="LITERAL_COL")y=q("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?y=nn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?y=q("number"):g.type==="FIELD"?y=d(g):y=q("string")}else if(R.type==="STRFUNC_COL")y=nn(R.expr);else if(R.type==="WINDOW_COL")y=q("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&g.push(Bn(R.expr.elseResult,d)),y=Qo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(y=it());y&&u.set(m,y)}),u}function af(e,t){let n=fe.get(e),r=fe.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let p=Qo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=p;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function $l(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(p=>Oe(p)===s.tableAlias);return!d||d.cteName!==null?void 0:Mo(d,s.field)??t.get(d.appId)?.get(ge(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Mo(e.from,s.field)??t.get(e.from.appId)?.get(ge(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let p=Mo(d,s.field)??t.get(d.appId)?.get(ge(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var sf=new WeakSet,lf=new WeakMap;function pl(e){return sf.add(e),e}function Ng(e,t){return lf.set(e,t),t}function uf(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&&ne(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function Cg(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function Og(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":G(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new tn;if(!Cg(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 Lg(e,t,n,r,i,o=!0,a,s,l){let d=lf.get(e);if(sf.has(e)&&d!==void 0&&uf(e,d)){let V=await Og(e,t);if(V!==null)return V}let p=n.maxRecords??1e4,c=new Set,u=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,r,i),ei(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([Xo(e,t,r),Kl(e,t,r),nf(e,t,r,i)]),h=$l(e,E),m=await $n(e,t,r,i,Ze(e.having)||vl(e)),y=Jd(e,m),g=Fl.get(e);if(g&&!Mn(g.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=g??Jo(e,f)??Tn(e,f);Na(S);let P="joinPlan"in S?S:null,b=P&&Mn(P.joinPlan)?P:null,L=t,I=S.mainCondition,v=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let w=s?s.prefilterWhere:b?null:I,D=b?.queriesByAlias.get(e.from.alias)??"",k=await Of(e.columns,t,n,r,i),N=Rt(e.where),_=N?Promise.resolve([]):Wr(e,e.from,L,p,u,!0,n.onLimitReached??"error",c,w,b?!1:o,l,D),A=[],C=[];for(let V of e.joins){if(N){A.push({join:V,promise:Promise.resolve([])});continue}let Te=V.table.alias?b?.queriesByAlias.get(V.table.alias)??"":"",pi=b?null:V.table.alias?v.get(V.table.alias)??null:null;pi!==null||Te!==""?A.push({join:V,promise:Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,pi,!0,l,Te)}):C.push(V)}let x=a?Promise.resolve(a):Jr(e,t,r,i);x.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:V,promise:Te}of A)F.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let pi=await Rf(e,V,F,L,p,u,n.onLimitReached??"error",c,null,l,"")??await Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(V.table.alias,pi)}));let{optionOrders:j,sortKinds:z,semantics:U}=await x,{rows:M,columns:$}=ks({tables:F,stmt:e,scalarCache:k,optionOrders:j,sortKinds:z,orderSemantics:U,fieldTypeResolver:h.row,fieldSemanticsResolver:m,havingFieldTypeResolver:h.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:zr.get(e),plainGroupByPlan:l}),be=await Vl(e,M,$,t,r);return{type:"SELECT",rows:M,columns:be,rowCount:M.length,warnings:[...c]}}async function cf(e,t,n,r,i=!1,o=!1){let a=Ml(e,n,null);return ul(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?cf(e.left,t,s,r,i,o):vt(pl(e.left),t,s,r,void 0,i,o),vt(pl(e.right),t,s,r,void 0,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(h=>{let m={};return p.forEach((y,g)=>{m[y]=h[c[g]??y]??""}),m}),f=[...l.rows,...u],E=e.all?f:pf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&fe.set(R,af(l,d)),R})}function pf(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 Gl(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await bf(t):s.query.type==="DESCRIBE"?l=await Pf(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:fe.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Uo(e,t,r,i),e.type==="UNION"){let[d,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,u=p.columns,f=p.rows.map(m=>{let y={};return c.forEach((g,S)=>{y[g]=m[u[S]??g]??""}),y}),E=[...d.rows,...f],R=e.all?E:pf(E,c),h={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&fe.set(h,af(d,p)),h}if(!(e.from.cteName!=null&&e.from.cteName!==qe||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await _g(e,t,n,r,i);return o&&fe.set(l,await Vo(e,l.columns,t,i,r)),l}async function _g(e,t,n,r,i){await zo(e,t,i,r);let o=zr.get(e),a=await Ul(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Oe(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Oe(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&p(M.cteName);let c=n.maxRecords??1e4,u=new Set,f=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,i,r),ei(e.having,t,n,i,r),Nf(e,t,n,i,r)]);let E=await qr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await Jr(e,t,i,r),h=Ko(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:ce(e.where)}):null,m=Ml(e,n,h),y=m.effectiveOptions,[g,S,P]=await Promise.all([Xo(e,t,i),Kl(e,t,i),nf(e,t,i,r)]),b=$l(e,S),L=await $n(e,t,i,r,Ze(e.having)||vl(e)),I=Jd(e,L),v=Jo(e,g)??Tn(e,g);Na(v);let w=t,D=await Of(e.columns,t,y,i,r),k=Promise.resolve(R);k.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let M=p(e.from.cteName);N.set(e.from.alias,M.rows.map(Cd)),_.set(e.from.alias,M.columns)}else{let M=await ul(m,()=>Wr(e,e.from,w,c,f,!0,y.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,M)}let A=e.joins.map(M=>ul(m,async()=>{if(M.table.cteName!=null){let $=p(M.table.cteName);N.set(M.table.alias,$.rows.map(Cd)),_.set(M.table.alias,$.columns)}else{let $=M.table.alias?v.joinConditions.get(M.table.alias)??null:null,V=await Rf(e,M,N,w,c,f,y.onLimitReached??"error",u,$,a)??await Wr(e,M.table,w,c,f,!1,y.onLimitReached??"error",u,$,!0,a);N.set(M.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await k,F=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:z}=ks({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:x,orderSemantics:O,fieldTypeResolver:b.row,fieldSemanticsResolver:L,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:I,aggregateSortKindResolver:P,appliedKlikes:v.appliedKlikes,sourceColumns:F,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Vl(e,j,z,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function Vl(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await ee(e.from.appId,r,i);return xp(o,e.from.subtableCode,()=>Zo(e.from.appId,r,i))}function Cd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wr(e,t,n,r,i,o,a,s,l=null,d=!0,p,c=""){let u=Kt(e,t,p),f=m=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${m} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Cl(n,t.appId),fp(e,t,o))throw new Pe(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let m=o&&d?Fu(e,t.appId).query:"",y=[l!==null?G(l):"",c].filter(b=>b!==""),g=y.length>1?y.map(b=>`(${b})`).join(" and "):y[0]??"",S=m&&g?`(${m}) and (${g})`:m||g;return(await Ge(n.getRecords,t.appId,S,u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let h=(await Ge(n.getRecords,t.appId,"",u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Qp(h,t.subtableCode)}var df=50;function Dg(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function dl(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Dg(n):n))}function ri(e,t){let n=e.raw.get(dl(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(rn(t,e.numericKey))}async function ii(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(h=>o.get(h)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(h,m,y)=>{let g=h.get(m);(g===void 0||y>g)&&h.set(m,y)},c=(h,m)=>{p(d.raw,dl(h),m),l.some(Boolean)&&p(d.normalized,rn(h,l),m)},u=new Set,f=[],E=new Set;for(let h of n){let m=dl(h);E.has(m)||(E.add(m),h.some(y=>y==="")?f.push(h):u.add(h[0]))}let R=["$id",...t];for(let h of Gn([...u],df)){let m=`${t[0]} in (${h.map(Wo).join(",")})`,y=await Ie(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let g of y){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(P=>ff(g[P]?.value)),S)}}for(let h of f){let m=t.map((g,S)=>`${g} = ${Wo(h[S])}`).join(" and "),y=await Ie(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});y.length!==0&&c(h,vg(y))}return d}function vg(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 ff(e){return typeof e=="string"?e:e==null?"":String(e)}function Wo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Ef=50,Ug=6,Od=Ef*Ug;async function Rf(e,t,n,r,i,o,a,s,l=null,d,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,u=t.on.right.tableAlias;if(!c||!u)return null;let f,E,R;if(c===t.table.alias&&u!==t.table.alias)f=u,E=t.on.right.field,R=t.on.left.field;else if(u===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let h=n.get(f);if(!h)return null;let m=new Set;for(let I of h){let v=I[E]?.value,w=ff(v).trim();w.length>0&&m.add(w)}let y=[...m];if(y.length===0)return[];if(y.length>Od)return s.add(`JOIN\u30AD\u30FC\u304C ${y.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Od} \u4EF6\uFF09\u3002`),null;let g=Kt(e,t.table,d),S=I=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Cl(r,t.table.appId)},P=Gn(y,Ef),b=[],L=new Set;for(let I of P){let v=`${R} in (${I.map(Wo).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),k=await Ge(r.getRecords,t.table.appId,D,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of k.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),b.push(N))}}return b}var fl=new Map,El=new Map,Rl=new Map,ml=new Map,yl=new Map,hl=new Map;function Wl(e){fl.delete(e),El.delete(e),Rl.delete(e),ml.delete(e),yl.delete(e),hl.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Vn(ml,n,e);if(r)return r;let i=t.getFields(e);return Wn(ml,n,e,i),i}async function ot(e,t,n){let r=Vn(hl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(hl,n,e,i),i}async function Zo(e,t,n){let r=Vn(yl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(yl,n,e,i),i}async function Hl(e,t,n){let r=await Zo(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ae(e,t,n){let r=Vn(fl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(fl,n,e,o),o}async function gl(e,t,n){let r=Vn(El,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(El,n,e,o),o}async function Mg(e,t,n){let r=await gl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Ld(e,t,n){let r=Vn(Rl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(Rl,n,e,o),o}function kg(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 Fg(e,t,n,r){let i=kg(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await ee(c,t,n);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Oe(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(ge(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(ge(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let h=r?.get(f.cteName),m=h?.columns.includes(c.field)?h.columnMeta?.get(c.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(ge(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=q("number");else if(c.type==="GROUPING_COL")u=q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=q("string");else if(c.type==="STRFUNC_COL")u=nn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),u=Qo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Bl(c.arg,l)):u=c.func==="GROUP_CONCAT"?q("string"):q("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(Ye(c))?.semantics;if(!u){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,X({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Zo(u.source.appId,t,n);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}async function Jr(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([xg(e,t,n),Kg(e,t,n),Fg(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function xg(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 gl(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 gl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function Kg(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 Ld(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 Ld(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function mf(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 Bg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function $g(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||Bg.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await ee(e,n,r);return $g(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function on(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",p=Ne(d,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function Gg(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Tr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return hA(e,a,o)}async function Vg(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await yf(e,t,n,r,i);return AA(e,a,o)}async function yf(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(h=>[h.code,h.fieldType])),s=If(e),l=new Set;for(let h of s){let m=rn(h,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(m))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(m)}let d=await ii(e.appId,e.keyFields,s,t,n,a),p=s.map(h=>ri(d,h)),c=new Map,u=[...new Set(p.filter(h=>h!==void 0))],f=["$id","$revision",...o.filter(h=>!h.inSubtable&&h.fieldType!=="FILE").map(h=>h.code)];for(let h of Gn(u,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${h.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of m.records){let g=Number(y.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,y)}}let E=p.map((h,m)=>({sourceRowIndex:m,...h===void 0?{}:{targetId:h,snapshot:c.get(h)}})),R=await ap({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Wg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Tr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=ms(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ea(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await pp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function Hg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await yf(e,t,n,r,1),o=ys(i);if(n.confirm){let s=ea(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await dp(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function Yg(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 ea(e,t=!0){let n=e.branches.find(u=>u.branch==="insert"),r=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=Yg(n?vo(n):[],r?vo(r):[]),a=jg(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let u=vo(n),f=vo(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:u.reduce((E,R)=>E+R.appendRows,0),tables:u},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function vo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function jg(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:en(n,"ADD"),removedValues:en(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Yl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Gg(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Vg(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Tf(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await jl(e,t,n,r,i,o)).result}var Xr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function jl(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,c=await je(e.appId,p,t,r);e.type==="UPDATE"&&await xn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=Zp(E),h=(await qg(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),m=h.filter(_=>_.mode==="update"),y=e.type==="UPDATE"?Xg:e.type.startsWith("UPSERT")?_=>Qg(_,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??y,S=m.length>0&&g!==void 0,P=new Map;if(S){ss(m,p,c);let _=await g({appId:e.appId,candidates:m,fields:R}),A=new Map;for(let C of m){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let x=_.get(C.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=ed(x,C.record??{});A.set(C.rowNumber,O)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of m){let x=A.get(C.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);P.set(C.rowNumber,Yt(x,E,f,o,C.rowNumber,l))}}let b=ls(h,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:L,invalidRows:I,invalidRowNumbers:v}=b;if(S){let _=new Map(b.candidateResults.map(A=>[A.rowNumber,A]));L=[],v=new Set;for(let A of h){let C=_.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...F),F.length>0&&v.add(A.rowNumber);continue}let x=P.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=td({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:C.preErrors,postImageErrors:x.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let F of O.invalidRowNumbers)v.add(F)}I=v.size}let w=[...d,...On],D={type:"VALIDATION",operation:l,validatedRows:h.length,validRows:h.length-I,invalidRows:I,errorCount:L.length,columns:w,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let _ of d){if(_==="$id"){k.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&k.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)k.set(_,q(N.has(_)?"number":"string"));return sn.set(D,k),{result:D,candidates:h,invalidRowNumbers:v,columnMeta:k}}async function Al(e,t,n,r,i,o){let a=await jl(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Xr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new le(E,d.length)}let p={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let h=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(h.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=d.filter(E=>E.mode==="create"),u=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(h=>h.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function qg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Jg(e,n,r,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")_d(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),an(e,u),l=e.values.map(S=>S.map((P,b)=>P.type==="CASE_VALUE"?Lt(P.expr,{},a.get(e.fields[b])?.fieldType):P));else{let S=await zl.materialize(e,n,r,i,o,[...a.values()]),P=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!P&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(P&&new Set(S.columns).size!==S.columns.length)throw de("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");_d(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let b=S.columnMeta;u=new Map(S.columns.map(L=>{let I=b?.get(L),v=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,v]})),an(e,u),l=S.rows.map(L=>S.columns.map(I=>L[I]??""))}let f=l.map((S,P)=>({rowNumber:P+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,L)=>p&&!p[P]?.has(b)?[]:[[b,S[L]]])),preErrors:[...c?.[P]??[]],record:{},evaluationRow:d?.[P]??Object.fromEntries(e.fields.map((b,L)=>[b,ze(S[L])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,P])=>[S,P.fieldType])),R=f.map(S=>e.keyFields.map(P=>ze(S.payload.get(P)))),h=e.keyFields.map(S=>E.get(S)==="NUMBER"),m=new Map;for(let S of R){let P=rn(S,h);m.set(P,(m.get(P)??0)+1)}let y=qo.has(e);if(y&&[...m.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await ii(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,P)=>{let b=R[P],L=ri(g,b);S.mode=L===void 0?"create":"update",L!==void 0&&(S.targetId=L),e.keyFields.forEach((I,v)=>{b[v]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(m.get(rn(b,h))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function ql(e){return e.checkGroups?Nn(e.checkGroups):[]}function _d(e,t){let n=new Set(t);for(let r of ql(e)){if(r.tableAlias!==null)throw de(`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 de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var zg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function an(e,t){if(e.checkGroups)for(let n of Nc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(zg.has(i??""))throw de(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Jg(e,t,n,r,i,o){if(e.from)return eA(e,e.from,t,n,r,i,o);await Cf(e.assignments,t,n,r);let a=await Ae(e.appId,t,r),s=hf(e,a);an(e,Sl(a,e.appId));let l,d=new Map,p=new Map;if(Wi(e)){let c=Ha(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=ko(f.records),d=p,l=ja(e,f.records,a).flatMap(E=>E.records)}else{let c=fr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=ko(f.records),d=p,l=Er(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=ko(u.records),l=Er(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await oo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Er(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:Zg(d.get(c.id),e.appId),evaluationFieldTypes:Sl(a,e.appId)}))}function ko(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 Xg(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 Qg(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 Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function hf(e,t){if(e.from)return[];let n=new Set;for(let r of ql(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw de(`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 de(`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 Zg(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Sl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function eA(e,t,n,r,i,o,a){let s=await kf(e,t,n,i,o);an(e,s.evaluationTypes);let l=await gf(e,t,n,r,i,o,a),d=await Ae(e.appId,n,i),p=za(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?ko(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:ZA(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var tA=df,nA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function gf(e,t,n,r,i,o,a){let s=await rA(e,t,n,i),l=await kf(e,t,n,i,o),d=[...new Set(e.assignments.filter(P=>P.value.type==="SOURCE_FIELD").map(P=>P.value.type==="SOURCE_FIELD"?P.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await iA(t,p,d,n,r,i,o),u=new Map,f=new Map;for(let P of c){if(!Object.prototype.hasOwnProperty.call(P,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=Dd(P[t.joinKeyField],s,"source");if(u.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);u.set(b,P),f.set(b,String(P[t.joinKeyField]).trim())}if(u.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...TA(e),...l.targetFields,...a??[]])],h=t.targetFilter===null?"":fr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],y=new Set,g=0;for(let P of Gn([...f.values()],tA)){let b=`${t.targetJoinField} in (${P.map(Wo).join(",")})`,L=h?`(${b}) and (${h})`:b,I=await Ge(n.getRecords,e.appId,L,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=I.records.length,g>E)throw new 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 v of I.records){let w=v.$id?.value;if(typeof w!="string"||w==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(w)||(y.add(w),m.push(v))}}let S=[];for(let P of m){let b=P[t.targetJoinField]?.value,L=Dd(b,s,"target");if(L===null)continue;let I=u.get(L);I!==void 0&&S.push({target:P,source:I})}return S}async function rA(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function iA(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ae(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(nA.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>dt(p,null))}function Dd(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function oi(e,t,n,r,i){let o=await jl(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:d.length}}async function oA(e,t,n,r){if(e.applyBlocks?.length)return Wg(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return bA(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Ae(e.appId,t,r),s=Vi(e,a);on(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function aA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:qe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Af(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=ad(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,u=await ee(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=u.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await Co(o,new Map),h=e.source.kind==="JSON"?pd(e.source,R,c,n.maxRecords??1e4):dd(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=md(h,c,u,E,m);if(e.source.kind==="CSV")return sA(e,h,y,u,t,n,i);qs(y,e.rejectLimit);let g=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Js(y.errors,g),P=[...g,...zs],b=y.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-b,invalid:b,mutationCandidates:y.parents.filter(U=>U.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:m,validatedRows:y.parents.length,validRows:y.parents.length-b,invalidRows:b,errorCount:S.length,columns:P,errors:S,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,P,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return I;if(hd(h),y.errors.length>0&&!e.onErrorSkip){let U=y.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,P,S,n.tempTableMaxRows??Fe,new Map)}let v=y.parents.filter(U=>U.valid),w=new Map(u.map(U=>[U.code,U.fieldType])),D=v.map(()=>{});if(e.keyFields){for(let V of e.keyFields)if(!e.fields.includes(V))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${V}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(V=>w.get(V)==="NUMBER"),M=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(M.has(Te))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");M.add(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,w);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let k=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),N=new Map,_=D.filter(U=>U!==void 0);for(let U of Gn([...new Set(_)],100)){let M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.records){let be=Number($.$id?.value),V=Number($.$revision?.value);Number.isFinite(be)&&N.set(be,{id:be,...Number.isFinite(V)?{revision:V}:{},record:$})}}let A=gd(v,D,N),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(M=>M.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new le(e.keyFields?"UPDATE":"INSERT",A.length)}let x=U=>new Map(Object.entries(U).map(([M,$])=>[M,$.value])),O=U=>yd(x(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.map(be=>({values:x(be)}))]))),F=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),z=[];for(let U=0;U<F.length;U+=100){let M=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});z.push(M.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:O(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:z.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:z,insertedCount:z.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return lA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:aA(),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};qo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Yl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,sn.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",Al(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?Zl(s,t,n,r,i):Jl(s,t,n,r,i));return d(p)}async function sA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Ad(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=Zs(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(r.filter(N=>!N.inSubtable&&N.fieldType==="SUBTABLE").map(N=>N.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let N of c){let _=Number(N.$id?.value),A=Number(N.$revision?.value);if(Number.isFinite(_)){u.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:N});for(let C of p){let x=N[C]?.value;if(Array.isArray(x)){for(let O of x)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:C}),f.set(O.id,F)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let x of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[_].top});let C=E[_];return C!==void 0&&!u.has(C)&&A.push({operation:"UPDATE",parentRow:N.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...N,valid:A.length===0,errors:A}}),h=Sd(t.records,R,E,u,f),m=h.flatMap(N=>[...N.errors]),y=new Set(h.filter(N=>!N.valid).map(N=>N.parentRow)),g={...n,parents:R,errors:m,invalidParentRows:y};qs(g,e.rejectLimit);let S=h.filter(N=>N.valid),P=h.flatMap(N=>N.tables),b=(N,_)=>P.filter(A=>A.table===N).reduce((A,C)=>A+Number(C[_]),0),L=Object.fromEntries(d.map(N=>[N,{existingRows:b(N,"existingRows"),inputRows:b(N,"inputRows"),updateRows:b(N,"updateRows"),addRows:b(N,"addRows"),deleteRows:b(N,"deleteRows"),rowIdNotFound:b(N,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(N=>N.tables.some(_=>_.deleteRows>0)),totalDeleteRows:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.deleteRows,0),rowIdNotFound:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.rowIdNotFound,0),invalidParents:y.size,parents:S.map(N=>({parentRow:N.parentRow,mode:"UPDATE",targetId:N.targetId,tables:N.tables}))},v=[...new Set(e.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children))],w=Js(m,v),D=[...v,...zs];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,D,w,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:w.length,columns:D,errors:w,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:y.size,mutationCandidates:S.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let N=m[0];throw new Error(`DmlValidationError: ${N.code} ${N.message} (row=${N.parentRow}, field=${N.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,D,w,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new le("UPDATE",S.length)}let k=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=Xs(k(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:k(x.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:N.targetId,...N.revision===void 0?{}:{revision:N.revision},record:_}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function lA(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await Co(t,new Map),d=Hs(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=Zs(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let v=f.slice(I,I+100),w=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let D of w.records){let k=D.$id?.value;typeof k=="string"&&k!==""&&u.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),h=d.rows.map((I,v)=>{let w=c.normalized[v],D=[...d.importRowErrors?.[v]??[],...c.errors[v]];return w!==null&&!u.has(w)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...w!==null&&u.has(w)?{targetId:Number(w)}:{},payload:new Map([[e.recordNumberSourceHeader,p[v]],...e.fields.map(k=>[k,I[k]??""])]),preErrors:D,record:{},evaluationRow:I,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],y=ls(h,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),g=[...m,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:h.length,validRows:h.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:g,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,g,y.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&y.invalidRows>0){let I=y.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(rt(o,e.errorTable,g,y.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Xr(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let P=h.filter(I=>!y.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(P.length,"UPDATE"))throw new le("UPDATE",P.length);let b=P.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<b.length;I+=100)await n.putRecords({app:e.appId,records:b.slice(I,I+100)});let L={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function uA(e,t,n,r,i,o){let a=qo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:fe.get(R)}}let s=await Co(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Ws(a.source,s,p,l):Hs(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=Td(a.source.projection),f=new Map(i??[]);f.set(Qs,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:fe.get(E)}}var zl={materialize:uA};function Sf(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 Jl(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await zl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Sf(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new le("INSERT",l.length);let p=await Ae(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((h,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(h))return;let y=f[d[m]]??"";R[h]={value:mf(y,p.get(h))}}),R});c.forEach(f=>on([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function Tl(e,t,n,r,i){if(e.applyBlocks?.length)return Tf(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(h=>h.field),t,r);await yt(e.appId,e.assignments.map(h=>h.field),E,t,r);let R=await Ae(e.appId,t,r);return hf(e,R),an(e,Sl(R,e.appId)),await xn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return oi(e,t,n,r,i);if(e.subtableCode)return await xn(e,t,r),PA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await xn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return SA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Cf(e.assignments,t,n,r);let d=await Ae(e.appId,t,r);if(Wi(e)){let E=Ha(e),h=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=ja(e,h,d);if(on(m.flatMap(y=>y.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(h.length,"UPDATE"))throw new le("UPDATE",h.length);for(let y of m)await t.putRecords(y);return{type:"UPDATE",updatedCount:h.length}}let p=fr(e),u=(await oo(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Er(e,u,d);if(on(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new le("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function Tf(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return cA(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=Yi(e,o),l=ts(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Ji(d.records[0]);let c=Wc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Je(o,e.assignments.map(P=>P.field)),f=Ht(c.postImage,u)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",ht),h=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),m=c.parentRows>R||c.changedSubtableRows>h;if(e.validateOnly){let P=wr({plans:[c],records:hr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:h,wouldExceed:m}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Qr(P.branches[0]),guards:Zr(P.branches[0]),deletedRows:{total:c.tables.reduce((L,I)=>L+I.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:P};return sn.set(b,ta(E.columns,o,e.appId)),b}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>h)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${h}).`);let y=qi(c,E.normalizedRecord),g=hr(y),S=wr({plans:[y],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:h,wouldExceed:m}});if(n.confirm){let P=ea(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:P,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function cA(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",ht),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),s=await ee(e.appId,t,r),l=pt(e,s),d;if(Ho(e))d=await EA(e,t,n,s,r);else{let f=Yi(e,s),E=fr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let p=await eo({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return gA(e,p,s);bu("phase15b",e);let c=wr(p);if(n.confirm){let f=ea(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",p.guards.parentRows)}let u=await cp(p,t,c);return{...u,diagnostic:Ue(c,u)}}function Ho(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||ce(e.where))}function pA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ho(t)&&ce(t.where)}var dA=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
8
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let u="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ft("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in m){u+=m[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||ft("has invalid unicode escape",n,r,i);for(let h=0;h<4;h++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let h=e.slice(n,n+4);for(let w=0;w<4;w++)o();let S=Number.parseInt(h,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(g-55296<<10)+S-56320)}else g>=56320&&g<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):u+=String.fromCharCode(g)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function vo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Uo(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=Rd(Ed(e)),n=0,r=(d,p=t[n])=>{throw new K(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[n];(p.kind!=="punct"||p.value!==d)&&r(`expected ${d}; found ${vo(p)}`,p),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${vo(c)}`,c);let u=c.value;p.has(u)&&r(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${vo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${vo(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,p)=>{if(!(d instanceof Map))throw new K(`JSON record ${p+1} must be an object.`)}),l}var Wg=new Set(["CHECK_BOX","MULTI_SELECT"]),md=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function Hg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Yg(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),Hg(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Wg.has(t.fieldType)&&!md.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),md.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ys(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=Uo(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let u of l.keys())o.has(u)||tt(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of n)l.has(u.code)&&(c.add(u.code),p[u.code]=Yg(l.get(u.code),u,d+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function js(e,t,n,r,i,o){let a=Do(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,g)=>[y,g]));for(let y of r)if(!l.has(y))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),p=new Set(r);if(o&&p.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],u=[],f=y=>a.rows.filter(g=>g[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,g]of a.columns.entries()){if(p.has(g)||g===o)continue;let h=d.get(g);if(h)c.push({column:g,reason:E(h),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)u.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of r){let g=d.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let g=[],h={};for(let S of r){let w=y[l.get(S)];try{h[S]=fd(w,d.get(S)?.fieldType,{cliKintone:!0})}catch(I){if(!(I instanceof Kr))throw I;h[S]=w,g.push({field:S,code:I.code,message:I.message})}}return R.push(g),h}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Br=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function yd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=Uo(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let p=d+1;for(let E of l.keys())a.has(E)||Br(p,E,"unknown key (not declared in INTO).");let c=new Map,u=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Br(p,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Br(p,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((h,S)=>{h instanceof Map||Br(p,R,`childRow=${S+1} must be an object.`);let w=h;for(let I of w.keys())y.has(I)||Br(p,I,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:w}});u.set(R,g)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function gd(e,t,n,r,i,o){let a=Do(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((u,f)=>[u,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(u=>u.kind==="FIELD"),d=n.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,u[s.get(m.field)]])),subtables:new Map(d.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let m of l){let y=u[s.get(m.field)];if(y!==""&&y!==c.top.get(m.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=u[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of d){let y=u[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(S=>[S,u[s.get(S)]]));if(y===""&&[...g.values()].every(S=>S===""))continue;let h=c.subtables.get(m.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:g})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var jg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),zg=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Js(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Td(e,t,n,r,i){let o=new Map(n.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of n)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)hd(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)hd(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>qg(u,s,l,o,a,r,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function qg(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&qs(e.top.get(u.field),r.get(u.field),o,d,u.field,l,zs(e,a,u.field));let p={};if(a==="INSERT")for(let u of r.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||Ad(u,o,p,l,zs(e,a,u.code));let c=new Map;for(let u of n){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(u.subtableCode);for(let h of u.children){let S=g.get(h),w=zs(e,a,h,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?qs(R.values.get(h),S,o,y,h,l,w):Ad(S,o,y,l,w)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function hd(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&zg.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Ad(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;qs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function qs(e,t,n,r,i,o,a,s=!1){let l=Jg(e),d=Ne(l,t,n);d.ok?r[i]={value:Xg(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Jg(e){return Sd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Sd(t)?t.lexeme:t):e}function Sd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Xg(e,t){return jg.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function zs(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 Xs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Qs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Qg(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 Qg(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 Zs(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 Id(e,t){return Zs(e,t,"DROP")}function wd(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 bd(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function Zg(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Pd(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 Nd(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=Zg(d.record,f),R=new Set(E.map(I=>I.id).filter(I=>!!I)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,h=0,S=0,w=m.map((I,L)=>{let b=y[L]??{};return I.rowId&&R.has(I.rowId)?(g++,{rowId:I.rowId,record:b}):(I.rowId&&((i.get(I.rowId)??[]).some(P=>P.parentId!==l||P.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:I.rowId,subtable:f,subrow:I.childRowNumber,sourceRow:I.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${I.rowId}`,sourceValues:I.values}),S++),h++,{record:b})});c.set(f,w),u.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:h,deleteRows:E.length-g,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var el="#__import_source";function Cd(e){return{...e,from:{appId:0,alias:null,cteName:el}}}function eh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function tl(e,t){let n=e.map(eh),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 th="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",tn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},fe=new WeakMap;function Wd(e){return fe.get(e)}var sn=new WeakMap,Xo=new WeakMap,Od=new WeakMap,nh=1,rh=1;function Hd(e,t){if(t)return t;let n=Od.get(e);return n||(n=`client:${nh++}`,Od.set(e,n)),n}function Cl(e){return`${e}\0inv:${rh++}`}async function Ol(e,t,n={}){let r=Date.now(),i=Cl(Hd(t,n.cacheContext));try{let o=VA(e,n.enableImport===!0),a=Yd(),s=zd(t,a),l={aborted:!1},d=_l(s,l,!oh(o)||Ss(o)),p=await sl(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...qd(p,l),metrics:a};if(p.type==="SELECT"){let u=fe.get(p);u&&fe.set(c,u)}return c}finally{Yl(i)}}function Yd(){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 jd=Symbol("limitMetricsSink");function Ll(e,t){let n=e[jd];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function zd(e,t){return{[jd]: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 Ld=Symbol("searchAbortFailClosed");function _l(e,t,n){return n&&e[Ld]?e:{...e,...n?{[Ld]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function ih(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 oh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function qd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(th),{...e,warnings:[...n]}}async function _d(e,t,n){let r=await ni(e,t,n);return Ws(r),r}async function ni(e,t,n){return pd(e,{select:r=>zr(r,t,n),dml:r=>rf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return Hs(r,i)},joinServerFunctionPlan:async r=>{let i=await ea(r,t,n),o=Zo(r,i);return o===null?null:(Mn(o.joinPlan)&&Kl.set(r,o),o.joinPlan)}})}async function sl(e,t,n,r){let i=await ni(e,t,r);e.type!=="EXPLAIN"&&Ws(i);let o=ul(e);if(o!==null&&!SA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),Ti("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await yh(e,t,r),e.type==="IMPORT")return Pf(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 wl(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 zl(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 ah(e,t,n,r);case"SELECT":return vt(fl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return mf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Wl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return RA(e,t,n,r);case"INSERT_SELECT":return Ql(e,t,n,r);case"UPSERT":return UA(e,t,n,r);case"UPSERT_SELECT":return tu(e,t,n,r);case"UPDATE":return wl(e,t,n,r);case"DELETE":return vA(e,t,n,r);case"REORDER":return BA(e,t,n,r);case"SHOW_APPS":return _f(t);case"DESCRIBE":return Df(e,t,r);case"EXPLAIN":return jA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",gt):gt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se):Se,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return ef(e,t,n,r)}}var Dl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],vl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ul(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 Jd(e=!1){let t=e?vl:Dl;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function ah(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Xd(e,t,n,r)}async function Xd(e,t,n,r){let i=await ee(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=Es(e,i),l=new Set(s.flatMap(O=>ds(O.field))),d={present:ps.filter(O=>l.has(O)),absent:ps.filter(O=>!l.has(O))},p=e.checkGroups??[],c=Nn(p);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([O,F])=>[O,F.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=Ul(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(O=>O.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,m=O=>O.field==="$id"?X({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?X(o.get(O.field)):void 0),y=Ce(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);let g=new Map([...o].map(([O,F])=>[O,F.fieldType])),h=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:h,allowKlike:!1}),w=S===null?"":G(S),L=(await Ie(t.getRecords,e.appId,w,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:dt(O,null)})).filter(O=>e.where===null||te(e.where,O.flat,F=>u.get(F.field))),b=[],v=new Map,P=new Map,D=new Set,k=0,N=O=>{if(D.add(O.id),k+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=P.get(q);U?U.$err_count=String(Number(U.$err_count)+1):P.set(q,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=v.get(F);j?(j.$err_count=String(Number(j.$err_count)+1),O.subrow!==void 0&&(j.$err_subrow=`${j.$err_subrow},${O.subrow}`,j.$err_subrow_id=`${j.$err_subrow_id},${O.subrowId??""}`)):v.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of L){for(let F of _){let j=O.record[F.field.code]?.value,q=Ne(j,F.field,R);q.ok||N({id:O.id,field:F.field.code,code:q.code,message:q.message,value:Ar(j,F.field.fieldType)})}for(let[F,j]of A){let q=O.record[F]?.value;if(Array.isArray(q))for(let U=0;U<q.length;U++){let M=q[U];for(let $ of j){let be=M.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=no(F,U,M);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:Ar(be,$.field.fieldType),...Te})}}}}for(let F of Wi(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)b.push(...P.values());else for(let O of v.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let x={type:"SELECT",columns:[...e.summary?vl:Dl],rows:b,rowCount:b.length,validateStats:{errorRecords:D.size,errorCount:k,constraintMetadata:d}};return fe.set(x,Jd(e.summary===!0)),x}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!sh(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 sh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!xi(i.semantics,r.semantics))return!1}return!0}var Fn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Qd(e,t,n={}){let r=Zd(e,n.enableImport===!0),i=Fa(r);if(r.forEach(u=>Ti("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>Aa(u)||u.type==="UPSERT"&&lh(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=As(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let u of i.statements){if(!u.isDml||u.tempTablesReferenced.length===0||u.statementType==="INSERT_SELECT"||u.statementType==="UPSERT_SELECT")continue;let f=r[u.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new Z(`ArgumentError: temp table references in ${u.statementType} are not supported yet.`,u.index)}let s=Yd(),l=zd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Cl(Hd(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,m=null;for(let y=0;y<r.length;y++){let g=i.statements[y],h={index:y,type:g.statementType};if(m){E.push({...h,status:"skipped",skippedReason:m}),R.add(y);continue}let S=g.dependsOn.find(w=>R.has(w));if(S!==void 0){let w=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...h,status:"skipped",skippedReason:`dependency: ${w}`}),R.add(y);continue}if(p!==null&&Date.now()>=p){E.push({...h,status:"skipped",skippedReason:"timeout"}),R.add(y),m="timeout";continue}try{let w=p!==null?p-Date.now():null,I=a.confirm,L=I?{...a,confirm:(k,N,_)=>I(k,N,{statementIndex:y,statementCount:r.length,statementType:g.statementType,targetAppId:g.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,b={aborted:!1},v=_l(l,b,g.statementType!=="SELECT"&&g.statementType!=="UNION"&&g.statementType!=="WITH"||Ss(r[y])),P=ih(v),D=await ph(uh(r[y],g,P.client,L,c,u,f),w,P.closeActive);D.result&&(D.result=qd(D.result,b)),E.push({...h,status:"success",...D})}catch(w){E.push({...h,status:"error",error:dh(w),...w instanceof Xr?{result:w.diagnostic}:{}}),R.add(y),w instanceof Fn?m="timeout":w instanceof Kn?m="assertion":g.statementType==="SET_VARIABLE"||g.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(y=>y.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{Yl(c)}}function lh(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function uh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=$o(e,a);if($e(l),await _d(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await tf(l.expr.query,n,r,i,o),p=l.expr.query.columns[0],c=p?.type==="ARITH_COL"||p?.type==="ARITH_AGG_COL"||p?.type==="WINDOW_COL"||p?.type==="AGGREGATE"&&(p.func==="COUNT"||p.func==="SUM"||p.func==="AVG"||p.func==="STDDEV_POP"||p.func==="STDDEV_SAMP"||p.func==="VAR_POP"||p.func==="VAR_SAMP"||p.func==="MEDIAN");if(p?.type==="AGGREGATE"&&p.func==="MODE"){let f=(await Yo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let u=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(u)?{type:"number",value:u,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Dd(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=Dd(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=$o(e,a);if(mn("phase15b",s),Ti("phase15b",s),$e(s),await _d(s,n,i),s.type==="VALIDATE"){let l=await Xd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,fe.get(l)??Jd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await Pf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await zl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await Tl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await ch(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:fe.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await sl(s,n,r,i)};if(s.type==="ASSERT")return await ef(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await Wl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await Ql(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await tu(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await wl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await sl(s,n,r,i)}}async function ch(e,t,n,r,i){return e.type==="WITH"?Wl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function ph(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Fn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Fn)})()},t)})])}catch(a){throw a instanceof Fn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function dh(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??nl(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:fh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:nl(r),message:r}}else{let n=String(e);t={code:nl(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function nl(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function fh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Zd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Dd(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:Dc(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function $o(e,t){return ll(e,t,!1)}function ll(e,t,n){if(Array.isArray(e))return e.map(r=>ll(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number"&&a.placeholder!==!0)throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,ll(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=Eh(i);if(o.type==="SELECT"&&ke(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&ke(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 ke(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Eh(e){if(e.type==="NOT"&&ke(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&ke(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(ke(t,!1)||ke(n,!1))return{type:"BOOLEAN",value:!1};if(ke(t,!0))return n;if(ke(n,!0))return t}else if(e.op==="OR"){if(ke(t,!0)||ke(n,!0))return{type:"BOOLEAN",value:!0};if(ke(t,!1))return n;if(ke(n,!1))return t}}return e}function ul(e){if(Array.isArray(e)){for(let t of e){let n=ul(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=ul(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function ef(e,t,n,r,i){let o=await Mo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Mo(e.low,t,n,r,i),d=await Mo(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Mo(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Mo(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(cl(e));case"SCALAR_SUBQUERY":try{return await tf(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function tf(e,t,n,r,i){let{query:o,probed:a}=Rh(e),s=await Yr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Rh(e){return ne(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function cl(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=cl(e.left),n=cl(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Ze(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await ee(u,t,n);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await jl(u,t,n);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return Pn(X({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(u.appId)?.get(he(u,f));if(!R)return;let m=R.semantics??X(R),y=R.fieldType==="STATUS"&&p.has(u.appId)?{...m,optionOrder:p.get(u.appId)}:m;return Pn(y,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Oe(R)===u.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>xo(E,u.field)!==void 0))return f.length>1?B("string"):void 0}}function Ml(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function nf(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Gl(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=nn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function zr(e,t,n,r){if(e.where===null)return Ce(null,()=>{});let i=await $n(e,t,n,r);return Ce(e.where,i)}function Zt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function Go(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function rf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ce(null,()=>{}):Ce(e.where,o=>{if(o.field==="$id")return X({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?X(a):void 0)})}async function xn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await rf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Q(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await Qo(e,t,r,i),Ah(e))return s=Ih(e),o&&fe.set(s,await Yo(e,s.columns,t,r,i,a)),s;let l=await kl(e,t,r,i);await vf(e,t,n,r,i);let d=Fh(e,await zr(e,t,r,i));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let p=_e(e),c,u;if(d.capability==="SUPERSET_PREFILTER"){let h=await $n(e,t,r,i),S=Hs(e,h);S.eligible&&Vs(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let h=null;try{h=G(e.where)}catch{h=null}u=Pi({select:e,selectMode:p,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:h,relativeFunctionNames:ue(e.where)})??void 0,u&&(c=u.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?p:"FULL_SCAN",E=await Jr(e,t,r,i),R=Go(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:ce(e.where)}):null;await bh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Fl(e,n,R),g=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?_l(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await wh(e,g,m.effectiveOptions,r,R,E):s=await Bh(e,g,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(h){of(m,h)}return o&&fe.set(s,await Yo(e,s.columns,t,r,i,a)),s}async function kl(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let p=await ee(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)};let c=p.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:p.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=$p(e,(d,p)=>o[p]),s=e.groupBy,l=Gp(s,e.columns,a);return mh(e,s,l),l}function mh(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let p=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${p}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var qr=new WeakMap;async function yh(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 Qo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function gh(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await ee(p,t,n);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=he(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=r?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,u.field)!==null).length,R=i.some(y=>l(y,u.field)),m=Oe(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&m?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(m=>Oe(m)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function Qo(e,t,n,r){qr.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await gh(e,t,n,r),s=sc(e,a,ac);s&&qr.set(e,s)}function hh(e){let t=[...e].join(", "),n=[["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 Fl(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?ht({...e,orderBy:[]}):ht(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function of(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(hh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function pl(e,t){try{return await t()}catch(n){of(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Ah(e){return e.from.appId===0&&e.from.cteName===ze}function Vo(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"?Vo(e.left)||Vo(e.right):e.type==="STRING_FUNC"?xl(e):!1}function Sh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Gr(e)}function Gr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?xl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Gr(e.left)||Gr(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"?Vo(n):Gr(n))):!1}function xl(e){return e.args.some(t=>Sh(t))}function Th(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(Vo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(xl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Gr(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 Ih(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");Th(e);let t=Ms([{}],e.columns),{rows:n,columns:r}=vr(t,e.columns),i=wo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function wh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?cf(e):e,s=wi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await $l(e,t,r),p=Vl(e,d),c=e.columns.some(b=>b.type==="CASE_COL")?await $n(e,t,r,void 0,Ml(e)):void 0,u=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=u&&!ce(e.where)?y:void 0,h;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)h=[];else if(i?.kind==="KORDER_CURSOR"){let b=await Kp({client:t,app:s.app,fields:s.fields,query:Ns(e),offset:e.offset??0,limit:e.limit});h=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(m)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?G(e.where):"";h=await Ie(t.getRecords,s.app,b,l,{parallel:R,maxRecords:u,stopAfter:g,onLimit:E,onTruncate:v=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${v} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${v} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ll(t,e.from.appId)}})}let S=h.map(b=>dt(b,null));m||(S=vs(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Us(e.columns,void 0,p.row,c)),S=wo(S,e.limit,e.offset));let{rows:w,columns:I}=vr(S,e.columns,void 0,p.row,void 0,c),L=await Hl(e,w,I,t,r);return{type:"SELECT",rows:w,columns:L,rowCount:w.length,warnings:[...f]}}async function bh(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=wi(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!Cs(u));if(l.length===0)continue;let d=await ee(a,n,r);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function vd(e){return e.cteName??`APP${e.appId}`}function Ph(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function Nh(e,t){return Cs(t)||e.validCodes.has(t)}function rl(e,t){return e.table.cteName!==null?e.validCodes.has(t):Nh(e,t)}function Ch(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 Oh(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=Oe(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===ze)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:vd(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===ze)return;let u=await ee(p.appId,t,r);s.set(p,{table:p,label:vd(p),validCodes:new Set(u.map(f=>f.code)),authoritative:u.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of Ph(p.table))l.set(c,p);for(let p of e.joins)for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let u=l.get(c.tableAlias);if(u&&u.table.cteName!==null&&!u.schemaUnavailable&&!rl(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Hu(e);for(let[p,c]of d.bySource){let u=s.get(p);if(!u||u.schemaUnavailable||!u.authoritative)continue;let f=[...c].filter(E=>!rl(u,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${u.label})`)}for(let p of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>rl(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let u=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${u})`)}}async function Fo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Fo(e.left,t,n,r,i),await Fo(e.right,t,n,r,i);return}await Oh(e,t,n,r);for(let o of Ch(e))await Fo(o,t,n,r,i)}}function af(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var Kl=new WeakMap;function Zo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=_p(e.where,r),o=Dp(i,r),a=new Map,s=new Map;for(let[c,u]of o.fetchQueriesByAlias)s.set(c,u);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,Un(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ea(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,af(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,p]=await Promise.all([Ae(s,t,n),Hh(s,t,n)]),c=Lh(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await na(s,t,n);if(u.enable&&u.states&&u.states.length>0){let f=new Set(u.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,d,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Lh(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Et(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&Wo(e.left.expr,t),e.right.type==="CASE_VALUE"&&Wo(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Wo(e,t){for(let n of e.branches)Et(n.condition,t)}function _h(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Wo(n.expr,t);return t}function Oe(e){return e.alias??e.cteName}function sf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Oe(n)===t)}function Bl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function $l(e,t,n){let r=_h(e);if(r.length===0)return new Map;let i=new Set,o=Bl(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=sf(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Ae(s,t,n)]));return new Map(a)}function Ye(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function lf(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||qt(t,n)}function qt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){qt(e.left,t),qt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){qt(e.left,t),qt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&qt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&qt(n,t)}function Ho(e,t){if(e.type==="AGG_REF"){lf(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Ho(e.left,t),Ho(e.right,t))}function dl(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Ho(n,t):Vr(n,t)}function Vr(e,t){if(e.type==="STRING_FUNC"){dl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vr(e.left,t),Vr(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"?dl(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vr(r,t)}}function Dh(e){let t=[];for(let n of e)n.type==="AGGREGATE"?lf(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Ho(n.expr,t):n.type==="STRFUNC_COL"?dl(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Vr(n.expr,t);return t}var vh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Uh(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":vh.has(e.fieldType)?"string":void 0}async function uf(e,t,n,r){let i=Dh(e.columns);if(i.length===0)return;let o=new Set,a=Bl(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=sf(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await ee(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await jl(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??X(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=p.find(y=>Oe(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(m.appId)?.get(he(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(he(e.from,f.field))}else{let m=p.flatMap(y=>{if(y.cteName!==null){let h=r?.get(y.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let g=s.get(y.appId)?.get(he(y,f.field));return g?[c(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?p.find(m=>Oe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function he(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function xo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??X(e);return{sortKind:Uh(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function cf(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function z(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function pf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:X({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var Mh=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return Mh.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?pf():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?nn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function ta(e){if(e.length===0)return it();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&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")?pf("KSQL_MIXED_UNSUPPORTED"):it()}function Gl(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return z("string");if(e.type==="STRING_FUNC")return nn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),ta(n)}function kh(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Yo(e,t,n,r,i,o=!1){let a=new Map;kh(e)&&await Promise.all(Bl(e).map(async R=>{if(a.has(R.appId))return;let m=await ee(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let h=a.get(e.from.appId)?.get(R.field);return h?nt(h,e.from.appId):void 0}let y=s.find(h=>Oe(h)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let g=a.get(y.appId)?.get(he(y,R.field));return g?nt(g,y.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(he(e.from,R.field));return y?nt(y,e.from.appId):Jt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let g=a.get(y.appId)?.get(he(y,R.field)),h=g?nt(g,y.appId):Jt(R.field);return h?[h]:[]});return m.length===1?m[0]:void 0},p=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Oe(y)!==R.tableAlias)return!1;let g=he(y,R.field);return a.get(y.appId)?.has(g)===!0||Jt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let y=p(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},u=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Ye(R),y=c(d(m),m);y&&u.set(R,y)}return u}if(f)for(let R of t){let m=Ye(R),y=c(d(m),m);y&&u.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let g;if(R.type==="FIELD"){let h=Ye(R.field);g=c(d(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=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"?g=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=Gl(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=z("number");else if(R.type==="GROUPING_COL")g=z("number");else if(R.type==="LITERAL_COL")g=z("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?g=nn(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?g=z("number"):h.type==="FIELD"?g=d(h):g=z("string")}else if(R.type==="STRFUNC_COL")g=nn(R.expr);else if(R.type==="WINDOW_COL")g=z("number");else if(R.type==="CASE_COL"){let h=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&h.push(Bn(R.expr.elseResult,d)),g=ta(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=it());g&&u.set(y,g)}),u}function df(e,t){let n=fe.get(e),r=fe.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let p=ta([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=p;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Vl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(p=>Oe(p)===s.tableAlias);return!d||d.cteName!==null?void 0:xo(d,s.field)??t.get(d.appId)?.get(he(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:xo(e.from,s.field)??t.get(e.from.appId)?.get(he(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let p=xo(d,s.field)??t.get(d.appId)?.get(he(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var ff=new WeakSet,Ef=new WeakMap;function fl(e){return ff.add(e),e}function Fh(e,t){return Ef.set(e,t),t}function Rf(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&&ne(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function xh(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function Kh(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":G(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new tn;if(!xh(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 Bh(e,t,n,r,i,o=!0,a,s,l){let d=Ef.get(e);if(ff.has(e)&&d!==void 0&&Rf(e,d)){let V=await Kh(e,t);if(V!==null)return V}let p=n.maxRecords??1e4,c=new Set,u=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,r,i),ei(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([ea(e,t,r),$l(e,t,r),uf(e,t,r,i)]),m=Vl(e,E),y=await $n(e,t,r,i,Ze(e.having)||Ml(e)),g=nf(e,y),h=Kl.get(e);if(h&&!Mn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=h??Zo(e,f)??Tn(e,f);Oa(S);let w="joinPlan"in S?S:null,I=w&&Mn(w.joinPlan)?w:null,L=t,b=S.mainCondition,v=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let P=s?s.prefilterWhere:I?null:b,D=I?.queriesByAlias.get(e.from.alias)??"",k=await Mf(e.columns,t,n,r,i),N=Rt(e.where),_=N?Promise.resolve([]):Wr(e,e.from,L,p,u,!0,n.onLimitReached??"error",c,P,I?!1:o,l,D),A=[],C=[];for(let V of e.joins){if(N){A.push({join:V,promise:Promise.resolve([])});continue}let Te=V.table.alias?I?.queriesByAlias.get(V.table.alias)??"":"",Ei=I?null:V.table.alias?v.get(V.table.alias)??null:null;Ei!==null||Te!==""?A.push({join:V,promise:Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,Ei,!0,l,Te)}):C.push(V)}let x=a?Promise.resolve(a):Jr(e,t,r,i);x.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:V,promise:Te}of A)F.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let Ei=await Sf(e,V,F,L,p,u,n.onLimitReached??"error",c,null,l,"")??await Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(V.table.alias,Ei)}));let{optionOrders:j,sortKinds:q,semantics:U}=await x,{rows:M,columns:$}=xs({tables:F,stmt:e,scalarCache:k,optionOrders:j,sortKinds:q,orderSemantics:U,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:I?{residualWhere:I.joinPlan.residualWhere}:{},resolvedGroupingSpec:qr.get(e),plainGroupByPlan:l}),be=await Hl(e,M,$,t,r);return{type:"SELECT",rows:M,columns:be,rowCount:M.length,warnings:[...c]}}async function mf(e,t,n,r,i=!1,o=!1){let a=Fl(e,n,null);return pl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?mf(e.left,t,s,r,i,o):vt(fl(e.left),t,s,r,void 0,i,o),vt(fl(e.right),t,s,r,void 0,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(m=>{let y={};return p.forEach((g,h)=>{y[g]=m[c[h]??g]??""}),y}),f=[...l.rows,...u],E=e.all?f:yf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&fe.set(R,df(l,d)),R})}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 Wl(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await _f(t):s.query.type==="DESCRIBE"?l=await Df(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:fe.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Fo(e,t,r,i),e.type==="UNION"){let[d,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,u=p.columns,f=p.rows.map(y=>{let g={};return c.forEach((h,S)=>{g[h]=y[u[S]??h]??""}),g}),E=[...d.rows,...f],R=e.all?E:yf(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&fe.set(m,df(d,p)),m}if(!(e.from.cteName!=null&&e.from.cteName!==ze||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await $h(e,t,n,r,i);return o&&fe.set(l,await Yo(e,l.columns,t,i,r)),l}async function $h(e,t,n,r,i){await Qo(e,t,i,r);let o=qr.get(e),a=await kl(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Oe(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Oe(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&p(M.cteName);let c=n.maxRecords??1e4,u=new Set,f=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,i,r),ei(e.having,t,n,i,r),vf(e,t,n,i,r)]);let E=await zr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await Jr(e,t,i,r),m=Go(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:ce(e.where)}):null,y=Fl(e,n,m),g=y.effectiveOptions,[h,S,w]=await Promise.all([ea(e,t,i),$l(e,t,i),uf(e,t,i,r)]),I=Vl(e,S),L=await $n(e,t,i,r,Ze(e.having)||Ml(e)),b=nf(e,L),v=Zo(e,h)??Tn(e,h);Oa(v);let P=t,D=await Mf(e.columns,t,g,i,r),k=Promise.resolve(R);k.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let M=p(e.from.cteName);N.set(e.from.alias,M.rows.map(Ud)),_.set(e.from.alias,M.columns)}else{let M=await pl(y,()=>Wr(e,e.from,P,c,f,!0,g.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,M)}let A=e.joins.map(M=>pl(y,async()=>{if(M.table.cteName!=null){let $=p(M.table.cteName);N.set(M.table.alias,$.rows.map(Ud)),_.set(M.table.alias,$.columns)}else{let $=M.table.alias?v.joinConditions.get(M.table.alias)??null:null,V=await Sf(e,M,N,P,c,f,g.onLimitReached??"error",u,$,a)??await Wr(e,M.table,P,c,f,!1,g.onLimitReached??"error",u,$,!0,a);N.set(M.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await k,F=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:q}=xs({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:x,orderSemantics:O,fieldTypeResolver:I.row,fieldSemanticsResolver:L,havingFieldTypeResolver:I.having,havingFieldSemanticsResolver:b,aggregateSortKindResolver:w,appliedKlikes:v.appliedKlikes,sourceColumns:F,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Hl(e,j,q,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function Hl(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await ee(e.from.appId,r,i);return Wp(o,e.from.subtableCode,()=>na(e.from.appId,r,i))}function Ud(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wr(e,t,n,r,i,o,a,s,l=null,d=!0,p,c=""){let u=Kt(e,t,p),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`),Ll(n,t.appId),hp(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?Vu(e,t.appId).query:"",g=[l!==null?G(l):"",c].filter(I=>I!==""),h=g.length>1?g.map(I=>`(${I})`).join(" and "):g[0]??"",S=y&&h?`(${y}) and (${h})`:y||h;return(await Ge(n.getRecords,t.appId,S,u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Ge(n.getRecords,t.appId,"",u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return id(m,t.subtableCode)}var gf=50;function Gh(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function El(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Gh(n):n))}function ri(e,t){let n=e.raw.get(El(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(rn(t,e.numericKey))}async function ii(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(m,y,g)=>{let h=m.get(y);(h===void 0||g>h)&&m.set(y,g)},c=(m,y)=>{p(d.raw,El(m),y),l.some(Boolean)&&p(d.normalized,rn(m,l),y)},u=new Set,f=[],E=new Set;for(let m of n){let y=El(m);E.has(y)||(E.add(y),m.some(g=>g==="")?f.push(m):u.add(m[0]))}let R=["$id",...t];for(let m of Gn([...u],gf)){let y=`${t[0]} in (${m.map(jo).join(",")})`,g=await Ie(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let h of g){let S=Number(h.$id?.value);Number.isFinite(S)&&c(t.map(w=>hf(h[w]?.value)),S)}}for(let m of f){let y=t.map((h,S)=>`${h} = ${jo(m[S])}`).join(" and "),g=await Ie(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});g.length!==0&&c(m,Vh(g))}return d}function Vh(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 hf(e){return typeof e=="string"?e:e==null?"":String(e)}function jo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Af=50,Wh=6,Md=Af*Wh;async function Sf(e,t,n,r,i,o,a,s,l=null,d,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,u=t.on.right.tableAlias;if(!c||!u)return null;let f,E,R;if(c===t.table.alias&&u!==t.table.alias)f=u,E=t.on.right.field,R=t.on.left.field;else if(u===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let y=new Set;for(let b of m){let v=b[E]?.value,P=hf(v).trim();P.length>0&&y.add(P)}let g=[...y];if(g.length===0)return[];if(g.length>Md)return s.add(`JOIN\u30AD\u30FC\u304C ${g.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 ${Md} \u4EF6\uFF09\u3002`),null;let h=Kt(e,t.table,d),S=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`),Ll(r,t.table.appId)},w=Gn(g,Af),I=[],L=new Set;for(let b of w){let v=`${R} in (${b.map(jo).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),k=await Ge(r.getRecords,t.table.appId,D,h,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of k.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),I.push(N))}}return I}var Rl=new Map,ml=new Map,yl=new Map,gl=new Map,hl=new Map,Al=new Map;function Yl(e){Rl.delete(e),ml.delete(e),yl.delete(e),gl.delete(e),hl.delete(e),Al.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Vn(gl,n,e);if(r)return r;let i=t.getFields(e);return Wn(gl,n,e,i),i}async function ot(e,t,n){let r=Vn(Al,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(Al,n,e,i),i}async function na(e,t,n){let r=Vn(hl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(hl,n,e,i),i}async function jl(e,t,n){let r=await na(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ae(e,t,n){let r=Vn(Rl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(Rl,n,e,o),o}async function Sl(e,t,n){let r=Vn(ml,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(ml,n,e,o),o}async function Hh(e,t,n){let r=await Sl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function kd(e,t,n){let r=Vn(yl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(yl,n,e,o),o}function Yh(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 jh(e,t,n,r){let i=Yh(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await ee(c,t,n);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Oe(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(he(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(he(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(he(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=z("number");else if(c.type==="GROUPING_COL")u=z("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=z("string");else if(c.type==="STRFUNC_COL")u=nn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),u=ta(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Gl(c.arg,l)):u=c.func==="GROUP_CONCAT"?z("string"):z("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(Ye(c))?.semantics;if(!u){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,X({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await na(u.source.appId,t,n);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}async function Jr(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([zh(e,t,n),qh(e,t,n),jh(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function zh(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 Sl(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 Sl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function qh(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 kd(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 kd(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Tf(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 Jh=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Xh(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||Jh.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await ee(e,n,r);return Xh(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function on(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",p=Ne(d,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function Qh(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Tr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return CA(e,a,o)}async function Zh(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await If(e,t,n,r,i);return LA(e,a,o)}async function If(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=Of(e),l=new Set;for(let m of s){let y=rn(m,e.keyFields.map(g=>a.get(g)==="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 ii(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>ri(d,m)),c=new Map,u=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Gn(u,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let h=Number(g.$id?.value);Number.isSafeInteger(h)&&h>0&&c.set(h,g)}}let E=p.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await dp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function eA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Tr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=gs(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ra(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await yp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function tA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await If(e,t,n,r,1),o=hs(i);if(n.confirm){let s=ra(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await gp(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function nA(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 ra(e,t=!0){let n=e.branches.find(u=>u.branch==="insert"),r=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=nA(n?ko(n):[],r?ko(r):[]),a=rA(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let u=ko(n),f=ko(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:u.reduce((E,R)=>E+R.appendRows,0),tables:u},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function ko(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function rA(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:en(n,"ADD"),removedValues:en(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function zl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Qh(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Zh(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Cf(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await ql(e,t,n,r,i,o)).result}var Xr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function ql(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,c=await je(e.appId,p,t,r);e.type==="UPDATE"&&await xn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=od(E),m=(await iA(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),y=m.filter(_=>_.mode==="update"),g=e.type==="UPDATE"?sA:e.type.startsWith("UPSERT")?_=>lA(_,t,n.maxRecords??1e4):void 0,h=n.loadUpdateModeSnapshots??g,S=y.length>0&&h!==void 0,w=new Map;if(S){us(y,p,c);let _=await h({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let C of y){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let x=_.get(C.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=ad(x,C.record??{});A.set(C.rowNumber,O)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of y){let x=A.get(C.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);w.set(C.rowNumber,Yt(x,E,f,o,C.rowNumber,l))}}let I=cs(m,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:L,invalidRows:b,invalidRowNumbers:v}=I;if(S){let _=new Map(I.candidateResults.map(A=>[A.rowNumber,A]));L=[],v=new Set;for(let A of m){let C=_.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...F),F.length>0&&v.add(A.rowNumber);continue}let x=w.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=sd({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:C.preErrors,postImageErrors:x.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let F of O.invalidRowNumbers)v.add(F)}b=v.size}let P=[...d,...On],D={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-b,invalidRows:b,errorCount:L.length,columns:P,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let _ of d){if(_==="$id"){k.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&k.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)k.set(_,z(N.has(_)?"number":"string"));return sn.set(D,k),{result:D,candidates:m,invalidRowNumbers:v,columnMeta:k}}async function Tl(e,t,n,r,i,o){let a=await ql(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Xr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new le(E,d.length)}let p={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let m=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=d.filter(E=>E.mode==="create"),u=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function iA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return aA(e,n,r,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")Fd(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),an(e,u),l=e.values.map(S=>S.map((w,I)=>w.type==="CASE_VALUE"?Lt(w.expr,{},a.get(e.fields[I])?.fieldType):w));else{let S=await Xl.materialize(e,n,r,i,o,[...a.values()]),w=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!w&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(w&&new Set(S.columns).size!==S.columns.length)throw de("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");Fd(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let I=S.columnMeta;u=new Map(S.columns.map(L=>{let b=I?.get(L),v=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,v]})),an(e,u),l=S.rows.map(L=>S.columns.map(b=>L[b]??""))}let f=l.map((S,w)=>({rowNumber:w+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((I,L)=>p&&!p[w]?.has(I)?[]:[[I,S[L]]])),preErrors:[...c?.[w]??[]],record:{},evaluationRow:d?.[w]??Object.fromEntries(e.fields.map((I,L)=>[I,qe(S[L])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,w])=>[S,w.fieldType])),R=f.map(S=>e.keyFields.map(w=>qe(S.payload.get(w)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let w=rn(S,m);y.set(w,(y.get(w)??0)+1)}let g=Xo.has(e);if(g&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let h=await ii(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,w)=>{let I=R[w],L=ri(h,I);S.mode=L===void 0?"create":"update",L!==void 0&&(S.targetId=L),e.keyFields.forEach((b,v)=>{I[v]===""&&S.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(rn(I,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Jl(e){return e.checkGroups?Nn(e.checkGroups):[]}function Fd(e,t){let n=new Set(t);for(let r of Jl(e)){if(r.tableAlias!==null)throw de(`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 de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var oA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function an(e,t){if(e.checkGroups)for(let n of vc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(oA.has(i??""))throw de(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function aA(e,t,n,r,i,o){if(e.from)return cA(e,e.from,t,n,r,i,o);await Uf(e.assignments,t,n,r);let a=await Ae(e.appId,t,r),s=wf(e,a);an(e,Il(a,e.appId));let l,d=new Map,p=new Map;if(ji(e)){let c=ja(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(f.records),d=p,l=qa(e,f.records,a).flatMap(E=>E.records)}else{let c=fr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(f.records),d=p,l=Er(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(u.records),l=Er(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await lo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Er(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:uA(d.get(c.id),e.appId),evaluationFieldTypes:Il(a,e.appId)}))}function Ko(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 sA(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 lA(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 Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function wf(e,t){if(e.from)return[];let n=new Set;for(let r of Jl(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw de(`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 de(`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 uA(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Il(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function cA(e,t,n,r,i,o,a){let s=await Gf(e,t,n,i,o);an(e,s.evaluationTypes);let l=await bf(e,t,n,r,i,o,a),d=await Ae(e.appId,n,i),p=Xa(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?Ko(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:uS(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var pA=gf,dA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function bf(e,t,n,r,i,o,a){let s=await fA(e,t,n,i),l=await Gf(e,t,n,i,o),d=[...new Set(e.assignments.filter(w=>w.value.type==="SOURCE_FIELD").map(w=>w.value.type==="SOURCE_FIELD"?w.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await EA(t,p,d,n,r,i,o),u=new Map,f=new Map;for(let w of c){if(!Object.prototype.hasOwnProperty.call(w,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let I=xd(w[t.joinKeyField],s,"source");if(u.has(I))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${I}.`);u.set(I,w),f.set(I,String(w[t.joinKeyField]).trim())}if(u.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...DA(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":fr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,h=0;for(let w of Gn([...f.values()],pA)){let I=`${t.targetJoinField} in (${w.map(jo).join(",")})`,L=m?`(${I}) and (${m})`:I,b=await Ge(n.getRecords,e.appId,L,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(h+=b.records.length,h>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 v of b.records){let P=v.$id?.value;if(typeof P!="string"||P==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(P)||(g.add(P),y.push(v))}}let S=[];for(let w of y){let I=w[t.targetJoinField]?.value,L=xd(I,s,"target");if(L===null)continue;let b=u.get(L);b!==void 0&&S.push({target:w,source:b})}return S}async function fA(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function EA(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ae(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(dA.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>dt(p,null))}function xd(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function oi(e,t,n,r,i){let o=await ql(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:d.length}}async function RA(e,t,n,r){if(e.applyBlocks?.length)return eA(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return MA(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Ae(e.appId,t,r),s=Yi(e,a);on(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function mA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:ze},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Pf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=dd(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,u=await ee(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=u.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await _o(o,new Map),m=e.source.kind==="JSON"?yd(e.source,R,c,n.maxRecords??1e4):gd(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=Td(m,c,u,E,y);if(e.source.kind==="CSV")return yA(e,m,g,u,t,n,i);Js(g,e.rejectLimit);let h=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Qs(g.errors,h),w=[...h,...Xs],I=g.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-I,invalid:I,mutationCandidates:g.parents.filter(U=>U.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-I,invalidRows:I,errorCount:S.length,columns:w,errors:S,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,w,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return b;if(wd(m),g.errors.length>0&&!e.onErrorSkip){let U=g.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,w,S,n.tempTableMaxRows??Fe,new Map)}let v=g.parents.filter(U=>U.valid),P=new Map(u.map(U=>[U.code,U.fieldType])),D=v.map(()=>{});if(e.keyFields){for(let V of e.keyFields)if(!e.fields.includes(V))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${V}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(V=>P.get(V)==="NUMBER"),M=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(M.has(Te))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");M.add(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,P);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let k=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),N=new Map,_=D.filter(U=>U!==void 0);for(let U of Gn([...new Set(_)],100)){let M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.records){let be=Number($.$id?.value),V=Number($.$revision?.value);Number.isFinite(be)&&N.set(be,{id:be,...Number.isFinite(V)?{revision:V}:{},record:$})}}let A=bd(v,D,N),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(M=>M.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new le(e.keyFields?"UPDATE":"INSERT",A.length)}let x=U=>new Map(Object.entries(U).map(([M,$])=>[M,$.value])),O=U=>Id(x(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.map(be=>({values:x(be)}))]))),F=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),q=[];for(let U=0;U<F.length;U+=100){let M=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});q.push(M.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:O(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return gA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:mA(),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};Xo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await zl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,sn.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",Tl(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?tu(s,t,n,r,i):Ql(s,t,n,r,i));return d(p)}async function yA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Pd(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=tl(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(r.filter(N=>!N.inSubtable&&N.fieldType==="SUBTABLE").map(N=>N.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let N of c){let _=Number(N.$id?.value),A=Number(N.$revision?.value);if(Number.isFinite(_)){u.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:N});for(let C of p){let x=N[C]?.value;if(Array.isArray(x)){for(let O of x)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:C}),f.set(O.id,F)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let x of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[_].top});let C=E[_];return C!==void 0&&!u.has(C)&&A.push({operation:"UPDATE",parentRow:N.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...N,valid:A.length===0,errors:A}}),m=Nd(t.records,R,E,u,f),y=m.flatMap(N=>[...N.errors]),g=new Set(m.filter(N=>!N.valid).map(N=>N.parentRow)),h={...n,parents:R,errors:y,invalidParentRows:g};Js(h,e.rejectLimit);let S=m.filter(N=>N.valid),w=m.flatMap(N=>N.tables),I=(N,_)=>w.filter(A=>A.table===N).reduce((A,C)=>A+Number(C[_]),0),L=Object.fromEntries(d.map(N=>[N,{existingRows:I(N,"existingRows"),inputRows:I(N,"inputRows"),updateRows:I(N,"updateRows"),addRows:I(N,"addRows"),deleteRows:I(N,"deleteRows"),rowIdNotFound:I(N,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(N=>N.tables.some(_=>_.deleteRows>0)),totalDeleteRows:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.deleteRows,0),rowIdNotFound:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.rowIdNotFound,0),invalidParents:g.size,parents:S.map(N=>({parentRow:N.parentRow,mode:"UPDATE",targetId:N.targetId,tables:N.tables}))},v=[...new Set(e.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children))],P=Qs(y,v),D=[...v,...Xs];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,D,P,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:P.length,columns:D,errors:P,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:g.size,mutationCandidates:S.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let N=y[0];throw new Error(`DmlValidationError: ${N.code} ${N.message} (row=${N.parentRow}, field=${N.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,D,P,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new le("UPDATE",S.length)}let k=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=Zs(k(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:k(x.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:N.targetId,...N.revision===void 0?{}:{revision:N.revision},record:_}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function gA(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await _o(t,new Map),d=js(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=tl(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let v=f.slice(b,b+100),P=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let D of P.records){let k=D.$id?.value;typeof k=="string"&&k!==""&&u.add(k.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"])),m=d.rows.map((b,v)=>{let P=c.normalized[v],D=[...d.importRowErrors?.[v]??[],...c.errors[v]];return P!==null&&!u.has(P)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...P!==null&&u.has(P)?{targetId:Number(P)}:{},payload:new Map([[e.recordNumberSourceHeader,p[v]],...e.fields.map(k=>[k,b[k]??""])]),preErrors:D,record:{},evaluationRow:b,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=cs(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),h=[...y,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:h,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,h,g.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&g.invalidRows>0){let b=g.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(rt(o,e.errorTable,h,g.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new Xr(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let w=m.filter(b=>!g.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(w.length,"UPDATE"))throw new le("UPDATE",w.length);let I=w.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<I.length;b+=100)await n.putRecords({app:e.appId,records:I.slice(b,b+100)});let L={type:"UPDATE",updatedCount:I.length,...e.onErrorSkip?{affectedRows:I.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function hA(e,t,n,r,i,o){let a=Xo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:fe.get(R)}}let s=await _o(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Ys(a.source,s,p,l):js(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=Cd(a.source.projection),f=new Map(i??[]);f.set(el,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:fe.get(E)}}var Xl={materialize:hA};function Nf(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 Ql(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Xl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Nf(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new le("INSERT",l.length);let p=await Ae(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[d[y]]??"";R[m]={value:Tf(g,p.get(m))}}),R});c.forEach(f=>on([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function wl(e,t,n,r,i){if(e.applyBlocks?.length)return Cf(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(m=>m.field),t,r);await yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Ae(e.appId,t,r);return wf(e,R),an(e,Il(R,e.appId)),await xn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return oi(e,t,n,r,i);if(e.subtableCode)return await xn(e,t,r),kA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await xn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return _A(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Uf(e.assignments,t,n,r);let d=await Ae(e.appId,t,r);if(ji(e)){let E=ja(e),m=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=qa(e,m,d);if(on(y.flatMap(g=>g.records.map(h=>h.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new le("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let p=fr(e),u=(await lo(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Er(e,u,d);if(on(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new le("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function Cf(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return AA(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=qi(e,o),l=rs(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Zi(d.records[0]);let c=Jc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Je(o,e.assignments.map(w=>w.field)),f=Ht(c.postImage,u)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",gt),m=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),y=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let w=wr({plans:[c],records:gr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),I={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:Qr(w.branches[0]),guards:Zr(w.branches[0]),deletedRows:{total:c.tables.reduce((L,b)=>L+b.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:w};return sn.set(I,ia(E.columns,o,e.appId)),I}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=Xi(c,E.normalizedRecord),h=gr(g),S=wr({plans:[g],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let w=ra(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:w,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(h),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function AA(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",gt),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),s=await ee(e.appId,t,r),l=pt(e,s),d;if(zo(e))d=await wA(e,t,n,s,r);else{let f=qi(e,s),E=fr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let p=await ro({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return OA(e,p,s);_u("phase15b",e);let c=wr(p);if(n.confirm){let f=ra(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",p.guards.parentRows)}let u=await mp(p,t,c);return{...u,diagnostic:Ue(c,u)}}function zo(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||ce(e.where))}function SA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&zo(t)&&ce(t.where)}var TA=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
10
10
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
11
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function fA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${dA}`)}async function EA(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=ws(e.where,{fieldTypes:s,fieldOptions:l});fA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(Yi(e,r));for(let E of RA(e.where))c.add(E);let u=await mA(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>te(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function RA(e){return Dl(e)}async function mA(e,t,n,r,i){let s=[...yA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await Hl(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Pn(X({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let u=c.semantics??X(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return Pn(f,e,c.code)}}}function yA(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 hA(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Sr],a=t.guards.parentRows,s=ms(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:Qr(l),guards:Zr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return sn.set(d,ta(o,n,e.appId)),d}function gA(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,p)=>d+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Sr],s=wr(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:Qr(s.branches[0]),guards:Zr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return sn.set(l,ta(a,n,e.appId)),l}function AA(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Sr],l=ys(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Qr(d),u=Qr(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Zr(d)},update:{apply:u,guards:Zr(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((h,m)=>h+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,ta([...s],n,e.appId)),f}function Qr(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Zr(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var ht=100,Se=500;function xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function ta(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,q(i.has(a)?"number":"string"))}return o}async function SA(e,t,n,r,i,o){let a=await gf(e,t,n,r,i,o),s=await Ae(e.appId,n,i),l=za(e,a,s),d=e.assignments.map(u=>u.field),p=await ee(e.appId,n,i),c=await yt(e.appId,d,p,n,i);if(on(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let u of l)await n.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function TA(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 IA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return NA(e,t,n,r);let i=kc(e),a=(await oo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new le("DELETE",a.length);let s=Fc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function wA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Hg(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ae(e.appId,t,r),d=If(e),p=await ii(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((h,m)=>{let y=u[m];y.type==="CASE_VALUE"?E[h]={value:Lt(y.expr,{},l.get(h))}:E[h]={value:ct(y,l.get(h))}});let R=ri(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),on([...a,...s.map(u=>u.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await n.confirm(u,"UPDATE"))throw new le("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function If(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?H(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Xl(e,t,n,r){if(t.length===0)return;let i=await Ae(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function bA(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=na(a),l=new Map;for(let p of e.values){let c=vd(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,h)=>{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:vd(p[h])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...ai(u,i),...c];d.push(wf(e.appId,p,si(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function PA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&$o(u.value.expr,o);let a=await Xl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Ql(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(u.parentId);f||(f=new Map,p.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:Hi(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=na(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let h=ai(E,i).map(m=>{let y=m.id??"";if(!y)return m;let g=f.get(y);return g?{id:y,value:g}:{id:y}});await t.putRecords(CA(e.appId,u,si(E),i,h))}return{type:"UPDATE",updatedCount:d.length}}async function NA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Xl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Ql(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=na(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=ai(E,i),h=new Set(f),m=R.filter((y,g)=>!h.has(g));await t.putRecords(wf(e.appId,u,si(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function na(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Ql(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=si(r),a=ai(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...ji(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=Il(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ai(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function si(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function wf(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function CA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function OA(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 vd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Il(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 Hr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hr(e.left)||Hr(e.right);case"NOT":case"GROUP":return Hr(e.expr);default:return!1}}async function LA(e,t,n,r){let i=[];Et(e.where,i);let o=await Xl(e.appId,i,t,r),a=await ee(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??X(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Ql(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&te(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let u=na(d);for(let f of c){let E=u.get(f);if(!E)continue;let h=ai(E,e.subtableCode).map((y,g)=>({row:y,i:g,flat:_A(E,e.subtableCode,y,g)}));h.sort((y,g)=>DA(y.flat,g.flat,e.by,l));let m=h.map(y=>y.row.id??"");await t.putRecords(OA(e.appId,f,si(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:c.size}}function _A(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}`]=Il(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Il(a?.value);return i}function DA(e,t,n,r){for(let i of n){let o=Ud(i.key,e),a=Ud(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?nn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Ud(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Zl(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await zl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Sf(s),d.length!==e.fields.length){let m=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await Ae(e.appId,t,r),f=l.map((m,y)=>{let g={};return e.fields.forEach((S,P)=>{if(s.importPresence&&!s.importPresence[y]?.has(S))return;let b=m[d[P]]??"";g[S]={value:mf(b,u.get(S))}}),g});f.forEach(m=>on([m],e.fields.filter(y=>y in m),o,a));let E=f.map(m=>e.keyFields.map(y=>String(m[y]?.value??"")));if(qo.has(e)){let m=e.keyFields.map(g=>u.get(g)==="NUMBER"),y=new Set;for(let g of E){let S=rn(g,m);if(y.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(S)}}let R=await ii(e.appId,e.keyFields,E,t,n,u);if(f.forEach((m,y)=>{let g=ri(R,E[y]);g!==void 0?c.push({id:g,record:m}):p.push(m)}),n.confirm&&p.length+c.length>0){let m=p.length+c.length;if(!await n.confirm(m,"UPDATE"))throw new le("UPDATE",m)}let h=[];for(let m=0;m<p.length;m+=100){let y=await t.postRecords({app:e.appId,records:p.slice(m,m+100)});h.push(y.ids)}for(let m=0;m<c.length;m+=100)await t.putRecords({app:e.appId,records:c.slice(m,m+100)});return{type:"UPSERT",insertedCount:h.flat().length,updatedCount:c.length}}async function bf(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 Pf(e,t,n){let r=await ee(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function vA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return mn("phase15b",r),$e(r),r}catch(n){throw n instanceof ye||n instanceof T,n}}async function ei(e,t,n,r,i){let o=[];Fo(e,t,n,r,o,i),await Promise.all(o)}async function Nf(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(ei(s.condition,t,n,r,i));await Promise.all(o)}function Yr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function Fo(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(Yr(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(Yr(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":Fo(e.left,t,n,r,i,o),Fo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Fo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Yr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function Cf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function Of(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=Yr(p.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var Lf=new WeakMap,_f=new WeakMap,Df=new WeakMap;async function vf(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async h=>(o.add(h),t.getFields(h)),getProcessStatuses:async h=>(a.add(h),t.getProcessStatuses(h)),getNumberPrecision:async h=>(s.add(h),t.getNumberPrecision(h))},d=new Map,p=new Map,c=new Map,u=new Set,f=i??await ni(e,l,n),E=h=>f.nodes.find(m=>m.source===h||JSON.stringify(m.source)===JSON.stringify(h)),R=async h=>{if(h===null||typeof h!="object"||u.has(h))return;if(u.add(h),Array.isArray(h)){await Promise.all(h.map(R));return}let m=h;if(m.type==="SELECT"){let y=h;await zo(y,l,n);let g=[y.from,...y.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ne(y).type==="PLAIN"&&!g){let w=await Ul(y,l,n);w&&c.set(y,w)}let S=[y.from,...y.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Ze(y.where)||y.orderBy.length>0||y.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&S.forEach(w=>o.add(w));let b=await qr(y,l,n),L=E(y);if(b.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(b)}).`);d.set(y,b);let v=Fl.get(y)??Jo(y,await Xo(y,l,n));if(v&&Lf.set(y,v),y.orderBy.length>0||y.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await Jr(y,l,n);if(y.orderMode!=="KINTONE_NATIVE")for(let D of w.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Ko(y)&&!g&&L?.allowed!==!1){let D=b.capability==="EXACT_PUSHDOWN"?_e(y):"FULL_SCAN";p.set(y,(y.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:y,staticMode:D,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:ce(y.where)}))}}}else if(m.type==="VALIDATE"){let y=h;o.add(y.appId);let g=await ee(y.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),P=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),b=ds(y,g),L=Nn(y.checkGroups??[]),I=Dl(y.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!P.has(A.field))throw de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${y.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&P.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of I){if(A!=="$id"&&!S.has(A)&&!P.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${y.appId}.`);if(A!=="$id"&&!S.has(A)&&P.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let v=new Map([...S].map(([A,C])=>[A,C.fieldType]));v.set("$id","RECORD_NUMBER"),an(y,v);let w=Ce(y.where,A=>A.field==="$id"?X({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?X(S.get(A.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(w)}).`);let D=new Map([...S].map(([A,C])=>[A,C.fieldType])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=y.where===null?null:w.capability==="EXACT_PUSHDOWN"?y.where:An(y.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:k,allowKlike:!1}),_=b.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(y.appId),await ot(y.appId,l,n)),_f.set(y,{targetFields:b.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...b.map(A=>A.subtableCode??A.field.code),...I,...L.map(A=>A.field)])],subtables:new Map([...new Set(b.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,b.filter(C=>C.subtableCode===A).length])),capability:w,prefilter:N,numberPrecision:_})}else if(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(h.appId),m.type==="UPDATE"&&h.applyBlocks?.length){let g=h,S=await ee(g.appId,l,n);if(pt(g,S),Ho(g)){let P=S.filter(L=>!L.inSubtable),b=ws(g.where,{fieldTypes:new Map(P.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(P.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});Df.set(g,b)}}let y=h;(y.type!=="UPDATE"||!Ho(y))&&E(y)?.allowed!==!1&&await xn(y,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let h=wt(e),m=await qr(h,l,n),y=E(h);if(m.capability==="UNSUPPORTED"&&!y)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);if(d.set(h,m),Ko(h)&&y?.allowed!==!1){let g=await Jr(h,l,n);p.set(h,(h.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:h,staticMode:m.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:ce(h.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function wl(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 UA(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 Md(e){return e==="<>"?"!=":e}function We(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${UA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function bl(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?MA(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=rl(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${nl(d)}: ${d}`,` ${il(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(J)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!J(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=rl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Md(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${nl(l)}: ${l}`,` ${il(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${kd(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=rl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Md(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${nl(l)}: ${l}`,` ${il(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${kd(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 MA(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function nl(e){return J(e)?"relative date function":"kintone function"}function rl(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 il(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function kd(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Uf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Se){let d=Pl(r);try{let p=jd(e,a),c=Ma(p);hs(p,n);let u=new Map,f=[];for(let E=0;E<p.length;E++){let R=p[E],h=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:xo(R.expr,u)}:R:xo(R,u);$e(h);let m=await ni(h,t,d),y=await vf(h,t,d,i,m),g=m.hasServerOnlyWhereFunction&&!m.allowed?bl(m):[...bl(m),...Mf(kA(h,c.statements[E],y.capabilities,y.orderPlans,s,l),o)],S=wl(y);f.push({index:E,type:c.statements[E].statementType,plan:g.length===0?S:[g[0],...S,...g.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&u.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(P=>({type:"string",value:P.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:p.length,statements:f}}finally{Wl(d)}}function kA(e,t,n,r,i=100,o=Se){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...$r(e.query,t,n,r).map(a=>` ${a}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let a=Yo(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:",...$r(e.expr.query,a,n,r).map(s=>` ${s}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return $r(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let p=Yo(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...$r(l.query,p,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ra(e,void 0,n,r,i,o):$r(e,t,n,r)}function Yo(e){if(Array.isArray(e))return e.some(Yo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Yo)}return!1}function $r(e,t,n,r){if(t.tempTablesReferenced.length===0)return ra(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&i.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function FA(e,t,n,r,i,o=100,a=Se,s){let l=s??await ni(e.query,t,n),d=await vf(e.query,t,n,r,l),p=bl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...wl(d),...p]:[...wl(d),...p,...Mf(ra(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function Mf(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 ra(e,t,n,r,i=100,o=Se,a=1e4,s){if(e.type==="UNION")return KA(e,n,r,s);if(e.type==="WITH")return BA(e,n,r,s);if(e.type==="INSERT")return VA(e,t,i,o);if(e.type==="INSERT_SELECT")return WA(e,t,n,r,s);if(e.type==="UPSERT")return qA(e,t,i,o);if(e.type==="UPSERT_SELECT")return zA(e,t,n,r,s);if(e.type==="UPDATE")return HA(e,t,n,r,i,o,a);if(e.type==="DELETE")return jA(e,t);if(e.type==="REORDER")return JA(e,t);if(e.type==="VALIDATE")return xA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...p.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(p=>p.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function xA(e,t){let n=_f.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":G(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?_l:Ll).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function He(e,t,n,r,i,o=!0){let a=n?.get(e)??(n?[...n].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&uf(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=$A(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(y=>y.code));let u=[],f=Ep(e,zr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${p}`),f&&(u.push(` grouping source: ${f.source}`),u.push(` grouping sets: ${f.expandedSetCount} (limit: ${f.setLimit})`),u.push(` grouping items: ${f.groupingItemCount} (limit: ${f.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${f.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let E=ne(e);if(E.type==="PLAIN"){let y=E.allItems;if(l)l.items.forEach((g,S)=>{let P=y[S];P?.type==="FIELD_NAME"&&g.kind==="PHYSICAL"&&u.push(` group key ${P.name}: PHYSICAL (source=${g.sourceIndex}, field=${g.fieldCode})`)});else if([e.from,...e.joins.map(g=>g.table)].some(g=>g.cteName!==null))for(let g of y)g.type==="FIELD_NAME"&&u.push(` group key ${g.name}: DEFERRED (materialized schema unavailable)`)}if(d){let y=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${y}${y?" ":""}limit 1`),u.push(" fields: $id"),u.push(" fetch API: GET records.json (totalCount=true)"),u.push(" REST execution: single GET"),u.push(" record limit: maxRecords/onLimitReached not applied"),u.push(" fallback: full record scan when totalCount is missing or invalid"),u.push(" search abort: fail-closed (SearchAbortedError)"),u}s?(u.push(` order plan: ${s.kind}`),s.reasonCodes.length>0&&u.push(` order reason: ${s.reasonCodes.join(", ")}`),s.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):s.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${s.scanRows}`))):f&&u.push(" order plan: CANONICAL_LOCAL");let R=s&&!s.requiresCompleteInput?{...e,orderBy:[]}:e,h=gt(R);s?.requiresCompleteInput&&h.add("LOCAL_ORDER");let m=Rt(e.where);if(h.size>0&&(!m||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...h].join(", ")}`),u.push(" onLimit=truncate: disabled")),m)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(p==="FULL_SCAN"&&c.length>0&&u.push(` reason: ${c.join(", ")}`),p==="SIMPLE"){let y=Si(s?.kind==="CANONICAL_REST_TOP_N"?rf(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let g=s?.kind==="KORDER_CURSOR"?bs(e):y.query;u.push(` kintone query: ${g||"(\u306A\u3057)"}`),u.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=Lf.get(e),g=y??Tn(e);if(e.joins.length>0)if(y){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),y.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Xt(y.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let N of y.joinPlan.rejections)u.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(_=>_.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${N}`)}let S=Kt(e,e.from,l),P=e.from.alias?` AS ${e.from.alias}`:"",b=g.mainCondition,L=Zd(e),I=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?y?.queriesByAlias.get(e.from.alias):void 0,w=v||(b!==null?G(b):I||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),u.push(` kintone query: ${w}`);let D=y?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),k=y?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||k?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!y&&L!==null&&u.push(` pushdown candidate: ${G(L)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${S.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":S.join(", ")}`);for(let N of e.joins){let _=Kt(e,N.table,l),A=N.table.alias?` AS ${N.table.alias}`:"",C=N.type==="INNER"?"JOIN":`${N.type} JOIN`,x=N.table.alias?g.joinConditions.get(N.table.alias)??null:null,O=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?ir(e.where,{tableAlias:N.table.alias}):null,F=N.table.alias?y?.queriesByAlias.get(N.table.alias):void 0,j=F||(x!==null?G(x):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let z=y?.joinPlan.items.find(M=>M.targetAlias===N.table.alias),U=y?.joinPlan.serverFunctionConsumptions.find(M=>M.targetAlias===N.table.alias);z||U?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${z?.relation??"exact"}`)):!y&&O!==null&&u.push(` pushdown candidate: ${G(O)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return u.push(...GA(e,n,r,i)),u}function KA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r,!0))}),a}function BA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r,!1)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...ra(e.query,"[main]",t,n,100,Se,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function $A(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ne(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function GA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1)));return e.having&&a(e.having),i}function VA(e,t,n=ht,r=Se){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...eu(ro(e,n,r))]:a}function WA(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function HA(e,t,n,r,i=100,o=Se,a=1e4){if(e.applyBlocks?.length)return YA(e,t,i,o,a);let s=Dc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Wi(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?ti(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${ti(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=QA(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${eS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1)));return c}function YA(e,t,n,r,i){let o=ro(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=Df.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${ti(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...eu(o)]}function jA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ti(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function qA(e,t,n=ht,r=Se){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...eu(ro(e,n,r))]:a}function eu(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 zA(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function JA(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(XA).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${ti(e.where)}`),o}function XA(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ti(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function QA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&jo(n,t),n.type==="STRING_FUNC"&&jo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&jr(n,t);return[...t]}function jo(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"&&(jo(e.left,t),jo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t)}async function kf(e,t,n,r,i){let o=ql(e),a=await Ae(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ae(t.appId,n,r),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw de(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw de(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw de(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw de(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw de(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],evaluationTypes:c}}function ZA(e,t,n){if(!e)return{};let r=dt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function jr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(jr(e.left,t),jr(e.right,t))}function eS(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} = ${Ff(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 Ff(e){return`${Fd(e.left)} ${e.op} ${Fd(e.right)}`}function Fd(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"?`(${Ff(e)})`:"..."}var le=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var Ee=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 Ke(e){return new Ee("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new Ee("PARSE_ERROR",e,t)}function xf(){let e=new tn;return new Ee("SEARCH_ABORTED",e.message,e)}function li(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function tS(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function ln(e){return e instanceof Ee?e:e instanceof ye||e instanceof T?new Ee("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new Ee("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Ee("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Ee("CLIENT_ERROR",e.message,e.cause):tS(e)?new Ee("CLIENT_ERROR",li(e),e):new Ee("EXECUTION_ERROR",li(e),e)}function ia(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return tu(n,e.statementIndex,r.type)}return n}var nS=2,oa=5,rS=3e4,iS=10*6e4+3e4,aa=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??nS;if(!Number.isSafeInteger(r)||r<1||r>oa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${oa}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??rS,this.quarantineMs=n.quarantineMs??iS}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 Ro(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>oa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${oa}.`)}};function oS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function aS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=oS){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 sS(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Kf(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await sS(aS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Bf(e){return $f(e,uS(e))}function $f(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=cS(o.options),s=pS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:sa(o.minValue),maxValue:sa(o.maxValue),minLength:sa(o.minLength),maxLength:sa(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!lS.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...$f(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var lS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function uS(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 sa(e){return e==null||e===""?void 0:e}function cS(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 pS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Gf(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 dS="Filter aborted because of too many search results";function Vf(e){return e?.includes(dS)===!0}var Wf="/k/v1/records.json",la="/k/v1/records/cursor.json",fS=4096,ES=2,nu=e=>kintone.api.url(e,!0);function RS(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(Wf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=fS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:nu(Wf),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 ui(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
12
- `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function mS(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return ui({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}),ui(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}),ui(n)}}function yS(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(nu(e),t,n)}catch(r){throw ui(r)}}function hS(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Hf(e={}){let t=e.cursorMaxActive??ES;hS(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=RS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await mS(l);let d=await l.json();return Vf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw ui(s)}},async openCursor(a){let s=nu(la),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 aa(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),p;try{p=await n.runCreate(()=>un(la,"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 mo(R))}let c=p.id,u=Kf(Number(p.totalCount),{get:()=>un(la,"GET",{id:c}),delete:()=>un(la,"DELETE",{id:c}),isAlreadyReleasedError:yS,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return Bf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return Xc(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Gf(s.states)}}}}var Yf=new Set(["postRecords","putRecords","deleteRecords"]),ci=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Ut(e){try{return await e()}catch(t){throw new ci(t)}}function gS(e){return()=>{throw Ke(`${String(e)} is blocked by the readonly client`)}}function Yn(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await Ut(()=>t(l));if(d.searchAborted===!0)throw xf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>p()),close:()=>Ut(()=>c())}},getApps:()=>Ut(()=>r()),getFields:l=>Ut(()=>i(l)),getNumberPrecision:l=>Ut(()=>o(l)),getProcessStatuses:l=>Ut(()=>a(l))});return new Proxy(s,{get(l,d,p){return Yf.has(d)?gS(d):Reflect.get(l,d,p)},has(l,d){return Yf.has(d)?!1:Reflect.has(l,d)}})}function AS(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 ci(o.reason)})(),n)}}}async function jn(e,t){let n=AS(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 jf=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),qf=new Set([...jf,"onLimitReached"]),SS=new Set([...qf,"variables","tempTableMaxRows"]);function zf(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function ua(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Jf(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 TS(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 Xf(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&&ua(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&ua(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(ua(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 ru(e,t){zf(e);let n=t==="run"?qf:jf;Jf(e.client);let r=Xf(e,n,t==="run"?"runQuery":"explainQuery");return{client:e.client,executeOptions:r}}function Qf(e){zf(e),Jf(e.client),e.variables!==void 0&&TS(e.variables),e.tempTableMaxRows!==void 0&&ua(e.tempTableMaxRows,"tempTableMaxRows");let t=Xf(e,SS,"runBatch");return{client:e.client,executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}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 IS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function wS(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function pa(e,t=e.metrics){let n=xd(e);return{type:"query",rows:e.rows.map(IS),columns:e.columns.map(r=>wS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ca(t)}}function Zf(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function eE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function iu(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 tE(e){if(e instanceof oe)return Hn(e.message,e);let t=ln(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function bS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return Zf(e,{import:!0})}catch(t){let n=tE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function nE(e){if(mi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function rE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return eE(e,{import:!0})}catch(t){throw tE(t)}}function PS(e){let t=nE(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!dn(t))throw Ke(`${n} statements are not read-only`);if(iu(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!Eu(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function iE(e){let t=nE(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!dn(n))throw Ke(`${n.type} statements are not read-only`);if(iu(n))throw Ke("APPLY statements are not allowed in engine library batches");if(Mt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function oE(e){let t=bS(e);return PS(t),t}function aE(e){let t=rE(e);return t.forEach(iE),t}function sE(e){let t=e.trim(),n=rE(t);n.forEach(iE);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 NS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new Ee("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return tu(n,e.index,e.type)}async function lE(e,t){let n=[];try{let r=Qf(t);n=aE(e);let i=await jn(r.client,l=>Yd(e,Yn(l),{...r.executeOptions,captureColumnMeta:!0})),o=i.statements.find(l=>l.status==="error");if(o!==void 0)throw NS(o);let a=[],s=i.statements.map(l=>{let d={index:l.index,type:l.type,status:l.status};return l.tempTable!==void 0&&(d.tempTable=l.tempTable),l.rowCount!==void 0&&(d.rowCount=l.rowCount),l.error!==void 0&&(d.error={code:l.error.code,message:l.error.message}),l.skippedReason!==void 0&&(d.skippedReason=l.skippedReason),l.status==="success"&&l.result?.type==="SELECT"&&(d.resultIndex=a.length,a.push(pa(l.result,i.metrics))),d});return{type:"batch",batch:!0,statementCount:i.statementCount,statements:s,results:a,warnings:[]}}catch(r){throw ia(r,n)}}function uE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function cE(e,t){try{let n=ru(t,"run"),i=oE(e).type==="VALIDATE"?{...n.executeOptions,onLimitReached:"error"}:n.executeOptions,o=await jn(n.client,a=>Nl(e,Yn(a),{...i,captureColumnMeta:!0}));return uE(o),pa(o)}catch(n){throw ln(n)}}async function pE(e,t){let n=[];try{let r=ru(t,"explain"),i=sE(e);if(n=i.statements,i.legacySql!==void 0){let s=await jn(r.client,d=>Nl(i.legacySql,Yn(d),r.executeOptions));uE(s);let l=s.rows.map(d=>String(d.plan??""));return{type:"explain",lines:l,text:l.join(`
13
- `),metrics:ca(s.metrics)}}let o=await jn(r.client,s=>Uf(e,Yn(s),void 0,"batch-explain",r.executeOptions.maxRecords,r.executeOptions.cursorMaxActive)),a=o.statements.flatMap(s=>[...o.statementCount>1?[`[${s.index+1}] ${s.type}`]:[],...s.plan]);return{type:"explain",lines:a,text:a.join(`
14
- `),metrics:ca()}}catch(r){throw ia(r,n)}}var CS="3.36.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});
11
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function IA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${TA}`)}async function wA(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=Ps(e.where,{fieldTypes:s,fieldOptions:l});IA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(qi(e,r));for(let E of bA(e.where))c.add(E);let u=await PA(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>te(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function bA(e){return Ul(e)}async function PA(e,t,n,r,i){let s=[...NA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await jl(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Pn(X({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let u=c.semantics??X(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return Pn(f,e,c.code)}}}function NA(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 CA(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Sr],a=t.guards.parentRows,s=gs(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:Qr(l),guards:Zr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return sn.set(d,ia(o,n,e.appId)),d}function OA(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,p)=>d+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Sr],s=wr(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:Qr(s.branches[0]),guards:Zr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return sn.set(l,ia(a,n,e.appId)),l}function LA(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Sr],l=hs(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Qr(d),u=Qr(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Zr(d)},update:{apply:u,guards:Zr(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,ia([...s],n,e.appId)),f}function Qr(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Zr(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 gt=100,Se=500;function xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function ia(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function _A(e,t,n,r,i,o){let a=await bf(e,t,n,r,i,o),s=await Ae(e.appId,n,i),l=Xa(e,a,s),d=e.assignments.map(u=>u.field),p=await ee(e.appId,n,i),c=await yt(e.appId,d,p,n,i);if(on(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let u of l)await n.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function DA(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 vA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return FA(e,t,n,r);let i=Gc(e),a=(await lo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new le("DELETE",a.length);let s=Vc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function UA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return tA(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ae(e.appId,t,r),d=Of(e),p=await ii(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((m,y)=>{let g=u[y];g.type==="CASE_VALUE"?E[m]={value:Lt(g.expr,{},l.get(m))}:E[m]={value:ct(g,l.get(m))}});let R=ri(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),on([...a,...s.map(u=>u.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await n.confirm(u,"UPDATE"))throw new le("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function Of(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?H(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Zl(e,t,n,r){if(t.length===0)return;let i=await Ae(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function MA(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=oa(a),l=new Map;for(let p of e.values){let c=Kd(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Kd(p[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...ai(u,i),...c];d.push(Lf(e.appId,p,si(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function kA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&Wo(u.value.expr,o);let a=await Zl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=eu(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(u.parentId);f||(f=new Map,p.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:zi(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=oa(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let m=ai(E,i).map(y=>{let g=y.id??"";if(!g)return y;let h=f.get(g);return h?{id:g,value:h}:{id:g}});await t.putRecords(xA(e.appId,u,si(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function FA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Zl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=eu(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=oa(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=ai(E,i),m=new Set(f),y=R.filter((g,h)=>!m.has(h));await t.putRecords(Lf(e.appId,u,si(E),i,y))}return{type:"DELETE",deletedCount:d.length}}function oa(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function eu(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=si(r),a=ai(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...Ji(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=bl(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ai(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function si(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Lf(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function xA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function KA(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 Kd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function bl(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 Hr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hr(e.left)||Hr(e.right);case"NOT":case"GROUP":return Hr(e.expr);default:return!1}}async function BA(e,t,n,r){let i=[];Et(e.where,i);let o=await Zl(e.appId,i,t,r),a=await ee(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??X(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=eu(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&te(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let u=oa(d);for(let f of c){let E=u.get(f);if(!E)continue;let m=ai(E,e.subtableCode).map((g,h)=>({row:g,i:h,flat:$A(E,e.subtableCode,g,h)}));m.sort((g,h)=>GA(g.flat,h.flat,e.by,l));let y=m.map(g=>g.row.id??"");await t.putRecords(KA(e.appId,f,si(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function $A(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}`]=bl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=bl(a?.value);return i}function GA(e,t,n,r){for(let i of n){let o=Bd(i.key,e),a=Bd(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?nn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Bd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function tu(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Xl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Nf(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 p=[],c=[],u=await Ae(e.appId,t,r),f=l.map((y,g)=>{let h={};return e.fields.forEach((S,w)=>{if(s.importPresence&&!s.importPresence[g]?.has(S))return;let I=y[d[w]]??"";h[S]={value:Tf(I,u.get(S))}}),h});f.forEach(y=>on([y],e.fields.filter(g=>g in y),o,a));let E=f.map(y=>e.keyFields.map(g=>String(y[g]?.value??"")));if(Xo.has(e)){let y=e.keyFields.map(h=>u.get(h)==="NUMBER"),g=new Set;for(let h of E){let S=rn(h,y);if(g.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");g.add(S)}}let R=await ii(e.appId,e.keyFields,E,t,n,u);if(f.forEach((y,g)=>{let h=ri(R,E[g]);h!==void 0?c.push({id:h,record:y}):p.push(y)}),n.confirm&&p.length+c.length>0){let y=p.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new le("UPDATE",y)}let m=[];for(let y=0;y<p.length;y+=100){let g=await t.postRecords({app:e.appId,records:p.slice(y,y+100)});m.push(g.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function _f(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 Df(e,t,n){let r=await ee(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function VA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return mn("phase15b",r),$e(r),r}catch(n){throw n instanceof ye||n instanceof T,n}}async function ei(e,t,n,r,i){let o=[];Bo(e,t,n,r,o,i),await Promise.all(o)}async function vf(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(ei(s.condition,t,n,r,i));await Promise.all(o)}function Yr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function Bo(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(Yr(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(Yr(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":Bo(e.left,t,n,r,i,o),Bo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Bo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Yr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function Uf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function Mf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=Yr(p.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var kf=new WeakMap,Ff=new WeakMap,xf=new WeakMap;async function Kf(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},d=new Map,p=new Map,c=new Map,u=new Set,f=i??await ni(e,l,n),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||u.has(m))return;if(u.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let g=m;await Qo(g,l,n);let h=[g.from,...g.joins.map(P=>P.table)].some(P=>P.cteName!==null);if(ne(g).type==="PLAIN"&&!h){let P=await kl(g,l,n);P&&c.set(g,P)}let S=[g.from,...g.joins.map(P=>P.table)].filter(P=>P.cteName===null).map(P=>P.appId);(Ze(g.where)||g.orderBy.length>0||g.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0))&&S.forEach(P=>o.add(P));let I=await zr(g,l,n),L=E(g);if(I.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(I)}).`);d.set(g,I);let v=Kl.get(g)??Zo(g,await ea(g,l,n));if(v&&kf.set(g,v),g.orderBy.length>0||g.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0)){let P=await Jr(g,l,n);if(g.orderMode!=="KINTONE_NATIVE")for(let D of P.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Go(g)&&!h&&L?.allowed!==!1){let D=I.capability==="EXACT_PUSHDOWN"?_e(g):"FULL_SCAN";p.set(g,(g.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:g,staticMode:D,whereCapability:I.capability,whereReasons:I.reasons,orderSemantics:P.semantics,maxRecords:r,hasKlike:ce(g.where)}))}}}else if(y.type==="VALIDATE"){let g=m;o.add(g.appId);let h=await ee(g.appId,l,n),S=new Map(h.filter(A=>!A.inSubtable).map(A=>[A.code,A])),w=new Set(h.filter(A=>A.inSubtable).map(A=>A.code)),I=Es(g,h),L=Nn(g.checkGroups??[]),b=Ul(g.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!w.has(A.field))throw de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${g.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&w.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of b){if(A!=="$id"&&!S.has(A)&&!w.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${g.appId}.`);if(A!=="$id"&&!S.has(A)&&w.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let v=new Map([...S].map(([A,C])=>[A,C.fieldType]));v.set("$id","RECORD_NUMBER"),an(g,v);let P=Ce(g.where,A=>A.field==="$id"?X({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?X(S.get(A.field)):void 0));if(P.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(P)}).`);let D=new Map([...S].map(([A,C])=>[A,C.fieldType])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=g.where===null?null:P.capability==="EXACT_PUSHDOWN"?g.where:An(g.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:k,allowKlike:!1}),_=I.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(g.appId),await ot(g.appId,l,n)),Ff.set(g,{targetFields:I.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...I.map(A=>A.subtableCode??A.field.code),...b,...L.map(A=>A.field)])],subtables:new Map([...new Set(I.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,I.filter(C=>C.subtableCode===A).length])),capability:P,prefilter:N,numberPrecision:_})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let h=m,S=await ee(h.appId,l,n);if(pt(h,S),zo(h)){let w=S.filter(L=>!L.inSubtable),I=Ps(h.where,{fieldTypes:new Map(w.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(w.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});xf.set(h,I)}}let g=m;(g.type!=="UPDATE"||!zo(g))&&E(g)?.allowed!==!1&&await xn(g,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let m=wt(e),y=await zr(m,l,n),g=E(m);if(y.capability==="UNSUPPORTED"&&!g)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);if(d.set(m,y),Go(m)&&g?.allowed!==!1){let h=await Jr(m,l,n);p.set(m,(m.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:h.semantics,maxRecords:r,hasKlike:ce(m.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Pl(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 WA(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 $d(e){return e==="<>"?"!=":e}function We(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${WA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Nl(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?HA(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=ol(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${il(d)}: ${d}`,` ${al(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(J)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!J(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=ol(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=$d(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${il(l)}: ${l}`,` ${al(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Gd(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=ol(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=$d(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${il(l)}: ${l}`,` ${al(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${Gd(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 HA(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function il(e){return J(e)?"relative date function":"kintone function"}function ol(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 Gd(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Bf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Se){let d=Cl(r);try{let p=Zd(e,a),c=Fa(p);As(p,n);let u=new Map,f=[];for(let E=0;E<p.length;E++){let R=p[E],m=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:$o(R.expr,u)}:R:$o(R,u);$e(m);let y=await ni(m,t,d),g=await Kf(m,t,d,i,y),h=y.hasServerOnlyWhereFunction&&!y.allowed?Nl(y):[...Nl(y),...$f(YA(m,c.statements[E],g.capabilities,g.orderPlans,s,l),o)],S=Pl(g);f.push({index:E,type:c.statements[E].statementType,plan:h.length===0?S:[h[0],...S,...h.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&u.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(w=>({type:"string",value:w.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:p.length,statements:f}}finally{Yl(d)}}function YA(e,t,n,r,i=100,o=Se){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...$r(e.query,t,n,r).map(a=>` ${a}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let a=qo(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:",...$r(e.expr.query,a,n,r).map(s=>` ${s}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return $r(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let p=qo(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...$r(l.query,p,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?aa(e,void 0,n,r,i,o):$r(e,t,n,r)}function qo(e){if(Array.isArray(e))return e.some(qo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(qo)}return!1}function $r(e,t,n,r){if(t.tempTablesReferenced.length===0)return aa(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&i.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function jA(e,t,n,r,i,o=100,a=Se,s){let l=s??await ni(e.query,t,n),d=await Kf(e.query,t,n,r,l),p=Nl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...Pl(d),...p]:[...Pl(d),...p,...$f(aa(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function $f(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function aa(e,t,n,r,i=100,o=Se,a=1e4,s){if(e.type==="UNION")return qA(e,n,r,s);if(e.type==="WITH")return JA(e,n,r,s);if(e.type==="INSERT")return ZA(e,t,i,o);if(e.type==="INSERT_SELECT")return eS(e,t,n,r,s);if(e.type==="UPSERT")return iS(e,t,i,o);if(e.type==="UPSERT_SELECT")return oS(e,t,n,r,s);if(e.type==="UPDATE")return tS(e,t,n,r,i,o,a);if(e.type==="DELETE")return rS(e,t);if(e.type==="REORDER")return aS(e,t);if(e.type==="VALIDATE")return zA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...p.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(p=>p.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function zA(e,t){let n=Ff.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":G(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?vl:Dl).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function He(e,t,n,r,i,o=!0){let a=n?.get(e)??(n?[...n].find(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&Rf(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=XA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(g=>g.code));let u=[],f=Ap(e,qr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${p}`),f&&(u.push(` grouping source: ${f.source}`),u.push(` grouping sets: ${f.expandedSetCount} (limit: ${f.setLimit})`),u.push(` grouping items: ${f.groupingItemCount} (limit: ${f.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${f.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let E=ne(e);if(E.type==="PLAIN"){let g=E.allItems;if(l)l.items.forEach((h,S)=>{let w=g[S];w?.type==="FIELD_NAME"&&h.kind==="PHYSICAL"&&u.push(` group key ${w.name}: PHYSICAL (source=${h.sourceIndex}, field=${h.fieldCode})`)});else if([e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null))for(let h of g)h.type==="FIELD_NAME"&&u.push(` group key ${h.name}: DEFERRED (materialized schema unavailable)`)}if(d){let g=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${g}${g?" ":""}limit 1`),u.push(" fields: $id"),u.push(" fetch API: GET records.json (totalCount=true)"),u.push(" REST execution: single GET"),u.push(" record limit: maxRecords/onLimitReached not applied"),u.push(" fallback: full record scan when totalCount is missing or invalid"),u.push(" search abort: fail-closed (SearchAbortedError)"),u}s?(u.push(` order plan: ${s.kind}`),s.reasonCodes.length>0&&u.push(` order reason: ${s.reasonCodes.join(", ")}`),s.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):s.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${s.scanRows}`))):f&&u.push(" order plan: CANONICAL_LOCAL");let R=s&&!s.requiresCompleteInput?{...e,orderBy:[]}:e,m=ht(R);s?.requiresCompleteInput&&m.add("LOCAL_ORDER");let y=Rt(e.where);if(m.size>0&&(!y||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...m].join(", ")}`),u.push(" onLimit=truncate: disabled")),y)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(p==="FULL_SCAN"&&c.length>0&&u.push(` reason: ${c.join(", ")}`),p==="SIMPLE"){let g=wi(s?.kind==="CANONICAL_REST_TOP_N"?cf(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let h=s?.kind==="KORDER_CURSOR"?Ns(e):g.query;u.push(` kintone query: ${h||"(\u306A\u3057)"}`),u.push(` fields: ${g.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":g.fields.join(", ")}`)}else{let g=kf.get(e),h=g??Tn(e);if(e.joins.length>0)if(g){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),g.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${g.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${g.joinPlan.residualWhere===null?"(none)":Xt(g.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${g.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${g.joinPlan.allKlikes.length-g.joinPlan.appliedKlikes.size}`),g.joinPlan.residualWhere!==null)for(let N of g.joinPlan.rejections)u.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(_=>_.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${N}`)}let S=Kt(e,e.from,l),w=e.from.alias?` AS ${e.from.alias}`:"",I=h.mainCondition,L=af(e),b=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?g?.queriesByAlias.get(e.from.alias):void 0,P=v||(I!==null?G(I):b||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${w} (${e.from.appId})`),u.push(` kintone query: ${P}`);let D=g?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),k=g?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||k?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!g&&L!==null&&u.push(` pushdown candidate: ${G(L)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${S.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":S.join(", ")}`);for(let N of e.joins){let _=Kt(e,N.table,l),A=N.table.alias?` AS ${N.table.alias}`:"",C=N.type==="INNER"?"JOIN":`${N.type} JOIN`,x=N.table.alias?h.joinConditions.get(N.table.alias)??null:null,O=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?ir(e.where,{tableAlias:N.table.alias}):null,F=N.table.alias?g?.queriesByAlias.get(N.table.alias):void 0,j=F||(x!==null?G(x):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let q=g?.joinPlan.items.find(M=>M.targetAlias===N.table.alias),U=g?.joinPlan.serverFunctionConsumptions.find(M=>M.targetAlias===N.table.alias);q||U?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${q?.relation??"exact"}`)):!g&&O!==null&&u.push(` pushdown candidate: ${G(O)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return u.push(...QA(e,n,r,i)),u}function qA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r,!0))}),a}function JA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r,!1)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...aa(e.query,"[main]",t,n,100,Se,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function XA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ne(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function QA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1)));return e.having&&a(e.having),i}function ZA(e,t,n=gt,r=Se){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...nu(ao(e,n,r))]:a}function eS(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function tS(e,t,n,r,i=100,o=Se,a=1e4){if(e.applyBlocks?.length)return nS(e,t,i,o,a);let s=xc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=ji(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?ti(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${ti(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=lS(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${cS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1)));return c}function nS(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"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=xf.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${ti(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...nu(o)]}function rS(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ti(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function iS(e,t,n=gt,r=Se){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...nu(ao(e,n,r))]:a}function nu(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 oS(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function aS(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(sS).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${ti(e.where)}`),o}function sS(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ti(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function lS(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Jo(n,t),n.type==="STRING_FUNC"&&Jo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&jr(n,t);return[...t]}function Jo(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"&&(Jo(e.left,t),Jo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t)}async function Gf(e,t,n,r,i){let o=Jl(e),a=await Ae(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ae(t.appId,n,r),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw de(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw de(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw de(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw de(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw de(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],evaluationTypes:c}}function uS(e,t,n){if(!e)return{};let r=dt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function jr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(jr(e.left,t),jr(e.right,t))}function cS(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${Vf(t)}`:t.type==="CASE_VALUE"?`${e.field} = CASE WHEN ...`:t.type==="STRING_FUNC"?`${e.field} = ${t.func}(...)`:t.type==="SCALAR_SUBQUERY"?`${e.field} = (SELECT ...)`:t.type==="SOURCE_FIELD"?`${e.field} = ${t.alias}.${t.field}`:`${e.field} = (${t.type})`}function Vf(e){return`${Vd(e.left)} ${e.op} ${Vd(e.right)}`}function Vd(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?H(e):e.type==="ARITH"?`(${Vf(e)})`:"..."}var le=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var Ee=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 ru(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function Ke(e){return new Ee("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new Ee("PARSE_ERROR",e,t)}function Wf(){let e=new tn;return new Ee("SEARCH_ABORTED",e.message,e)}function li(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function pS(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function ln(e){return e instanceof Ee?e:e instanceof ye||e instanceof T?new Ee("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new Ee("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Ee("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Ee("CLIENT_ERROR",e.message,e.cause):pS(e)?new Ee("CLIENT_ERROR",li(e),e):new Ee("EXECUTION_ERROR",li(e),e)}function sa(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return ru(n,e.statementIndex,r.type)}return n}var dS=2,la=5,fS=3e4,ES=10*6e4+3e4,ua=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??dS;if(!Number.isSafeInteger(r)||r<1||r>la)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${la}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??fS,this.quarantineMs=n.quarantineMs??ES}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 go(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>la)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${la}.`)}};function RS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function mS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=RS){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function yS(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Hf(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await yS(mS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Yf(e){return jf(e,hS(e))}function jf(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=AS(o.options),s=SS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ca(o.minValue),maxValue:ca(o.maxValue),minLength:ca(o.minLength),maxLength:ca(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!gS.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...jf(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var gS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function hS(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 ca(e){return e==null||e===""?void 0:e}function AS(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 SS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function zf(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 TS="Filter aborted because of too many search results";function qf(e){return e?.includes(TS)===!0}var Jf="/k/v1/records.json",pa="/k/v1/records/cursor.json",IS=4096,wS=2,iu=e=>kintone.api.url(e,!0);function bS(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(Jf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=IS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:iu(Jf),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 ui(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
12
+ `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function PS(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return ui({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}),ui(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}),ui(n)}}function NS(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(iu(e),t,n)}catch(r){throw ui(r)}}function CS(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Xf(e={}){let t=e.cursorMaxActive??wS;CS(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=bS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await PS(l);let d=await l.json();return qf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw ui(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 ua(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),p;try{p=await n.runCreate(()=>un(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 ho(R))}let c=p.id,u=Hf(Number(p.totalCount),{get:()=>un(pa,"GET",{id:c}),delete:()=>un(pa,"DELETE",{id:c}),isAlreadyReleasedError:NS,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return Yf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return rp(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:zf(s.states)}}}}var Qf=new Set(["postRecords","putRecords","deleteRecords"]),ci=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Ut(e){try{return await e()}catch(t){throw new ci(t)}}function OS(e){return()=>{throw Ke(`${String(e)} is blocked by the readonly client`)}}function Yn(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await Ut(()=>t(l));if(d.searchAborted===!0)throw Wf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>p()),close:()=>Ut(()=>c())}},getApps:()=>Ut(()=>r()),getFields:l=>Ut(()=>i(l)),getNumberPrecision:l=>Ut(()=>o(l)),getProcessStatuses:l=>Ut(()=>a(l))});return new Proxy(s,{get(l,d,p){return Qf.has(d)?OS(d):Reflect.get(l,d,p)},has(l,d){return Qf.has(d)?!1:Reflect.has(l,d)}})}function LS(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new ci(o.reason)})(),n)}}}async function jn(e,t){let n=LS(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var _S="A-Za-z",DS="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",au=`${_S}${DS}`,eE=`${au}0-9_`,vS=new RegExp(`^[${au}]$`,"u"),US=new RegExp(`^[${eE}]$`,"u"),MS=new RegExp(`^[${au}][${eE}]{0,63}$`,"u");function kS(e){return vS.test(e)}function FS(e){return US.test(e)}function su(e){let t=e.normalize("NFC").toUpperCase();if(!MS.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 ou(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 xS(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 KS(e,t){let n=t>0?e[t-1]:"";if(ou(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,!kS(e[l]??""))return null;for(l++;l<e.length&&FS(e[l]);)l++;s=l;try{o=su(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&&ou(e[l]);)l++;if(l===f)return null}let d=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&xS(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(ou(c))return null;let u={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:d,fullEnd:l};return r==="physical"?{...u,source:r,appId:i}:{...u,source:r,logicalName:o}}function lu(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
13
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=KS(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Zf(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function tE(e,t="dev",n){let r=lu(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let h=n.resolveLogicalApp(m.logicalName,y);l.set(g,h),s.add(h)}let d=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let h of g){let S=Zf(s);d.set(`physical:${m}@${h}`,S),p.set(S,{source:"physical",mappedAppId:S,appId:m,profile:h})}}let c=[],u=[],f=0,E=0,R=(m,y,g,h)=>{if(!m&&y===g)return;let S=f;c.push(m),f+=m.length,u.push({normalizedStart:S,normalizedEnd:f,sourceStart:y,sourceEnd:g,...h===void 0?{}:{bindingMappedAppId:h}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:d.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let w=`logical:${m.logicalName}@${y}`,I=d.get(w);I===void 0&&(I=Zf(s),d.set(w,I)),g={source:"logical",logicalName:m.logicalName,mappedAppId:I,appId:l.get(w),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let h=e.slice(m.referenceValueEnd,m.appEnd),S=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${h}`:`APP${g.mappedAppId}${h}`;R(S,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:u}}var nE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),rE=new Set([...nE,"onLimitReached"]),BS=new Set([...rE,"variables","tempTableMaxRows"]);function iE(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function pi(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function oE(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 $S(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 aE(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=su(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`);pi(r,`logicalApps.${n}`),t[i]=r}return t}function sE(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&&pi(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&pi(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(pi(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 uu(e,t){iE(e);let n=t==="run"?rE:nE;oE(e.client);let r=sE(e,n,t==="run"?"runQuery":"explainQuery"),i=aE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function lE(e){iE(e),oE(e.client),e.variables!==void 0&&$S(e.variables),e.tempTableMaxRows!==void 0&&pi(e.tempTableMaxRows,"tempTableMaxRows");let t=sE(e,BS,"runBatch"),n=aE(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 GS(e,t,n){return e.slice(t,n)}function di(e,t,n){let r=lu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${GS(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=tE(e,"browser",{resolveLogicalApp(d){let p=n?.[d];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${d} is not defined.`);return p}}),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 fi(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 da(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 VS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function WS(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function fa(e,t=e.metrics){let n=Wd(e);return{type:"query",rows:e.rows.map(VS),columns:e.columns.map(r=>WS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:da(t)}}function uE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function cE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function cu(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function pE(e){if(e instanceof oe)return Hn(e.message,e);let t=ln(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function HS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return uE(e,{import:!0})}catch(t){let n=pE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function dE(e){if(hi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function fE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return cE(e,{import:!0})}catch(t){throw pE(t)}}function YS(e){let t=dE(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!dn(t))throw Ke(`${n} statements are not read-only`);if(cu(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!Au(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function EE(e){let t=dE(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!dn(n))throw Ke(`${n.type} statements are not read-only`);if(cu(n))throw Ke("APPLY statements are not allowed in engine library batches");if(Mt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function RE(e){let t=HS(e);return YS(t),t}function mE(e){let t=fE(e);return t.forEach(EE),t}function yE(e){let t=e.trim(),n=fE(t);n.forEach(EE);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 jS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new Ee("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return ru(n,e.index,e.type)}async function gE(e,t){let n=[],r=[];try{let i=lE(t),o=di(e,i.client,i.logicalApps);r=o.logicalBindings,n=mE(o.sql);let a=await jn(o.client,p=>Qd(o.sql,Yn(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw jS(s);let l=[],d=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};return p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"&&(c.resultIndex=l.length,l.push(fa(p.result,a.metrics))),c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw fi(sa(i,n),r)}}function hE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function AE(e,t){let n=[];try{let r=uu(t,"run"),i=di(e,r.client,r.logicalApps);n=i.logicalBindings;let a=RE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await jn(i.client,l=>Ol(i.sql,Yn(l),{...a,captureColumnMeta:!0}));return hE(s),fa(s)}catch(r){throw fi(ln(r),n)}}async function SE(e,t){let n=[],r=[];try{let i=uu(t,"explain"),o=di(e,i.client,i.logicalApps);r=o.logicalBindings;let a=yE(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await jn(o.client,c=>Ol(a.legacySql,Yn(c),i.executeOptions));hE(d);let p=d.rows.map(c=>String(c.plan??""));return{type:"explain",lines:p,text:p.join(`
14
+ `),metrics:da(d.metrics)}}let s=await jn(o.client,d=>Bf(o.sql,Yn(d),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=s.statements.flatMap(d=>[...s.statementCount>1?[`[${d.index+1}] ${d.type}`]:[],...d.plan]);return{type:"explain",lines:l,text:l.join(`
15
+ `),metrics:da()}}catch(i){throw fi(sa(i,n),r)}}var zS="3.37.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});