@rex0220/kintone-sql-tools 3.64.0 → 3.65.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,17 +1,17 @@
1
- async function ve(e,t,n,r,i={}){let o=i.pageSize??Dg,a=Math.max(1,i.parallel??vg),s=i.maxRecords??Ug,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let c=p??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,d=[],f=!1,R=`\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`,E=0,g=0,y=Zc(n,E),m=await Qc(e,t,y,u,o,g);if(Xc(m,i),d.push(...m.records),p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new ke(R)}if(m.records.length<o)return d;for(g+=o,g>=Ss&&(E=ep(m.records),g=0);;){if(p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new ke(R)}let S=c-d.length,A=Math.ceil(S/o),N=Math.max(1,Math.min(a,A)),b=[];for(let _=0;_<N;_++){let C=g+_*o;if(C>=Ss)break;b.push(C)}let v=Zc(n,E),P=await Promise.all(b.map(_=>Qc(e,t,v,u,o,_)));for(let _ of P)Xc(_,i);let k=!1;for(let _ of P){if(d.push(..._.records),p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new ke(R)}if(_.records.length<o){k=!0;break}}if(k)break;if(g+=o*b.length,g>=Ss){let _=P[P.length-1];E=ep(_.records),g=0}}return d}function Xc(e,t){e.searchAborted&&t.onSearchAborted?.()}function tp(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 Dg=500,vg=1,Ug=1e4,Ss=1e4;async function Qc(e,t,n,r,i,o){let a=kg(n,i,o);return e({app:t,query:a,fields:r})}function Zc(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 kg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function ep(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 ke=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var Mg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function xg(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 Se(e){let t=Mg.exec(e.trim());if(t===null)return null;let n=xg(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 Ts(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 np(e){let t=Se(e);return t===null?null:Ts(t)}function Fg(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 Zi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Fg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function eo(e,t){let n=Se(e),r=Se(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Zi(n,r)}var Pe="__NO_FROM__";function Is(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function to(e){return e.windowKind==="AGGREGATE"}function ws(e){return e.windowKind==="VALUE"}function me(e){return{type:"NUMBER",value:Number(e),raw:e}}function Y(e){let t=e.raw??String(e.value);return np(t)??t}function rp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: 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 Gg(e){return`${e.tableAlias??""}\0${e.field}`}function Z(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=Gg(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 ip(e){return Z(e).type!=="NONE"}function op(e,t){let n=Z(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),p=r.get(l.canonicalId);if(p)return p;let c={...l,field:s};return r.set(c.canonicalId,c),c},o=n.allItems.map(i).filter((s,l,p)=>p.findIndex(c=>c.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function io(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Ft(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function Kg(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 bs(e){return Ft(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function kn(e){return!bs(e)&&(Kg(e.type)||Ft(e.type))}function ap(e){return kn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var sp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ce(e,t){for(let n of t)e.add(n)}function no(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"&&sp.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=>no(i,t)):no(r,t))}function ro(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"&&!sp.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=>ro(i,t)):ro(r,t))}function xt(e){let t=new Set;if(Ft(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ce(t,Un(e));break;case"UNION":Ce(t,up(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ce(t,xt(n.query));Ce(t,xt(e.query));break;case"CREATE_TEMP_TABLE":Ce(t,xt(e.query));break;default:break}return no(e)&&t.add("STATISTICAL_AGGREGATE"),ro(e)&&t.add("AGGREGATE"),t}function lp(e){return xt(e).size>0}function up(e){let t=e.left.type==="SELECT"?Un(e.left):up(e.left);return Ce(t,Un(e.right)),e.all||t.add("DISTINCT"),t}function Un(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=Z(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ce(t,Un(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ce(t,vn(i.condition));return Ce(t,vn(e.where)),Ce(t,vn(e.having)),no(e)&&t.add("STATISTICAL_AGGREGATE"),ro(e)&&t.add("AGGREGATE"),t}function vn(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")&&Ce(t,Un(e.right.query));break;case"LOGICAL":Ce(t,vn(e.left)),Ce(t,vn(e.right));break;case"NOT":case"GROUP":Ce(t,vn(e.expr));break;case"EXISTS":Ce(t,Un(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function cp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function pp(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 oo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),nn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),mr=new Set([...nn,...oo]),rn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",St="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return oo.has(e)}function Mn(e){return nn.has(e)}function Xe(e){return mr.has(e)}var Bg=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})}),Cs=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})}),Ar="v1";function z(e){throw new Error(`UnsupportedError: APPLY ${Ar} scope does not support ${e}`)}function $g(e,t){let n=Ar;Ar=e;try{return t()}finally{Ar=n}}function Vg(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 Gn(e,t){return $g(e,()=>Wg(t,Bg[e]))}function Wg(e,t){let n=Vg(e);if(n===null)return;if(n.type==="UPSERT"){Yg(n,t);return}let r=n.applyBlocks;if(Ns(r),!t.multipleBlocks&&r.length!==1&&z("multiple APPLY blocks in this phase"),n.type==="INSERT"){jg(n,r,t);return}let i=n;i.subtableCode&&z("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&z("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&z("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&z("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&z("REJECT LIMIT in this phase"),zg(i.where,t.multipleParents),fp(r,t)}function fp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||z(`${r.kind} in this phase`);Ep(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)ao(i,"APPEND targets");Fn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&z("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&dp(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&z("EXPECT ROWS in this phase"),r.assignments.length===0&&z("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(".")&&z("parent or qualified PATCH targets in this phase")}Fn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&dp(r.selector.where,t.idxSelectors)}}}}function Ep(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 Hg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Rp(e,t){if(Ep(e),e.targetKind==="MULTI_VALUE"){if(!Hg.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 Ns(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Ar} scope allows only one block for table ${n.field}`);t.add(n.field)}}function Yg(e,t){t.upsert||z("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&z("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&z("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&z("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];Ns(n),Ns(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&z("multiple APPLY blocks in this phase"),gp(n,"UPSERT ON INSERT"),fp(r,{...t,idxSelectors:!1,expectRows:!1})}function gp(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&z(`${r.kind} for ${t} in this phase`);for(let i of r.fields)ao(i,"APPEND targets");Fn(r.values,"APPEND values")}}function jg(e,t,n){n.insert||z("INSERT in this phase"),e.subtableCode&&z("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&z("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&z("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&z("REJECT LIMIT in this phase"),gp(t,"INSERT")}function Tt(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 so(e,t){let n=Cs[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Os(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${xn(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 ${xn(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 ${xn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Tt(t.where))throw new Error(`UnsupportedError: APPLY ${xn(e)} execution does not support multiple-parent APPLY`)}function Os(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 yp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Tt(t.where))&&!Cs[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} public multiple-parent write is not connected`)}function Kn(e){if(!Cs[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} internal prepared write is not available`)}function xn(e){return`Phase ${e.slice(5)}`}function zg(e,t){Tt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&z("a parent $id that is not a positive safe integer in this phase"),t||z("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Ps(e,t))}function Ps(e,t){if(Array.isArray(e)){for(let o of e)Ps(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")&&z("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&z("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&z("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)&&z("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&z("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Ps(o,t)}function dp(e,t){Fn(e,"child row selectors",t)}function Fn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Fn(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")&&z(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&z(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&z(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&z(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&z(`qualified or parent field references in ${t}`),ao(l,t,n)}if(i==="FIELD_REF"&&ao(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Fn(s,t,n)}function ao(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&z(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&z(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&z(`aggregate expressions in ${t}`)}function hr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=qg(e.op);if(t===null)throw new se(`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:hr(e.left),right:hr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:hr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function qg(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 mp(e){return e.includes("%")||e.includes("_")}function Sr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Kt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Gt(e){if(e===null)return!1;if(Sr(e))return!0;switch(e.type){case"LOGICAL":return Gt(e.left)||Gt(e.right);case"NOT":case"GROUP":return Gt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Te(e){if(e===null)return!1;if(Kt(e))return!0;switch(e.type){case"LOGICAL":return Te(e.left)||Te(e.right);case"NOT":case"GROUP":return Te(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function H(e){switch(e.type){case"BINARY":return Jg(e);case"NULL_CHECK":return Qg(e);case"LOGICAL":return Zg(e);case"NOT":return ey(e);case"GROUP":return ty(e);case"EXISTS":throw new se("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new se("internal error: BOOLEAN predicate reached kintone query conversion")}}function Jg(e){if(Sr(e))throw new se("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=hp(e.left),n=Xg(e.op),r=ny(e.right,e.op);return`${t} ${n} ${r}`}function Xg(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 Qg(e){let t=hp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Zg(e){let t=H(e.left),n=H(e.right),r=e.op==="AND"?"and":"or",i=Ap(e.left)?`(${t})`:t,o=Ap(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function ey(e){return H(hr(e.expr))}function ty(e){return`(${H(e.expr)})`}function hp(e){if(e.type==="FUNC_FIELD")throw new se(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new se("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new se("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 se("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 se("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return cy(e.field)}function ny(e,t){switch(e.type){case"VARIABLE":throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new se(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Sp(e);case"NUMBER":return Y(e);case"KINTONE_FUNC":return Tp(e);case"IN_LIST":return ly(e,t);case"ARITH_VALUE":throw new se("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 se("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 se("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new se("\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 se("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Sp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Tp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return ry(e)}function ry(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Tr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ay(e.args.offset,e.args.offsetText)||!iy.has(e.args.unit)?Tr():`${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&&!oy.has(e.args.weekday)?Tr():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"||!sy(e.args.day)?Tr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Tr()}var iy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),oy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ay(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function sy(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Tr(){throw new se("internal error: invalid relative date function AST reached kintone query conversion")}function ly(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new se("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return uy(e.values),`(${e.values.map(r=>r.type==="STRING"?Sp(r):r.type==="NUMBER"?Y(r):Tp(r)).join(",")})`}function uy(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function cy(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Ap(e){return e.type==="LOGICAL"}var se=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function lo(e){return`'${e.replace(/'/g,"''")}'`}function Bn(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 Y(e);if(e.type==="STRING_FUNC")return _s(e);let n=`${Bn(e.left)}${e.op}${Bn(e.right)}`;return t?n:`(${n})`}function Ip(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return _s(e.expr);if(e.type==="AGG_FIELD")return ut(e.expr);if(e.type==="ARITH_FIELD")return Bn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ls(e.expr)}function bp(e){switch(e.type){case"STRING":return lo(e.value);case"NUMBER":return Y(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=>lo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(bp).join(",")})`;case"ARITH_VALUE":return Bn(e.expr);case"CASE_VALUE":return Ls(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Ir(e){switch(e.type){case"BINARY":return`${Ip(e.left)} ${e.op.replace("_"," ")} ${bp(e.right)}`;case"NULL_CHECK":return`${Ip(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Ir(e.left)} ${e.op} ${Ir(e.right)})`;case"NOT":return`NOT (${Ir(e.expr)})`;case"GROUP":return`(${Ir(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function wp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>lo(t.value)).join(",")}]`:e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ut(e):e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e):on(e)}function Ls(e){let t=e.branches.map(r=>`WHEN ${Ir(r.condition)} THEN ${wp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${wp(e.elseResult)}`;return`CASE ${t}${n} END`}function py(e){return e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ut(e):on(e)}function _s(e){return`${e.func}(${e.args.map(py).join(",")})`}function on(e){switch(e.type){case"STRING":return lo(e.value);case"NUMBER":return Y(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return _s(e);case"CASE_WHEN":return Ls(e);case"SCALAR_ARITH":return`(${on(e.left)}${e.op}${on(e.right)})`;case"CONCAT_OP":return`(${on(e.left)}||${on(e.right)})`}}function dy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e,!0):on(e)}function Ee(e,t,n){let r=dy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ut(e){return e.type==="NUMBER"?Y(e):e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ut(e.left)}${e.op}${ut(e.right)}`}var Np=Symbol("ksql.groupingRowMeta"),Pp=new WeakMap;function Ds(e,t){return Object.defineProperty(e,Np,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function vs(e){return e[Np]}function fy(e){return vs(e)?.includedCanonicalIds}function Cp(e,t){Pp.set(e,t)}function $n(e,t){let n=fy(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Pp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var uo=["$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 Us(e){return e.startsWith("_")||e.startsWith("$")}var Ey=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ms(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ms);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"?Ey.test(t.field):Object.values(t).some(Ms)}function Ry(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 Ke(e)||Ms(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var gy=["_pid","_rid","_idx"];function ks(e){return[...new Set(e)]}function yy(e){switch(e.kind){case"APP":return ks([...e.fieldCodes,...uo]);case"SUBTABLE":return ks([...e.childFieldCodes,...gy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return ks(e.columns)}}function Op(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:yy(t(r,i))}))}function Lp(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 _p(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Dp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Lp(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:_p(a,r.fieldCode)}}function my(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Ay(e,t,n){let r=Lp(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:_p(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>my(l)===e?[{column:l,columnIndex:p}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],p=Ry(l.column);return p==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:p==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&Ee(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function vp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Ay(r.name,t,n):{kind:"EXPRESSION"})}}var hy="B65_NON_GROUPED_DEPENDENCY",Fs=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function co(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field: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 Gs(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return co(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?co(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Ks(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function kp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Mp(e){return e.type==="WINDOW_COL"}function Sy(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Bt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let p=e.map(c=>Bt(c,t));return p.some(c=>c===null)?null:`[${p.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Ks(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Bt(n.expr,t);let i=typeof r=="string"?Fs.get(r):void 0;if(i!==void 0)return Bt(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${Sy(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Gs(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let p of Object.keys(n)){if(p==="type"||a.has(p))continue;let c=Bt(n[p],t);if(c===null)return null;s.push(`${p}=${c}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Ty(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Iy(e){let t=new Map;for(let n of e){let r=Ty(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Bs(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var wy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function po(e){if(e&&typeof e=="object"){let t=e,n=Gs(t);if(n!==null)return Bs(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?Fs.get(t.type):void 0;if(i!==void 0){let a=po(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Up(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Bs(n),o=po(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${hy})`)}function an(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)an(a,t);return}let n=e;if(Ks(n)||kp(n)||Mp(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw Up(t.clause,t.expression,"WILDCARD",t.policy);let r=Gs(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&wy.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let p=new Set(t.resolvingAliases);p.add(r.field),an(l[0],{...t,resolvingAliases:p});return}}let a=Bt(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw Up(t.clause,t.expression,r,t.policy);return}let i=Bt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Fs.get(n.type):void 0;if(o!==void 0){an(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||an(n[a],t)}function wr(e,t){let n=Iy(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&an(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&an(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?co(r.key.name):r.key;an(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function xs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(xs);let t=e;return Ks(t)||Mp(t)?!1:kp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(xs)}function Vn(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&xs(t))}function by(e){return e.type==="FIELD_NAME"?co(e.name):e.expr}function xp(e,t,n){let r=Z(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=Dp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Bt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Bt(by(i[R]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,p=s.map(f=>f.cteName??l(f)).join(" / "),c=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:po(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,d=i.every((f,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:p,groupingLabel:c,migrationSourceSql:u,migrationGroupingFields:d}}function fo(e){if(Z(e).type!=="NONE"||!Vn(e))return;let t={identities:new Set,resolveField:n=>`ast:${Bs(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};wr(e,t)}function Fp(e){return`FIELD:${e}`}var Gp=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function $s(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Be(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Be(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=>Be(r,t))}}function go(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>go(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Be(n.arg,t);return}Object.values(n).forEach(r=>go(r,t))}}function Ke(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ke);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(Ke)}function Ny(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ke(e):!1}function Py(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${$s(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${$s(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Cp(e,r.canonicalId)}function Vs(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Be(i,n);Be(e.having,n),Be(e.orderBy,n);let r=[];Be(e.where,r),Be(e.joins,r),go(e.columns,r),go(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Be(i,r);if(r.length>0)throw new Error("ArgumentError: 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: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");fo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Kp(e,t,n=()=>{}){Vs(e);let r=Z(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&Be(p,i);if(Be(e.having,i),Be(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=op(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: grouping item ${$s(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)Py(p,t,a);wr(e,{identities:new Set([...a].map(Fp)),resolveField:p=>t(p).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let p of s)l.add(p.directKey),p.unqualifiedBridgeKey!==null&&l.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!Ny(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&l.has(c))throw new Error(`ArgumentError: aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Cy(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||Z(e).type!=="NONE"||e.distinct||Cy(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&Hp(t.expr)||t.type==="SCALAR_VALUE_COL"&&Nr(t.expr))||It(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function It(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Bp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Sr(e);case"NULL_CHECK":return Bp(e.field);case"LOGICAL":return It(e.left)||It(e.right);case"NOT":case"GROUP":return It(e.expr);case"EXISTS":return!0}}function Bp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function mo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(H(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Oy).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:Ly(e.columns),totalCount:!1}}function Wp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!It(e.where)&&n.push(H(e.where)),{app:t,query:n.join(" "),fields:[]}}function sn(e,t,n){let i=jp(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 Oy(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 Ly(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(Ao(r.field)):r.type==="ARITH_COL"?br(r.expr,n):r.type==="STRFUNC_COL"?Ws(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Wn(r.expr,n);return[...new Set(n)]}function _y(e,t){br(e.left,t),br(e.right,t)}function br(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(Ao(e.field)):e.type==="ARITH"?_y(e,t):e.type==="STRING_FUNC"&&Ws(e,t)}function Ao(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ws(e,t){for(let n of e.args)Dy(n,t)}function Dy(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){yo(e,t);return}Wn(e,t)}function Wn(e,t){if(e.type==="FIELD"){t.push(Ao(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ws(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Wn(e.left,t),Wn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)$p(n.result,t);e.elseResult&&$p(e.elseResult,t)}}function $p(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){yo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){br(e,t);return}Wn(e,t)}}function yo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&vy(e.arg,t);return}e.type==="AGG_ARITH"&&(yo(e.left,t),yo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Ao(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function vy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?br(e,t):Wn(e,t)}function Hp(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Nr(t))}function Nr(e){return e.type==="STRING_FUNC"?Hp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Nr(e.left)||Nr(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==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Nr(e)}function Yp(e,t){let n=new Set,r=jp(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function jp(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,p=new Map;for(let h of o)h.alias&&p.set(h.alias,h),h.cteName!==null?p.set(h.cteName,h):h.subtableCode||(p.set(`APP${h.appId}`,h),p.set(`app${h.appId}`,h));let c=Uy(e.columns),u=h=>{let I=a.get(h);I&&(I.allFields=!0,I.fields.clear())},d=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},R=(h,I)=>{let M=a.get(h);if(!(!M||M.allFields)){if(h.subtableCode){if(I.startsWith("_p.")){let O=I.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}I&&M.fields.add(I)}},E=(h,I="select",M)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let F=h.slice(0,-2);if(!F){d();return}if(F==="_p"){f();return}let W=p.get(F);if(W){u(W);return}return}if(I==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let F=r[M.sourceIndex];F&&(n||F.cteName===null)&&R(F,M.fieldCode)}return}if((I==="orderBy"||I==="having"||I==="groupBy")&&c.has(h)||(I==="orderBy"||I==="having"||I==="groupBy")&&ky(h))return;let O=h.indexOf(".");if(O>0){let F=h.slice(0,O),W=h.slice(O+1);if(F==="_p"){l&&R(l,`_p.${W}`);return}let j=p.get(F);if(j){R(j,W);return}if(n)return}n?n.unqualified.add(h):s&&R(s,h)},g=(h,I,M="select")=>{if(I){if(I==="_p"){l&&R(l,`_p.${h}`);return}let O=p.get(I);if(O){R(O,h);return}if(n)return}E(h,M)},y=(h,I="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){E(h.field,I);return}if(h.type==="ARITH"){y(h.left,I),y(h.right,I);return}if(h.type==="STRING_FUNC"){A(h,I);return}},m=(h,I="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&b(h.arg,I);return}h.type==="AGG_ARITH"&&(m(h.left,I),m(h.right,I)),h.type==="AGG_GROUP_KEY"&&g(h.field,h.tableAlias??null,I)},S=(h,I="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){m(h,I);return}N(h,I)},A=(h,I="select")=>{for(let M of h.args)S(M,I)},N=(h,I="select")=>{if(h.type==="FIELD"){g(h.field,h.tableAlias,I);return}if(h.type==="STRING_FUNC"){A(h,I);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){N(h.left,I),N(h.right,I);return}h.type==="CASE_WHEN"&&P(h,I)},b=(h,I="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,I);return}N(h,I)},v=(h,I="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){m(h,I);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,I);return}N(h,I)}},P=(h,I="select")=>{for(let M of h.branches)C(M.condition,I),v(M.result,I);h.elseResult&&v(h.elseResult,I)},k=(h,I="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){m(h.aggregateRef,I);return}g(h.field,h.tableAlias,I);return}if(h.type==="FUNC_FIELD"){A(h.expr,I);return}if(h.type==="AGG_FIELD"){m(h.expr,I);return}if(h.type==="ARITH_FIELD"){y(h.expr,I);return}h.type!=="GROUPING_FIELD"&&P(h.expr,I)},_=(h,I="select")=>{if(h.type==="ARITH_VALUE"){y(h.expr,I);return}if(h.type==="CASE_VALUE"){P(h.expr,I);return}},C=(h,I="where")=>{if(h)switch(h.type){case"BINARY":k(h.left,I),_(h.right,I);return;case"NULL_CHECK":k(h.field,I);return;case"LOGICAL":C(h.left,I),C(h.right,I);return;case"NOT":case"GROUP":C(h.expr,I);return;case"EXISTS":case"BOOLEAN":return}},U=(h,I)=>{if(h.type==="FIELD_NAME"){E(h.name,"groupBy",I);return}if(h.type==="ARITH_KEY"){y(h.expr,"groupBy");return}A(h.expr,"groupBy")},w=(h,I="orderBy")=>{if(h.type==="FIELD_NAME"){E(h.name,I);return}if(h.type==="ARITH_KEY"){y(h.expr,I);return}h.type!=="GROUPING_KEY"&&A(h.expr,I)};for(let h of e.columns)switch(h.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&b(h.arg,"select");break;case"ARITH_AGG_COL":m(h.expr,"select");break;case"ARITH_COL":y(h.expr,"select");break;case"CASE_COL":P(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":N(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&b(h.arg,"select");for(let I of h.partitionBy)g(I.field,I.tableAlias,"select");for(let I of h.orderBy)w(I.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(g(h.on.left.field,h.on.left.tableAlias,"where"),g(h.on.right.field,h.on.right.tableAlias,"where"));C(e.where,"where");let D=Z(e);if(D.type==="PLAIN")D.allItems.forEach((h,I)=>U(h,t?.items[I]));else if(D.type==="GROUPING_SETS")for(let h of D.allItems)g(h.field,h.tableAlias,"select");C(e.having,"having");for(let h of e.orderBy)w(h.key);return a}function Uy(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(Ee(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 ky(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function $t(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||ip(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Vt(e){let t=e.ctes[0].query,n=e.query,r=ho(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 ho(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:zp(e.left,t)};case"NULL_CHECK":return{...e,field:zp(e.field,t)};case"LOGICAL":return{...e,left:ho(e.left,t),right:ho(e.right,t)};case"NOT":case"GROUP":return{...e,expr:ho(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function zp(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var My=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),xy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ee(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":xy.has(e.fieldType)?t="option":My.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 K(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Hn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function So(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}var Ve=["=","!=",">","<",">=","<="],Fy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Gy=new Set(Ve),Ky=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"])]]),By=new Map([["TODAY",new Set(Ve)],["NOW",new Set(Ve)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),$y=["=","!=","in","not in"],Vy=new Map([["RECORD_NUMBER",new Set([...Ve,"in","not in"])],["__ID__",new Set([...Ve,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Ve)],["UPDATED_TIME",new Set(Ve)],["DATE",new Set(Ve)],["TIME",new Set(Ve)],["DATETIME",new Set(Ve)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Ve,"in","not in"])],["CALC",new Set([...Ve,"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($y)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Wy=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"])]]),Ys=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"]),Xp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Io(e){return Vy.get(e)??new Set}function Qp(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Ys.has(o.fieldType)&&Io(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ge(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Cr(e,t)}function Cr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Hy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Hs():zy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Hs();case"GROUP":return Cr(e.expr,t);case"NOT":{let n=Cr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ed(n.reasons)?Lr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Cr(e.left,t),r=Cr(e.right,t);return Jy(e.op,n,r)}}}function Hy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return Yy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&qp(n))return Jp(e,t,n,r);if(n.type==="IN_LIST"){let c=n.values.filter(u=>u.type==="KINTONE_FUNC");if(c.length>0)return n.values.length===1&&c.length===1?Jp(e,t,c[0],r):To("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",c[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Or(e))}if(t.type!=="FIELD")return Hs();let i=r(t);if(!i)return Yn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Or(e));let o=Or(e);if(!Zp(i.fieldType,o))return Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!qy(i.fieldType,e))return Yn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Io(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||qp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!p?{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 qp(e){return e.type==="KINTONE_FUNC"&&nn.has(e.name)}function Jp(e,t,n,r){let i=Or(e),o=n.name;if(!nn.has(o)||t.type!=="FIELD")return To("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Ky.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?To("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):By.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:To("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Yy(e,t,n,r){let i=Or(e),o=n.name;if(t.type!=="FIELD")return Pr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?jy(n)?Gy.has(i)?!Fy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Pr("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}]}:Pr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Pr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Pr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function jy(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 zy(e,t,n){let r=n(e);return r?Zp(r.fieldType,t)?!Ys.has(r.fieldType)&&!Xp.has(r.fieldType)?Yn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Yn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Zp(e,t){let n=Wy.get(e);return n===void 0||n.has(t)}function qy(e,t){return Ys.has(e)?!0:Xp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Or(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 Jy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Lr({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")?Lr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Lr({capability:"LOCAL_ONLY",reasons:r})}function Hs(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Yn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function To(e,t,n,r,i){return Lr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Pr(e,t,n,r,i){return td({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ed(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Xy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&nn.has(t.functionName))}function td(e){if(e.capability==="EXACT_PUSHDOWN"||!ed(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&&ne(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 Qy(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&&nn.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 Lr(e){return Qy(td(e))}function _r(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]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function wo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function bo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!_r(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function No(e){let t=e.raw??String(e.value),n=Se(t);if(n===null)return!1;if(n.sign===0)return Y(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=Ts(n);return Y(e)===o}var Zy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),em=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),tm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),nm=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Po(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?tm.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?im(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?rm(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&No(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&No(e.right)?"exact":"unsafe":em.has(r)?js(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?js(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||nm.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?_r(e.right.value)?"exact":"unsafe":r==="TIME"?wo(e.right.value)?"exact":"unsafe":bo(e.right.value)?"exact":"unsafe":Zy.has(r)?!js(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function nd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function js(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function rm(e){let t=n=>n.type==="NUMBER"&&No(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function im(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function zs(e,t={}){return _o(e,t).condition}function _o(e,t={}){return Co(e,n=>om(n,t))}function Dr(e,t={}){return Oo(e,n=>nd(n,r=>Lo(r,t)))}function Co(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=Co(e.left,t),r=Co(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return Co(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Oo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Oo(e.left,t),r=Oo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Oo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function om(e,t){if(am(e,t)||sm(e,t))return"exact";if(e.left.type!=="FIELD"||!Lo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||ge(e,i=>{if(!Lo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ee({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Po(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function am(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Lo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function sm(e,t){return!lm(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function lm(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 Lo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function vr(e,t={}){let n=e!==null&&t.extractCondition!==!1?_o(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;jn(r,o);let a=new Set;return jn(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function ln(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=vr(e.where,{...r,extractCondition:i&&o&&n,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,p=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let d=_o(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(u.table.alias,d.condition),p.set(u.table.alias,d.relation))}let c=new Set(a.appliedKlikes);for(let u of l.values())jn(u,c);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:p,appliedKlikes:c,allKlikes:a.allKlikes}}function qs(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function jn(e,t){if(e!==null){if(Kt(e)){t.add(e);return}switch(e.type){case"LOGICAL":jn(e.left,t),jn(e.right,t);return;case"NOT":case"GROUP":jn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Do(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=Ae(t.where);if(l.length===0||!pm(l,a)||o===null||!rd(o,l))return null;let p={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:cm(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},c={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:p};return um(c,e,l),c}function um(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(!rd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(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"&&Xe(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function cm(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Xe(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Xe(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 pm(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function rd(e,t){let n=new Map;for(let r of t){if(!Xe(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 ue=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function id(e){od(e)}function Xs(e){if(qs(e).length>0)throw new ue("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 od(e){switch(e.type){case"SELECT":zn(e);return;case"UNION":Zs(e);return;case"WITH":ad(e);return;case"EXPLAIN":od(e.query);return;case"CREATE_TEMP_TABLE":Qs(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":un(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Tt(e.where)&&Te(e.where)){Js(e.where),un(e);return}if(Wt(e)&&e.subtableCode)throw new ue("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&&Te(e.where)&&!Em(e,e.where)){Js(e.where),un(e);return}if(Wt(e))throw new ue("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(Wt(e)&&e.subtableCode)throw new ue("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&&Te(e.where)){Js(e.where),un(e);return}if(Wt(e))throw new ue("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(Wt(e))throw new ue("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Wt(e))throw new ue("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Wt(e))throw new ue("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(Wt(e))throw new ue("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 Js(e){Uo(e,t=>{if(!Kt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ue("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 ue("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 Qs(e){e.type==="SELECT"?zn(e):e.type==="UNION"?Zs(e):ad(e)}function Zs(e){Qs(e.left),zn(e.right)}function ad(e){if($t(e)){zn(Vt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?zn(t.query):t.query.type==="UNION"&&Zs(t.query);Qs(e.query)}function zn(e){if(fm(e),Te(e.where)&&!($e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=ln(e,{allowUnresolvedVariables:!0});if(qs(n).length===0){un(e);return}if(dm(e)){un(e);return}throw new ue("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")}un(e)}function dm(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function fm(e){Uo(e,t=>{if(!Kt(t))return;if(!vo(e.where,t))throw new ue("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 ue("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 ue("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 un(e){ko(e,t=>{t.type==="SELECT"&&zn(t)},!0)}function Wt(e){let t=!1;return ko(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Em(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 vo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return vo(e.left,t)||vo(e.right,t);case"NOT":case"GROUP":return vo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Uo(e,t){if(Array.isArray(e)){for(let r of e)Uo(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&&Rm(r)||Uo(r,t)}function ko(e,t,n=!1){if(Array.isArray(e)){for(let i of e)ko(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))ko(i,t)}function Rm(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Ur=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 sd(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(gm(t))throw new Ur;return;default:return}}function gm(e){let t=!1;return Mo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||ym(n.where)&&(t=!0)}),t}function ym(e){let t=!1;return Mo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Mo(e,t){if(Array.isArray(e)){for(let r of e)Mo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Mo(r,t)}function Ht(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 xo(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return Ht(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Ht(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return Ht(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Ht(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Ht(e,t,3,3);case"REGEXP_REPLACE":return Ht(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Ht(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Ht(e,t,0,0)}}var nl=1e4,wt=nl,X=e=>new Error(`ArgumentError: ${e}`),mm=e=>e.type==="VARIABLE",Yt=e=>e?.type==="STRING"&&e.fromVariable===!0;function Am(e){return e.type==="NUMBER"?Number(Y(e)):e.value}function qn(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function el(e){let t=qn(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function hm(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function ld(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw X(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function kr(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Mr(e){let t=Se(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function ud(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Fo(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function tl(e){return e.year*12+e.month-1}function cd(e,t){if(t==="MONTH"&&e.day!==1)throw X("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw X("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function Sm(e,t,n){let r=el(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=el(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Fo(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=tl(t)+(n.coefficient<0&&t.day!==1?1:0);return Fo(tl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Fo(e.year,a,n.coefficient)}function pd(e,t,n){if(e<1||e>9999)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function Tm(e){let t=Math.floor(e/12),n=e-t*12+1;return pd(t,n,1)}function dd(e){if(e.args.length<2||e.args.length>3)throw X("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(m=>Am(m));["start","stop","step"].forEach((m,S)=>{if(t[S]==="")throw X(`GENERATE_SERIES \u306E ${m} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?qn(n):null,p=typeof r=="string"?qn(r):null,c=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(ud))throw X("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||p||c||u||typeof n=="string"&&typeof r=="string"&&!(Yt(o)&&Yt(a)&&kr(n)!==null&&kr(r)!==null)){if(!l||!p)throw X(l&&typeof r!="string"||p&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let m=i===void 0?{coefficient:1,unit:"DAY"}:ld(i);return cd(l,m.unit),{kind:"DATE",start:n,stop:r,step:m.coefficient,dateUnit:m.unit,rowCount:Sm(l,p,m)}}let d=o.type==="NUMBER"?Mr(o):Yt(o)?kr(n):null,f=a.type==="NUMBER"?Mr(a):Yt(a)?kr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Yt(o))&&(a.type==="NUMBER"||Yt(a))?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=i===void 0?1:s?.type==="NUMBER"?Mr(s):Yt(s)?kr(i):null;if(R===null)throw s?.type==="NUMBER"||Yt(s)?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=d,g=f,y=R;if(y===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:g,step:y,rowCount:Fo(E,g,y)}}function Im(e){if(e.args.length<2||e.args.length>3)throw X("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(mm)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw X(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Mr(o)===null)throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(ud(o.value))throw X("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&qn(o.value)===null)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Mr(n);if(r===null)throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=ld(n.value),i=e.args[0];if(i?.type==="STRING"){let o=qn(i.value);o&&cd(o,r.unit)}}return null}let t=dd(e);if(t.rowCount>wt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function fd(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=Im(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>wt)throw X(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Go(e){let t=dd(e);if(t.rowCount>wt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=qn(t.start);if(t.dateUnit==="MONTH"){let i=tl(r);for(let o=0;o<t.rowCount;o++)n.push(Tm(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(pd(r.year+i*t.step,1,1));else{let i=el(t.start);for(let o=0;o<t.rowCount;o++)n.push(hm(i+o*t.step))}}return{...t,values:n}}function Qe(e){wm(e),sd(e),id(e),fd(e)}function wm(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;xo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var Ko=16,Ed=64,re=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function xr(e,t,n){if(Array.isArray(e)){for(let r of e)xr(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))xr(a,t,n)}}var bm=new Set(["=","!=","<>",">","<",">=","<="]);function rl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)rl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",p=n&&i==="BINARY"&&a==="right"&&l&&bm.has(String(r.op));rl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?p:o?n:!1)}}}function Nm(e){let t=e.type==="EXPLAIN"?e.query:e;return Ft(t.type)||t.type==="VALIDATE"}function il(e){if(Array.isArray(e)){for(let t of e)il(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Vs(e);for(let n of Object.values(t))il(n)}}function ol(e){if(e.length===0)throw new re("ArgumentError: SQL is empty.",0);if(e.forEach((u,d)=>{try{il(u)}catch(f){throw f instanceof Error?new re(f.message,d):f}try{Gn("phase15b",u),Qe(u)}catch(f){throw f instanceof ue||f instanceof Ur?new re(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new re(f.message,d):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let d=u==="SET_VARIABLE"?"SET":"DECLARE";throw new re(`ArgumentError: ${d} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let d=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new re(`ArgumentError: ${d} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,d)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new re(v,d)}let R=io(u),E=[],g=[],y=new Set,m=new Set,S=new Set,A=[];rl(u,A);let N=new Set;for(let v of A){let P=o.get(v.name);if(P===void 0)throw new re(`ParseError: variable @${v.name} is not defined before statement ${d+1}.`,d);if(P.kind==="scalar"&&v.kind==="array-in-list")throw new re(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,d);if(P.kind==="array"&&v.kind!=="array-in-list")throw new re(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,d);if(P.relativeDate&&Nm(u))throw new re(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,d);if(P.relativeDate&&!v.relativeDateAllowed)throw new re(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);N.has(v.name)||(P.referencedBy.push(d),N.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new re(`ParseError: variable @${u.name} is already defined.`,d);if(o.set(u.name,{index:d,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Ed)throw new re(`ParseError: batch exceeds ${Ed} variables.`,d)}u.type==="CREATE_TEMP_TABLE"?xr(u.query,y,m):u.type==="DROP_TEMP_TABLE"||xr(u,y,m);let b=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,P=new Set;xr(u.select,v,P),b=v.size>0&&P.size===0}for(let v of y){let P=t.get(v);if(P===void 0)throw new re(`ParseError: temp table ${v} is not defined in this batch.`,d);S.add(P)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(_=>_.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(_=>_.field)]:"fields"in u?u.fields:[],P=JSON.stringify(v),k=t.get(f);if(k===void 0){if(t.set(f,d),n.set(f,P),r.push(f),E.push(f),t.size>Ko)throw new re(`ParseError: batch exceeds ${Ko} temp tables.`,d)}else{if(n.get(f)!==P)throw new re(`ParseError: validation error table ${f} has a different payload schema.`,d);S.add(k)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new re(`ParseError: temp table ${u.name} is already defined.`,d);if(t.set(u.name,d),r.push(u.name),E.push(u.name),t.size>Ko)throw new re(`ParseError: batch exceeds ${Ko} temp tables.`,d)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new re(`ParseError: temp table ${u.name} is not defined in this batch.`,d);S.add(v),g.push(u.name),t.delete(u.name)}i.push({index:d,statementType:R,isDml:bs(u),isReadOnly:kn(u),hasWhere:cp(u),insertValuesCount:pp(u),appIds:[...m].sort((v,P)=>v-P),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:g,dependsOn:[...S].sort((v,P)=>v-P),tempOnlySource:b,targetAppId:Ft(R)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:lp(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),p=i.some(u=>u.requiresCompleteInput),c=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:p,tempTables:r,variables:c,warnings:c.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var Bo=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"],["CROSS","CROSS"],["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 Oe=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"}},jt=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(Jn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(al(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Oe(`\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 Oe("\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 Oe("\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&&Jn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Jn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Jn(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||!Jn(this.input[this.pos]))throw new Oe("\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&&Jn(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&&Rd(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Bo.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(!al(n))throw new Oe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Rd(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Oe(`@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 Oe("\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 Oe("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ async function ve(e,t,n,r,i={}){let o=i.pageSize??vg,a=Math.max(1,i.parallel??Ug),s=i.maxRecords??kg,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let c=p??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,d=[],f=!1,R=`\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`,E=0,g=0,y=Zc(n,E),A=await Qc(e,t,y,u,o,g);if(Xc(A,i),d.push(...A.records),p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Me(R)}if(A.records.length<o)return d;for(g+=o,g>=Ss&&(E=ep(A.records),g=0);;){if(p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Me(R)}let S=c-d.length,m=Math.ceil(S/o),N=Math.max(1,Math.min(a,m)),b=[];for(let D=0;D<N;D++){let P=g+D*o;if(P>=Ss)break;b.push(P)}let v=Zc(n,E),C=await Promise.all(b.map(D=>Qc(e,t,v,u,o,D)));for(let D of C)Xc(D,i);let k=!1;for(let D of C){if(d.push(...D.records),p!==void 0&&d.length>=p)return d.slice(0,p);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Me(R)}if(D.records.length<o){k=!0;break}}if(k)break;if(g+=o*b.length,g>=Ss){let D=C[C.length-1];E=ep(D.records),g=0}}return d}function Xc(e,t){e.searchAborted&&t.onSearchAborted?.()}function tp(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 vg=500,Ug=1,kg=1e4,Ss=1e4;async function Qc(e,t,n,r,i,o){let a=Mg(n,i,o);return e({app:t,query:a,fields:r})}function Zc(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 Mg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function ep(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 Me=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var xg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Fg(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 Te(e){let t=xg.exec(e.trim());if(t===null)return null;let n=Fg(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 Ts(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 np(e){let t=Te(e);return t===null?null:Ts(t)}function Gg(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 Zi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Gg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function eo(e,t){let n=Te(e),r=Te(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Zi(n,r)}var Pe="__NO_FROM__";function Is(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function to(e){return e.windowKind==="AGGREGATE"}function ws(e){return e.windowKind==="VALUE"}function me(e){return{type:"NUMBER",value:Number(e),raw:e}}function Y(e){let t=e.raw??String(e.value);return np(t)??t}function rp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: 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 Kg(e){return`${e.tableAlias??""}\0${e.field}`}function Z(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=Kg(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 ip(e){return Z(e).type!=="NONE"}function op(e,t){let n=Z(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),p=r.get(l.canonicalId);if(p)return p;let c={...l,field:s};return r.set(c.canonicalId,c),c},o=n.allItems.map(i).filter((s,l,p)=>p.findIndex(c=>c.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function io(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Ft(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function Bg(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 bs(e){return Ft(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function kn(e){return!bs(e)&&(Bg(e.type)||Ft(e.type))}function ap(e){return kn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var sp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ce(e,t){for(let n of t)e.add(n)}function no(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"&&sp.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=>no(i,t)):no(r,t))}function ro(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"&&!sp.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=>ro(i,t)):ro(r,t))}function xt(e){let t=new Set;if(Ft(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ce(t,Un(e));break;case"UNION":Ce(t,up(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ce(t,xt(n.query));Ce(t,xt(e.query));break;case"CREATE_TEMP_TABLE":Ce(t,xt(e.query));break;default:break}return no(e)&&t.add("STATISTICAL_AGGREGATE"),ro(e)&&t.add("AGGREGATE"),t}function lp(e){return xt(e).size>0}function up(e){let t=e.left.type==="SELECT"?Un(e.left):up(e.left);return Ce(t,Un(e.right)),e.all||t.add("DISTINCT"),t}function Un(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=Z(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ce(t,Un(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ce(t,vn(i.condition));return Ce(t,vn(e.where)),Ce(t,vn(e.having)),no(e)&&t.add("STATISTICAL_AGGREGATE"),ro(e)&&t.add("AGGREGATE"),t}function vn(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")&&Ce(t,Un(e.right.query));break;case"LOGICAL":Ce(t,vn(e.left)),Ce(t,vn(e.right));break;case"NOT":case"GROUP":Ce(t,vn(e.expr));break;case"EXISTS":Ce(t,Un(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function cp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function pp(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 oo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),nn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),mr=new Set([...nn,...oo]),rn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",St="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return oo.has(e)}function Mn(e){return nn.has(e)}function Xe(e){return mr.has(e)}var $g=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})}),Cs=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})}),Ar="v1";function z(e){throw new Error(`UnsupportedError: APPLY ${Ar} scope does not support ${e}`)}function Wg(e,t){let n=Ar;Ar=e;try{return t()}finally{Ar=n}}function Vg(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 Gn(e,t){return Wg(e,()=>Hg(t,$g[e]))}function Hg(e,t){let n=Vg(e);if(n===null)return;if(n.type==="UPSERT"){jg(n,t);return}let r=n.applyBlocks;if(Ns(r),!t.multipleBlocks&&r.length!==1&&z("multiple APPLY blocks in this phase"),n.type==="INSERT"){zg(n,r,t);return}let i=n;i.subtableCode&&z("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&z("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&z("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&z("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&z("REJECT LIMIT in this phase"),qg(i.where,t.multipleParents),fp(r,t)}function fp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||z(`${r.kind} in this phase`);Ep(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)ao(i,"APPEND targets");Fn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&z("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&dp(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&z("EXPECT ROWS in this phase"),r.assignments.length===0&&z("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(".")&&z("parent or qualified PATCH targets in this phase")}Fn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&dp(r.selector.where,t.idxSelectors)}}}}function Ep(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 Yg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Rp(e,t){if(Ep(e),e.targetKind==="MULTI_VALUE"){if(!Yg.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 Ns(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Ar} scope allows only one block for table ${n.field}`);t.add(n.field)}}function jg(e,t){t.upsert||z("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&z("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&z("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&z("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];Ns(n),Ns(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&z("multiple APPLY blocks in this phase"),gp(n,"UPSERT ON INSERT"),fp(r,{...t,idxSelectors:!1,expectRows:!1})}function gp(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&z(`${r.kind} for ${t} in this phase`);for(let i of r.fields)ao(i,"APPEND targets");Fn(r.values,"APPEND values")}}function zg(e,t,n){n.insert||z("INSERT in this phase"),e.subtableCode&&z("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&z("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&z("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&z("REJECT LIMIT in this phase"),gp(t,"INSERT")}function Tt(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 so(e,t){let n=Cs[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Os(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${xn(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 ${xn(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 ${xn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Tt(t.where))throw new Error(`UnsupportedError: APPLY ${xn(e)} execution does not support multiple-parent APPLY`)}function Os(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 yp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Tt(t.where))&&!Cs[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} public multiple-parent write is not connected`)}function Kn(e){if(!Cs[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} internal prepared write is not available`)}function xn(e){return`Phase ${e.slice(5)}`}function qg(e,t){Tt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&z("a parent $id that is not a positive safe integer in this phase"),t||z("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Ps(e,t))}function Ps(e,t){if(Array.isArray(e)){for(let o of e)Ps(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")&&z("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&z("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&z("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)&&z("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&z("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Ps(o,t)}function dp(e,t){Fn(e,"child row selectors",t)}function Fn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Fn(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")&&z(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&z(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&z(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&z(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&z(`qualified or parent field references in ${t}`),ao(l,t,n)}if(i==="FIELD_REF"&&ao(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Fn(s,t,n)}function ao(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&z(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&z(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&z(`aggregate expressions in ${t}`)}function hr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Jg(e.op);if(t===null)throw new se(`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:hr(e.left),right:hr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:hr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Jg(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 mp(e){return e.includes("%")||e.includes("_")}function Sr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Kt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Gt(e){if(e===null)return!1;if(Sr(e))return!0;switch(e.type){case"LOGICAL":return Gt(e.left)||Gt(e.right);case"NOT":case"GROUP":return Gt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ie(e){if(e===null)return!1;if(Kt(e))return!0;switch(e.type){case"LOGICAL":return Ie(e.left)||Ie(e.right);case"NOT":case"GROUP":return Ie(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function H(e){switch(e.type){case"BINARY":return Xg(e);case"NULL_CHECK":return Zg(e);case"LOGICAL":return ey(e);case"NOT":return ty(e);case"GROUP":return ny(e);case"EXISTS":throw new se("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new se("internal error: BOOLEAN predicate reached kintone query conversion")}}function Xg(e){if(Sr(e))throw new se("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=hp(e.left),n=Qg(e.op),r=ry(e.right,e.op);return`${t} ${n} ${r}`}function Qg(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 Zg(e){let t=hp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function ey(e){let t=H(e.left),n=H(e.right),r=e.op==="AND"?"and":"or",i=Ap(e.left)?`(${t})`:t,o=Ap(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function ty(e){return H(hr(e.expr))}function ny(e){return`(${H(e.expr)})`}function hp(e){if(e.type==="FUNC_FIELD")throw new se(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new se("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new se("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 se("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 se("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return py(e.field)}function ry(e,t){switch(e.type){case"VARIABLE":throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new se(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Sp(e);case"NUMBER":return Y(e);case"KINTONE_FUNC":return Tp(e);case"IN_LIST":return uy(e,t);case"ARITH_VALUE":throw new se("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 se("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 se("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new se("\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 se("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Sp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Tp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return iy(e)}function iy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Tr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!sy(e.args.offset,e.args.offsetText)||!oy.has(e.args.unit)?Tr():`${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&&!ay.has(e.args.weekday)?Tr():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"||!ly(e.args.day)?Tr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Tr()}var oy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),ay=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function sy(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ly(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Tr(){throw new se("internal error: invalid relative date function AST reached kintone query conversion")}function uy(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new se("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return cy(e.values),`(${e.values.map(r=>r.type==="STRING"?Sp(r):r.type==="NUMBER"?Y(r):Tp(r)).join(",")})`}function cy(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function py(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Ap(e){return e.type==="LOGICAL"}var se=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function lo(e){return`'${e.replace(/'/g,"''")}'`}function Bn(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 Y(e);if(e.type==="STRING_FUNC")return _s(e);let n=`${Bn(e.left)}${e.op}${Bn(e.right)}`;return t?n:`(${n})`}function Ip(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return _s(e.expr);if(e.type==="AGG_FIELD")return ut(e.expr);if(e.type==="ARITH_FIELD")return Bn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ls(e.expr)}function bp(e){switch(e.type){case"STRING":return lo(e.value);case"NUMBER":return Y(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=>lo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(bp).join(",")})`;case"ARITH_VALUE":return Bn(e.expr);case"CASE_VALUE":return Ls(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Ir(e){switch(e.type){case"BINARY":return`${Ip(e.left)} ${e.op.replace("_"," ")} ${bp(e.right)}`;case"NULL_CHECK":return`${Ip(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Ir(e.left)} ${e.op} ${Ir(e.right)})`;case"NOT":return`NOT (${Ir(e.expr)})`;case"GROUP":return`(${Ir(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function wp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>lo(t.value)).join(",")}]`:e.type==="AGG_REF"?le(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ut(e):e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e):on(e)}function Ls(e){let t=e.branches.map(r=>`WHEN ${Ir(r.condition)} THEN ${wp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${wp(e.elseResult)}`;return`CASE ${t}${n} END`}function dy(e){return e.type==="AGG_REF"?le(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ut(e):on(e)}function _s(e){return`${e.func}(${e.args.map(dy).join(",")})`}function on(e){switch(e.type){case"STRING":return lo(e.value);case"NUMBER":return Y(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return _s(e);case"CASE_WHEN":return Ls(e);case"SCALAR_ARITH":return`(${on(e.left)}${e.op}${on(e.right)})`;case"CONCAT_OP":return`(${on(e.left)}||${on(e.right)})`}}function fy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e,!0):on(e)}function le(e,t,n){let r=fy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ut(e){return e.type==="NUMBER"?Y(e):e.type==="AGG_REF"?le(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ut(e.left)}${e.op}${ut(e.right)}`}var Np=Symbol("ksql.groupingRowMeta"),Pp=new WeakMap;function Ds(e,t){return Object.defineProperty(e,Np,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function vs(e){return e[Np]}function Ey(e){return vs(e)?.includedCanonicalIds}function Cp(e,t){Pp.set(e,t)}function $n(e,t){let n=Ey(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Pp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var uo=["$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 Us(e){return e.startsWith("_")||e.startsWith("$")}var Ry=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ms(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ms);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"?Ry.test(t.field):Object.values(t).some(Ms)}function gy(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 Ke(e)||Ms(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var yy=["_pid","_rid","_idx"];function ks(e){return[...new Set(e)]}function my(e){switch(e.kind){case"APP":return ks([...e.fieldCodes,...uo]);case"SUBTABLE":return ks([...e.childFieldCodes,...yy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return ks(e.columns)}}function Op(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:my(t(r,i))}))}function Lp(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 _p(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Dp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Lp(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:_p(a,r.fieldCode)}}function Ay(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function hy(e,t,n){let r=Lp(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:_p(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>Ay(l)===e?[{column:l,columnIndex:p}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],p=gy(l.column);return p==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:p==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&le(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function vp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?hy(r.name,t,n):{kind:"EXPRESSION"})}}var Sy="B65_NON_GROUPED_DEPENDENCY",Fs=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function co(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field: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 Gs(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return co(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?co(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Ks(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function kp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Mp(e){return e.type==="WINDOW_COL"}function Ty(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Bt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let p=e.map(c=>Bt(c,t));return p.some(c=>c===null)?null:`[${p.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Ks(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Bt(n.expr,t);let i=typeof r=="string"?Fs.get(r):void 0;if(i!==void 0)return Bt(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${Ty(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Gs(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let p of Object.keys(n)){if(p==="type"||a.has(p))continue;let c=Bt(n[p],t);if(c===null)return null;s.push(`${p}=${c}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Iy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function wy(e){let t=new Map;for(let n of e){let r=Iy(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Bs(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var by=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function po(e){if(e&&typeof e=="object"){let t=e,n=Gs(t);if(n!==null)return Bs(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?Fs.get(t.type):void 0;if(i!==void 0){let a=po(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Up(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Bs(n),o=po(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${Sy})`)}function an(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)an(a,t);return}let n=e;if(Ks(n)||kp(n)||Mp(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw Up(t.clause,t.expression,"WILDCARD",t.policy);let r=Gs(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&by.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let p=new Set(t.resolvingAliases);p.add(r.field),an(l[0],{...t,resolvingAliases:p});return}}let a=Bt(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw Up(t.clause,t.expression,r,t.policy);return}let i=Bt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Fs.get(n.type):void 0;if(o!==void 0){an(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||an(n[a],t)}function wr(e,t){let n=wy(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&an(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&an(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?co(r.key.name):r.key;an(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function xs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(xs);let t=e;return Ks(t)||Mp(t)?!1:kp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(xs)}function Wn(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&xs(t))}function Ny(e){return e.type==="FIELD_NAME"?co(e.name):e.expr}function xp(e,t,n){let r=Z(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=Dp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Bt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Bt(Ny(i[R]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,p=s.map(f=>f.cteName??l(f)).join(" / "),c=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:po(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,d=i.every((f,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:p,groupingLabel:c,migrationSourceSql:u,migrationGroupingFields:d}}function fo(e){if(Z(e).type!=="NONE"||!Wn(e))return;let t={identities:new Set,resolveField:n=>`ast:${Bs(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};wr(e,t)}function Fp(e){return`FIELD:${e}`}var Gp=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function $s(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Be(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Be(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=>Be(r,t))}}function go(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>go(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Be(n.arg,t);return}Object.values(n).forEach(r=>go(r,t))}}function Ke(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ke);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(Ke)}function Py(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ke(e):!1}function Cy(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${$s(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${$s(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Cp(e,r.canonicalId)}function Ws(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Be(i,n);Be(e.having,n),Be(e.orderBy,n);let r=[];Be(e.where,r),Be(e.joins,r),go(e.columns,r),go(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Be(i,r);if(r.length>0)throw new Error("ArgumentError: 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: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");fo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Kp(e,t,n=()=>{}){Ws(e);let r=Z(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&Be(p,i);if(Be(e.having,i),Be(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=op(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: grouping item ${$s(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)Cy(p,t,a);wr(e,{identities:new Set([...a].map(Fp)),resolveField:p=>t(p).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let p of s)l.add(p.directKey),p.unqualifiedBridgeKey!==null&&l.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!Py(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&l.has(c))throw new Error(`ArgumentError: aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Oy(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||Z(e).type!=="NONE"||e.distinct||Oy(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&Hp(t.expr)||t.type==="SCALAR_VALUE_COL"&&Nr(t.expr))||It(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function It(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Bp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Sr(e);case"NULL_CHECK":return Bp(e.field);case"LOGICAL":return It(e.left)||It(e.right);case"NOT":case"GROUP":return It(e.expr);case"EXISTS":return!0}}function Bp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function mo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(H(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Ly).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:_y(e.columns),totalCount:!1}}function Vp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!It(e.where)&&n.push(H(e.where)),{app:t,query:n.join(" "),fields:[]}}function sn(e,t,n){let i=jp(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 Ly(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 _y(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(Ao(r.field)):r.type==="ARITH_COL"?br(r.expr,n):r.type==="STRFUNC_COL"?Vs(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Vn(r.expr,n);return[...new Set(n)]}function Dy(e,t){br(e.left,t),br(e.right,t)}function br(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(Ao(e.field)):e.type==="ARITH"?Dy(e,t):e.type==="STRING_FUNC"&&Vs(e,t)}function Ao(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Vs(e,t){for(let n of e.args)vy(n,t)}function vy(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){yo(e,t);return}Vn(e,t)}function Vn(e,t){if(e.type==="FIELD"){t.push(Ao(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Vs(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vn(e.left,t),Vn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)$p(n.result,t);e.elseResult&&$p(e.elseResult,t)}}function $p(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){yo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){br(e,t);return}Vn(e,t)}}function yo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Uy(e.arg,t);return}e.type==="AGG_ARITH"&&(yo(e.left,t),yo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Ao(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Uy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?br(e,t):Vn(e,t)}function Hp(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Nr(t))}function Nr(e){return e.type==="STRING_FUNC"?Hp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Nr(e.left)||Nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Wp(t.result))||e.elseResult!==null&&Wp(e.elseResult):!1}function Wp(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Nr(e)}function Yp(e,t){let n=new Set,r=jp(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function jp(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,p=new Map;for(let h of o)h.alias&&p.set(h.alias,h),h.cteName!==null?p.set(h.cteName,h):h.subtableCode||(p.set(`APP${h.appId}`,h),p.set(`app${h.appId}`,h));let c=ky(e.columns),u=h=>{let I=a.get(h);I&&(I.allFields=!0,I.fields.clear())},d=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},R=(h,I)=>{let M=a.get(h);if(!(!M||M.allFields)){if(h.subtableCode){if(I.startsWith("_p.")){let O=I.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}I&&M.fields.add(I)}},E=(h,I="select",M)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let F=h.slice(0,-2);if(!F){d();return}if(F==="_p"){f();return}let V=p.get(F);if(V){u(V);return}return}if(I==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let F=r[M.sourceIndex];F&&(n||F.cteName===null)&&R(F,M.fieldCode)}return}if((I==="orderBy"||I==="having"||I==="groupBy")&&c.has(h)||(I==="orderBy"||I==="having"||I==="groupBy")&&My(h))return;let O=h.indexOf(".");if(O>0){let F=h.slice(0,O),V=h.slice(O+1);if(F==="_p"){l&&R(l,`_p.${V}`);return}let j=p.get(F);if(j){R(j,V);return}if(n)return}n?n.unqualified.add(h):s&&R(s,h)},g=(h,I,M="select")=>{if(I){if(I==="_p"){l&&R(l,`_p.${h}`);return}let O=p.get(I);if(O){R(O,h);return}if(n)return}E(h,M)},y=(h,I="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){E(h.field,I);return}if(h.type==="ARITH"){y(h.left,I),y(h.right,I);return}if(h.type==="STRING_FUNC"){m(h,I);return}},A=(h,I="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&b(h.arg,I);return}h.type==="AGG_ARITH"&&(A(h.left,I),A(h.right,I)),h.type==="AGG_GROUP_KEY"&&g(h.field,h.tableAlias??null,I)},S=(h,I="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){A(h,I);return}N(h,I)},m=(h,I="select")=>{for(let M of h.args)S(M,I)},N=(h,I="select")=>{if(h.type==="FIELD"){g(h.field,h.tableAlias,I);return}if(h.type==="STRING_FUNC"){m(h,I);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){N(h.left,I),N(h.right,I);return}h.type==="CASE_WHEN"&&C(h,I)},b=(h,I="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,I);return}N(h,I)},v=(h,I="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){A(h,I);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,I);return}N(h,I)}},C=(h,I="select")=>{for(let M of h.branches)P(M.condition,I),v(M.result,I);h.elseResult&&v(h.elseResult,I)},k=(h,I="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){A(h.aggregateRef,I);return}g(h.field,h.tableAlias,I);return}if(h.type==="FUNC_FIELD"){m(h.expr,I);return}if(h.type==="AGG_FIELD"){A(h.expr,I);return}if(h.type==="ARITH_FIELD"){y(h.expr,I);return}h.type!=="GROUPING_FIELD"&&C(h.expr,I)},D=(h,I="select")=>{if(h.type==="ARITH_VALUE"){y(h.expr,I);return}if(h.type==="CASE_VALUE"){C(h.expr,I);return}},P=(h,I="where")=>{if(h)switch(h.type){case"BINARY":k(h.left,I),D(h.right,I);return;case"NULL_CHECK":k(h.field,I);return;case"LOGICAL":P(h.left,I),P(h.right,I);return;case"NOT":case"GROUP":P(h.expr,I);return;case"EXISTS":case"BOOLEAN":return}},U=(h,I)=>{if(h.type==="FIELD_NAME"){E(h.name,"groupBy",I);return}if(h.type==="ARITH_KEY"){y(h.expr,"groupBy");return}m(h.expr,"groupBy")},w=(h,I="orderBy")=>{if(h.type==="FIELD_NAME"){E(h.name,I);return}if(h.type==="ARITH_KEY"){y(h.expr,I);return}h.type!=="GROUPING_KEY"&&m(h.expr,I)};for(let h of e.columns)switch(h.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&b(h.arg,"select");break;case"ARITH_AGG_COL":A(h.expr,"select");break;case"ARITH_COL":y(h.expr,"select");break;case"CASE_COL":C(h.expr,"select");break;case"STRFUNC_COL":m(h.expr,"select");break;case"SCALAR_VALUE_COL":N(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&b(h.arg,"select");for(let I of h.partitionBy)g(I.field,I.tableAlias,"select");for(let I of h.orderBy)w(I.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(g(h.on.left.field,h.on.left.tableAlias,"where"),g(h.on.right.field,h.on.right.tableAlias,"where"));P(e.where,"where");let _=Z(e);if(_.type==="PLAIN")_.allItems.forEach((h,I)=>U(h,t?.items[I]));else if(_.type==="GROUPING_SETS")for(let h of _.allItems)g(h.field,h.tableAlias,"select");P(e.having,"having");for(let h of e.orderBy)w(h.key);return a}function ky(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(le(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 My(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function $t(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||ip(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=ho(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 ho(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:zp(e.left,t)};case"NULL_CHECK":return{...e,field:zp(e.field,t)};case"LOGICAL":return{...e,left:ho(e.left,t),right:ho(e.right,t)};case"NOT":case"GROUP":return{...e,expr:ho(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function zp(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var xy=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Fy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ee(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":Fy.has(e.fieldType)?t="option":xy.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 K(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Hn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function So(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}var We=["=","!=",">","<",">=","<="],Gy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Ky=new Set(We),By=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"])]]),$y=new Map([["TODAY",new Set(We)],["NOW",new Set(We)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Wy=["=","!=","in","not in"],Vy=new Map([["RECORD_NUMBER",new Set([...We,"in","not in"])],["__ID__",new Set([...We,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(We)],["UPDATED_TIME",new Set(We)],["DATE",new Set(We)],["TIME",new Set(We)],["DATETIME",new Set(We)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...We,"in","not in"])],["CALC",new Set([...We,"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(Wy)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Hy=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"])]]),Ys=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"]),Xp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Io(e){return Vy.get(e)??new Set}function Qp(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Ys.has(o.fieldType)&&Io(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ge(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Cr(e,t)}function Cr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Yy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Hs():qy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Hs();case"GROUP":return Cr(e.expr,t);case"NOT":{let n=Cr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ed(n.reasons)?Lr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Cr(e.left,t),r=Cr(e.right,t);return Xy(e.op,n,r)}}}function Yy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return jy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&qp(n))return Jp(e,t,n,r);if(n.type==="IN_LIST"){let c=n.values.filter(u=>u.type==="KINTONE_FUNC");if(c.length>0)return n.values.length===1&&c.length===1?Jp(e,t,c[0],r):To("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",c[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Or(e))}if(t.type!=="FIELD")return Hs();let i=r(t);if(!i)return Yn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Or(e));let o=Or(e);if(!Zp(i.fieldType,o))return Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Jy(i.fieldType,e))return Yn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Io(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||qp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!p?{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 qp(e){return e.type==="KINTONE_FUNC"&&nn.has(e.name)}function Jp(e,t,n,r){let i=Or(e),o=n.name;if(!nn.has(o)||t.type!=="FIELD")return To("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=By.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?To("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):$y.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:To("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function jy(e,t,n,r){let i=Or(e),o=n.name;if(t.type!=="FIELD")return Pr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?zy(n)?Ky.has(i)?!Gy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Pr("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}]}:Pr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Pr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Pr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function zy(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 qy(e,t,n){let r=n(e);return r?Zp(r.fieldType,t)?!Ys.has(r.fieldType)&&!Xp.has(r.fieldType)?Yn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Yn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Zp(e,t){let n=Hy.get(e);return n===void 0||n.has(t)}function Jy(e,t){return Ys.has(e)?!0:Xp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Or(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 Xy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Lr({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")?Lr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Lr({capability:"LOCAL_ONLY",reasons:r})}function Hs(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Yn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function To(e,t,n,r,i){return Lr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Pr(e,t,n,r,i){return td({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ed(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Qy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&nn.has(t.functionName))}function td(e){if(e.capability==="EXACT_PUSHDOWN"||!ed(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&&ne(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 Zy(e){if(e.capability==="EXACT_PUSHDOWN"||!Qy(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&&nn.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 Lr(e){return Zy(td(e))}function _r(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]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function wo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function bo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!_r(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function No(e){let t=e.raw??String(e.value),n=Te(t);if(n===null)return!1;if(n.sign===0)return Y(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=Ts(n);return Y(e)===o}var em=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),tm=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),nm=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),rm=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Po(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?nm.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?om(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?im(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&No(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&No(e.right)?"exact":"unsafe":tm.has(r)?js(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?js(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||rm.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?_r(e.right.value)?"exact":"unsafe":r==="TIME"?wo(e.right.value)?"exact":"unsafe":bo(e.right.value)?"exact":"unsafe":em.has(r)?!js(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function nd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function js(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function im(e){let t=n=>n.type==="NUMBER"&&No(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function om(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function zs(e,t={}){return _o(e,t).condition}function _o(e,t={}){return Co(e,n=>am(n,t))}function Dr(e,t={}){return Oo(e,n=>nd(n,r=>Lo(r,t)))}function Co(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=Co(e.left,t),r=Co(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return Co(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Oo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Oo(e.left,t),r=Oo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Oo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function am(e,t){if(sm(e,t)||lm(e,t))return"exact";if(e.left.type!=="FIELD"||!Lo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||ge(e,i=>{if(!Lo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ee({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Po(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function sm(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Lo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function lm(e,t){return!um(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function um(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 Lo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function vr(e,t={}){let n=e!==null&&t.extractCondition!==!1?_o(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;jn(r,o);let a=new Set;return jn(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function ln(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=vr(e.where,{...r,extractCondition:i&&o&&n,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,p=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let d=_o(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(u.table.alias,d.condition),p.set(u.table.alias,d.relation))}let c=new Set(a.appliedKlikes);for(let u of l.values())jn(u,c);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:p,appliedKlikes:c,allKlikes:a.allKlikes}}function qs(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function jn(e,t){if(e!==null){if(Kt(e)){t.add(e);return}switch(e.type){case"LOGICAL":jn(e.left,t),jn(e.right,t);return;case"NOT":case"GROUP":jn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Do(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=Ae(t.where);if(l.length===0||!dm(l,a)||o===null||!rd(o,l))return null;let p={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:pm(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},c={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:p};return cm(c,e,l),c}function cm(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(!rd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(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"&&Xe(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function pm(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Xe(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Xe(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 dm(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function rd(e,t){let n=new Map;for(let r of t){if(!Xe(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 ce=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function id(e){od(e)}function Xs(e){if(qs(e).length>0)throw new ce("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 od(e){switch(e.type){case"SELECT":zn(e);return;case"UNION":Zs(e);return;case"WITH":ad(e);return;case"EXPLAIN":od(e.query);return;case"CREATE_TEMP_TABLE":Qs(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":un(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Tt(e.where)&&Ie(e.where)){Js(e.where),un(e);return}if(Vt(e)&&e.subtableCode)throw new ce("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&&Ie(e.where)&&!Rm(e,e.where)){Js(e.where),un(e);return}if(Vt(e))throw new ce("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(Vt(e)&&e.subtableCode)throw new ce("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&&Ie(e.where)){Js(e.where),un(e);return}if(Vt(e))throw new ce("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(Vt(e))throw new ce("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Vt(e))throw new ce("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Vt(e))throw new ce("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(Vt(e))throw new ce("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 Js(e){Uo(e,t=>{if(!Kt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ce("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 ce("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 Qs(e){e.type==="SELECT"?zn(e):e.type==="UNION"?Zs(e):ad(e)}function Zs(e){Qs(e.left),zn(e.right)}function ad(e){if($t(e)){zn(Wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?zn(t.query):t.query.type==="UNION"&&Zs(t.query);Qs(e.query)}function zn(e){if(Em(e),Ie(e.where)&&!($e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=ln(e,{allowUnresolvedVariables:!0});if(qs(n).length===0){un(e);return}if(fm(e)){un(e);return}throw new ce("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")}un(e)}function fm(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function Em(e){Uo(e,t=>{if(!Kt(t))return;if(!vo(e.where,t))throw new ce("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 ce("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 ce("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 un(e){ko(e,t=>{t.type==="SELECT"&&zn(t)},!0)}function Vt(e){let t=!1;return ko(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Rm(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 vo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return vo(e.left,t)||vo(e.right,t);case"NOT":case"GROUP":return vo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Uo(e,t){if(Array.isArray(e)){for(let r of e)Uo(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&&gm(r)||Uo(r,t)}function ko(e,t,n=!1){if(Array.isArray(e)){for(let i of e)ko(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))ko(i,t)}function gm(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Ur=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 sd(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(ym(t))throw new Ur;return;default:return}}function ym(e){let t=!1;return Mo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||mm(n.where)&&(t=!0)}),t}function mm(e){let t=!1;return Mo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Mo(e,t){if(Array.isArray(e)){for(let r of e)Mo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Mo(r,t)}function Ht(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 xo(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return Ht(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Ht(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return Ht(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Ht(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Ht(e,t,3,3);case"REGEXP_REPLACE":return Ht(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Ht(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Ht(e,t,0,0)}}var nl=1e4,wt=nl,X=e=>new Error(`ArgumentError: ${e}`),Am=e=>e.type==="VARIABLE",Yt=e=>e?.type==="STRING"&&e.fromVariable===!0;function hm(e){return e.type==="NUMBER"?Number(Y(e)):e.value}function qn(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function el(e){let t=qn(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function Sm(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function ld(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw X(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function kr(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Mr(e){let t=Te(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function ud(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Fo(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function tl(e){return e.year*12+e.month-1}function cd(e,t){if(t==="MONTH"&&e.day!==1)throw X("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw X("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function Tm(e,t,n){let r=el(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=el(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Fo(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=tl(t)+(n.coefficient<0&&t.day!==1?1:0);return Fo(tl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Fo(e.year,a,n.coefficient)}function pd(e,t,n){if(e<1||e>9999)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function Im(e){let t=Math.floor(e/12),n=e-t*12+1;return pd(t,n,1)}function dd(e){if(e.args.length<2||e.args.length>3)throw X("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(A=>hm(A));["start","stop","step"].forEach((A,S)=>{if(t[S]==="")throw X(`GENERATE_SERIES \u306E ${A} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?qn(n):null,p=typeof r=="string"?qn(r):null,c=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(ud))throw X("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||p||c||u||typeof n=="string"&&typeof r=="string"&&!(Yt(o)&&Yt(a)&&kr(n)!==null&&kr(r)!==null)){if(!l||!p)throw X(l&&typeof r!="string"||p&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let A=i===void 0?{coefficient:1,unit:"DAY"}:ld(i);return cd(l,A.unit),{kind:"DATE",start:n,stop:r,step:A.coefficient,dateUnit:A.unit,rowCount:Tm(l,p,A)}}let d=o.type==="NUMBER"?Mr(o):Yt(o)?kr(n):null,f=a.type==="NUMBER"?Mr(a):Yt(a)?kr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Yt(o))&&(a.type==="NUMBER"||Yt(a))?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=i===void 0?1:s?.type==="NUMBER"?Mr(s):Yt(s)?kr(i):null;if(R===null)throw s?.type==="NUMBER"||Yt(s)?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=d,g=f,y=R;if(y===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:g,step:y,rowCount:Fo(E,g,y)}}function wm(e){if(e.args.length<2||e.args.length>3)throw X("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(Am)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw X(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Mr(o)===null)throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(ud(o.value))throw X("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&qn(o.value)===null)throw X("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Mr(n);if(r===null)throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=ld(n.value),i=e.args[0];if(i?.type==="STRING"){let o=qn(i.value);o&&cd(o,r.unit)}}return null}let t=dd(e);if(t.rowCount>wt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function fd(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=wm(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>wt)throw X(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Go(e){let t=dd(e);if(t.rowCount>wt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=qn(t.start);if(t.dateUnit==="MONTH"){let i=tl(r);for(let o=0;o<t.rowCount;o++)n.push(Im(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(pd(r.year+i*t.step,1,1));else{let i=el(t.start);for(let o=0;o<t.rowCount;o++)n.push(Sm(i+o*t.step))}}return{...t,values:n}}function Qe(e){bm(e),sd(e),id(e),fd(e)}function bm(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;xo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var Ko=16,Ed=64,re=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function xr(e,t,n){if(Array.isArray(e)){for(let r of e)xr(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))xr(a,t,n)}}var Nm=new Set(["=","!=","<>",">","<",">=","<="]);function rl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)rl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",p=n&&i==="BINARY"&&a==="right"&&l&&Nm.has(String(r.op));rl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?p:o?n:!1)}}}function Pm(e){let t=e.type==="EXPLAIN"?e.query:e;return Ft(t.type)||t.type==="VALIDATE"}function il(e){if(Array.isArray(e)){for(let t of e)il(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Ws(e);for(let n of Object.values(t))il(n)}}function ol(e){if(e.length===0)throw new re("ArgumentError: SQL is empty.",0);if(e.forEach((u,d)=>{try{il(u)}catch(f){throw f instanceof Error?new re(f.message,d):f}try{Gn("phase15b",u),Qe(u)}catch(f){throw f instanceof ce||f instanceof Ur?new re(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new re(f.message,d):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let d=u==="SET_VARIABLE"?"SET":"DECLARE";throw new re(`ArgumentError: ${d} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let d=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new re(`ArgumentError: ${d} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,d)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new re(v,d)}let R=io(u),E=[],g=[],y=new Set,A=new Set,S=new Set,m=[];rl(u,m);let N=new Set;for(let v of m){let C=o.get(v.name);if(C===void 0)throw new re(`ParseError: variable @${v.name} is not defined before statement ${d+1}.`,d);if(C.kind==="scalar"&&v.kind==="array-in-list")throw new re(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,d);if(C.kind==="array"&&v.kind!=="array-in-list")throw new re(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,d);if(C.relativeDate&&Pm(u))throw new re(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,d);if(C.relativeDate&&!v.relativeDateAllowed)throw new re(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);N.has(v.name)||(C.referencedBy.push(d),N.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new re(`ParseError: variable @${u.name} is already defined.`,d);if(o.set(u.name,{index:d,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Ed)throw new re(`ParseError: batch exceeds ${Ed} variables.`,d)}u.type==="CREATE_TEMP_TABLE"?xr(u.query,y,A):u.type==="DROP_TEMP_TABLE"||xr(u,y,A);let b=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,C=new Set;xr(u.select,v,C),b=v.size>0&&C.size===0}for(let v of y){let C=t.get(v);if(C===void 0)throw new re(`ParseError: temp table ${v} is not defined in this batch.`,d);S.add(C)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(D=>D.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(D=>D.field)]:"fields"in u?u.fields:[],C=JSON.stringify(v),k=t.get(f);if(k===void 0){if(t.set(f,d),n.set(f,C),r.push(f),E.push(f),t.size>Ko)throw new re(`ParseError: batch exceeds ${Ko} temp tables.`,d)}else{if(n.get(f)!==C)throw new re(`ParseError: validation error table ${f} has a different payload schema.`,d);S.add(k)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new re(`ParseError: temp table ${u.name} is already defined.`,d);if(t.set(u.name,d),r.push(u.name),E.push(u.name),t.size>Ko)throw new re(`ParseError: batch exceeds ${Ko} temp tables.`,d)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new re(`ParseError: temp table ${u.name} is not defined in this batch.`,d);S.add(v),g.push(u.name),t.delete(u.name)}i.push({index:d,statementType:R,isDml:bs(u),isReadOnly:kn(u),hasWhere:cp(u),insertValuesCount:pp(u),appIds:[...A].sort((v,C)=>v-C),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:g,dependsOn:[...S].sort((v,C)=>v-C),tempOnlySource:b,targetAppId:Ft(R)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:lp(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),p=i.some(u=>u.requiresCompleteInput),c=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:p,tempTables:r,variables:c,warnings:c.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var Bo=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"],["CROSS","CROSS"],["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 Oe=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"}},jt=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(Jn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(al(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Oe(`\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 Oe("\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 Oe("\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&&Jn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Jn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Jn(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||!Jn(this.input[this.pos]))throw new Oe("\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&&Jn(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&&Rd(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Bo.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(!al(n))throw new Oe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Rd(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Oe(`@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 Oe("\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 Oe("\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 Oe("\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 al(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Pm(t)}function Rd(e){let t=e.codePointAt(0);return al(e)||t>=48&&t<=57}function Jn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Pm(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var yd=20,ll=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"}),Ad=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Fr=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),EN=Object.freeze(Object.values(Fr).filter(e=>e!==void 0)),Cm=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Om=new Set(Cm);function Lm(e){return Om.has(e)}var hd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Gr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function md(e){return Gr[e]!==void 0}var _m=Object.freeze([...oo]),Dm=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),vm=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Um(e){return Dm.has(e)}function km(e){return vm.has(e)}function Mm(e){return Number.isInteger(e)&&e>=1&&e<=31}var RN=Object.freeze(Array.from(new Set([...Object.keys(ll),...Ad,...Object.keys(Fr),...Object.keys(hd),...Object.keys(Gr),..._m,"IF"]))),xm=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 Fm(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!xm.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},sl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
- `),zt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>yd)throw new T(`batch exceeds ${yd} 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==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Gr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Gr[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(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}=bt(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 v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let k of["ID","SOURCE"]){if(!this.isSoftKeyword(k))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:v,...P?{rowIdSourceHeader:P}:{}})}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 p=this.parseIdentifier(),c,u=!0,d;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());c=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(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),d=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!==Pe||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 R="POSITION",E=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(R="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(),E=!0}}let g,y;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()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(g=this.parseOnDuplicate());let m;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),m=this.parseIdentList(),this.expect(")"),new Set(m).size!==m.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(b=>b.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(m)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!m)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(m);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of b)if(!S.some(P=>P.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(m)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(g)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),N=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:c,hasHeader:u,mappingMode:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...m?{replaceSubtables:m}:{},...g?{keyFields:g}:{},...A,...N}}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}=bt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:d})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);p=this.parseTableName()}let c={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(c,t),c}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Fm(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:Pe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],p,c=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?p=this.parseGroupingSetsClause():this.isRollupStart()?p=this.parseRollupClause():this.isCubeStart()?p=this.parseCubeClause():l=this.parseGroupByKeys(),p&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(c=this.parseWhereExpr("HAVING"))}let u="CANONICAL",d=[];if(this.consume("ORDER"))this.expect("BY"),d=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),d=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||p!==void 0||g))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(p&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,c,l,p),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...p?{grouping:p}:{},having:c,orderMode:u,orderBy:d,limit:f,offset:R}}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():o==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES"?i=this.parseGenerateSeries():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}}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(me(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(sl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:a.value.slice(1).toLowerCase(),alias:s.alias},s)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),p=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:p?.alias??null},p)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),p=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:p?.alias??null},p)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return hd[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(Fr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(sl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(sl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?me(`-${Y(n)}`):{type:"AGG_ARITH",left:me("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return me(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),Fr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=c=>{if(Array.isArray(c)){c.forEach(a);return}if(c===null||typeof c!="object")return;let u=c;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(c);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let p=new Set(r.filter(c=>c.type==="FIELD_NAME").map(c=>c.name));for(let c of o){let u=this.aggregateGroupKeyDisplay(c);if(!p.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(c)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return me(`${n.kind==="-"?"-":"+"}${Y(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:me("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),me(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return me(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?me(`-${Y(n)}`):{type:"ARITH",left:me("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),me(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=ll[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=ll[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Ad.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=Gm(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Fr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!Lm(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();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let 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}=bt(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();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):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(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:Ee(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return me(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.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(!Um(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 p=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:p,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(!km(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(!Mm(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(md(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Gr[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(me(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(me(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=rp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:c,...u,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let c=this.parseInsertRow(i.length);this.expect(")"),o.push(c)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let p=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),d=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(),R=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:d,...f,...R}}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 p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...p,...c}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(me(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(me(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.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 d=this.parseTableRef();if(d.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(d.cteName!==null&&!d.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(!d.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(d.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:d.appId,cteName:d.cteName,alias:d.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 d=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=d.targetJoinField,o.joinKeyField=d.joinKeyField,o.targetFilter=d.targetFilter}else{if(i.some(d=>d.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(d=>d.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(d.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 p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&p.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(c.validateOnly||c.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...p,...c}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...p,...c}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...p,...c}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((c,u)=>{let d=this.matchUpdateFromJoin(c,n,r);d!==null&&a.push({index:u,...d})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let c=0;c<o.length;c++){if(c!==s.index&&this.nodeContainsQualifiedField(o[c],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(c!==s.index&&this.nodeContainsForeignQualifier(o[c],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let p=o.filter((c,u)=>u!==s.index).reduce((c,u)=>c===null?u:{type:"LOGICAL",op:"AND",left:c,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:p}}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(md(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}=bt(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}=bt(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}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;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;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}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"||Bo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function Gm(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 bt(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}}function qt(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 Km(e,t){return e<t?-1:e>t?1:0}function Sd(e){if(e==="")return{band:0};let t=Se(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 Bm(e,t){let n=Sd(e),r=Sd(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Zi(n.value,r.value):n.band===5&&r.band===5?qt(n.value,r.value):0}function Td(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 $m(e,t,n){let r=Td(e,n),i=Td(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=qt(r.normalizedId,i.normalizedId);return o!==0?o:qt(r.display,i.display)}function Vm(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 Id(e,t){let n=t.optionOrder??new Map,i=[...new Set(Vm(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(wd),i}function wd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:qt(e.label,t.label)}function Wm(e,t,n){let r=Id(e,n),i=Id(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=wd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function Ze(e,t,n){switch(n.compareMode){case"string":return qt(e,t);case"number":return Bm(e,t);case"recordNumber":return $m(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Wm(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function cn(e,t,n,r=K("string")){let i=Ze(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 bd(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=Se(o),l=Se(a),p=s!==null&&l!==null?Zi(s,l):Km(Number(o),Number(a));if(p!==0)return p}return qt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ce(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(Me(t,e.field));if(e.type==="STRING_FUNC")return Number(pe(e,t));let n=ce(e.left,t),r=ce(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 Ie(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Me(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 pe(e,t,n,r);case"CASE_WHEN":return xe(e,t,n,r);case"CONCAT_OP":return pe({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Ie(e.left,t,n,r)),o=Number(Ie(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 Nt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Od(e,t,n,r);case"SCALAR_ARITH":{let i=Nt(e.left,t,n,r),o=Nt(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=Nt(e.left,t,n,r),o=Nt(e.right,t,n,r);return`${i??""}${o??""}`}default:return Ie(e,t,n,r)}}function $o(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 Hm(e){return e>=55296&&e<=56319}function Ym(e){return e>=56320&&e<=57343}function Wo(e,t){return t>0&&t<e.length&&Hm(e.charCodeAt(t-1))&&Ym(e.charCodeAt(t))}function Nd(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 cl(e,t){let n=Math.min(Math.max(0,t),e.length);return Wo(e,n)&&(n-=1),e.slice(0,n)}function jm(e,t){let n=Math.max(0,e.length-t);return Wo(e,n)&&(n+=1),e.slice(n)}function zm(e,t,n){let r=Nd(t,e.length),i=Nd(n,e.length);return i<=r?"":(Wo(e,r)&&(r+=1),Wo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function qm(e,t){let n=e.repeat(Math.ceil(t/e.length));return cl(n,t)}var Jm=200,Kr=new Map;function Xm(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 ul(e,t,n=!1){let r=Xm(t)+(n?"g":""),i=`${e}\0${r}`,o=Kr.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(Kr.size>=Jm){let s=Kr.keys().next().value;s!==void 0&&Kr.delete(s)}return Kr.set(i,a),a}function Qm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Zm(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 eA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let c=Number(s+l);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=1;continue}}i+="$"}return i}function tA(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,p=a.length-(l?3:2),c=a.slice(0,p);return eA(n,o,c,l?s:void 0)})}function pe(e,t,n,r){xo(e.func,e.args);let i=e.args.map(o=>uA(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return zm(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":cl(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":jm(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return cl(o,a);let s=i[2]??" ";if(s==="")return o;let l=qm(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return bd(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 ul(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Qm(i[2]);let o=Zm(i[4]),a=ul(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):tA(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ul(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,p)=>{s.has(l)||s.set(l,a[p])}),[...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 $o("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return $o("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return $o("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return $o("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 sA(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 Vo(i[0])?String(pl(i[0])+1):"";case"QUARTER":return Vo(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return Vo(i[0])?String(Cd(i[0])):"";case"DATE_FORMAT":return rA(i[0]??"",i[1]??"");case"DATEDIFF":return iA(i[0]??"",i[1]??"");case"DATE_ADD":return oA(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return aA(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 Br(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 Ho(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 Vo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ho(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 pl(e){return Ho(e).getUTCDay()}function Pd(e){let t=Ho(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function nA(e){return Pd(e).getUTCFullYear()}function Cd(e){let t=Pd(e),n=t.getUTCFullYear(),r=Ho(`${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 rA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Br(e),l=Vo(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){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(pl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][pl(e)]:"";case"%v":return l?String(Cd(e)).padStart(2,"0"):"";case"%G":return l?String(nA(e)).padStart(4,"0"):"";default:return p}})}function iA(e,t){if(e.length<10||t.length<10)return"0";let n=Br(e),r=Br(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 oA(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}=Br(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let d=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(d,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),p=String(a.getUTCMonth()+1).padStart(2,"0"),c=String(a.getUTCDate()).padStart(2,"0");return`${l}-${p}-${c}`}function aA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Br(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 sA(e,t){if(/^-?\d+$/.test(t.trim()))return lA(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,p=s+l,c=i.toFixed(p),[u,d=""]=c.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,R=d?`${f}.${d}`:f;return n?R+"%":R}function lA(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 uA(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String($r(e,t)):e.type==="NUMBER"?Y(e):String(Ie(e,t,n,r))}function $r(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[Ee(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Me(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number($r(e.left,t)),r=Number($r(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 Me(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 ae(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return cA(e,t,n,r,i);case"NULL_CHECK":return gA(e,t);case"LOGICAL":return yA(e,t,n,r,i);case"NOT":return!ae(e.expr,t,n,r,i);case"GROUP":return ae(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function cA(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=xd(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=dA(e.left,a,i);return pA(e.op,o,e.right,t,a,n,s,i)}function pA(e,t,n,r,i,o,a=K("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(RA(n.values),p=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?Y(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(p=n.resolved),p===null)return e==="NOT_IN";let c=EA(t,p,i);return e==="IN"?c:!c}if(e==="LIKE"){let p=dl(n,r,o);return Md(t,p)}if(e==="NOT_LIKE"){let p=dl(n,r,o);return!Md(t,p)}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=dl(n,r,o,s);return cn(e,t,l,a)}var Ld=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function dA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ee({fieldType:t}):K("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return K("number");if(e.type==="FUNC_FIELD")return K(Ld.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 K("number");if(o.type==="STRING_FUNC")return K(Ld.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)??K("string")}return K("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?K("number"):K("string")}var _d=new Set(["CHECK_BOX","MULTI_SELECT"]),Dd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),fA=new Set(["CREATOR","MODIFIER"]);function EA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=K("number");return[...t].some(a=>cn("=",e,a,o))}let i;if(_d.has(n)||Dd.has(n)||fA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return _d.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Dd.has(n)?!Array.isArray(i)||!i.every(vd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):vd(i)?t.has(i.code):r()}function vd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function RA(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}: ${St}`)}function gA(e,t){let n=xd(e.field,t);return e.not?n!=="":n===""}function yA(e,t,n,r,i){return e.op==="AND"?ae(e.left,t,n,r,i)&&ae(e.right,t,n,r,i):ae(e.left,t,n,r,i)||ae(e.right,t,n,r,i)}function xd(e,t,n,r){if(e.type==="FUNC_FIELD")return pe(e.expr,t);if(e.type==="AGG_FIELD")return String($r(e.expr,t));if(e.type==="ARITH_FIELD")return String(ce(e.expr,t));if(e.type==="CASE_FIELD")return xe(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return $n(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Me(t,i)}function dl(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 Y(e);case"KINTONE_FUNC":return mA(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"?Me(t,e.expr.field):e.expr.type==="STRING_FUNC"?pe(e.expr,t):String(ce(e.expr,t));case"CASE_VALUE":return xe(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function xe(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return kd(i.result,t,n,r);return e.elseResult!==null?kd(e.elseResult,t,n,r):""}function Od(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return Ud(i.result,t,n,r);return e.elseResult===null?null:Ud(e.elseResult,t,n,r)}function Ud(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[Ee(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ce(e,t):Nt(e,t,n,r)}function kd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[Ee(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ce(e,t)):String(Ie(e,t,n,r))}function Fd(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 mA(e){throw ne(e)?new Error(`${e}: ${rn}`):Mn(e)?new Error(`${e}: ${St}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Yo=new Map,AA=200;function Md(e,t){if(!mp(t))return e.includes(t);let n=Yo.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"),Yo.size>=AA&&Yo.clear(),Yo.set(t,n)}return n.test(e)}function Xn(e){return Kd(e)}function Gd(e){return Kd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Kd(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 we("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 we("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 we(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function jo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ae(a.condition,t,n))continue;let s=Ie(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function fl(e){if(Gt(e))throw new ie("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 hA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),SA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Jo(e,t=new Map){let n=e.values.map(r=>TA(e.fields,r,t));return Yr(n,100).map(r=>({app:e.appId,records:r}))}function TA(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Jt(a.expr,{},n.get(i))}:r[i]={value:Pt(a,n.get(i))}}),r}function Wr(e){fl(e.where);let t=Zd(e);return{app:e.appId,query:H(e.where),fields:["$id",...t],totalCount:!1}}function Hr(e,t,n=new Map){let r=IA(e.assignments,n);return Yr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function IA(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:Pt(i,t.get(r))});return n}function Wd(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 Xo(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 El(e){fl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Hd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Qn(n,t):n.type==="STRING_FUNC"?Rl(n,t):n.type==="CASE_VALUE"&&Yd(n.expr,t);return Zd(e).forEach(n=>t.add(n)),{app:e.appId,query:H(e.where),fields:["$id",...t],totalCount:!1}}function Hd(e,t){Vr(e.left,t),Vr(e.right,t)}function Vr(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"?Hd(e,t):e.type==="STRING_FUNC"&&Rl(e,t)}function Rl(e,t){for(let n of e.args)wA(n,t)}function wA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){qo(e,t);return}Qn(e,t)}function Qn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Rl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Qn(e.left,t),Qn(e.right,t);return}e.type==="CASE_WHEN"&&Yd(e,t)}function qo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&bA(e.arg,t);return}e.type==="AGG_ARITH"&&(qo(e.left,t),qo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function bA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Vr(e,t):Qn(e,t)}function Bd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){qo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Vr(e,t);return}Qn(e,t)}}function Yd(e,t){for(let n of e.branches)zo(n.condition,t),Bd(n.result,t);e.elseResult!==null&&Bd(e.elseResult,t)}function zo(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Vr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":zo(e.left,t),zo(e.right,t);break;case"NOT":case"GROUP":zo(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function gl(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=jd(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:yl(p,a,n.get(l),i)};return{id:o,record:s}});return Yr(r,100).map(i=>({app:e.appId,records:i}))}function yl(e,t,n,r){if(e.type==="ARITH")return String(r?Al(e,r):ce(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ie(e,t));if(e.type==="STRING_FUNC")return pe(e,t);if(e.type==="CASE_VALUE")return Jt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ie("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Pt(e,n)}function Qo(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return Y(e);if(e.type==="ARITH")return String(ce(e,t));if(e.type==="CASE_VALUE")return xe(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 NA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ml(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 ie("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=jd(i),l={};for(let{field:p,value:c}of e.assignments){let u=n.get(p);if(c.type==="SOURCE_FIELD"){if(NA.has(u??""))throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,c.field))throw new ie(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[c.field];if(typeof d!="string")throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${c.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new ie(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[p]={value:Pt({type:"STRING",value:d},u)}}else{if(c.type==="STRING_FUNC")throw new ie("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");c.type==="ARITH"?l[p]={value:String(Al(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[p]={value:String(Ie(c,s))}:c.type==="CASE_VALUE"?l[p]={value:Jt(c.expr,s,u)}:l[p]={value:Pt(c,u)}}}return{id:a,record:l}});return Yr(r,100).map(i=>({app:e.appId,records:i}))}function jd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Al(e,t){let n=$d(e.left,t),r=$d(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function $d(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 Al(e,t);if(e.type==="STRING_FUNC")throw new ie("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 ie(`\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 zd(e){return fl(e.where),{app:e.appId,query:H(e.where),fields:["$id"],totalCount:!1}}function qd(e,t){return Yr(t,100).map(n=>({app:e,ids:n}))}function Jd(e){return hA.has(e??"")}function PA(e){return SA.has(e??"")}function CA(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 OA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Xd(e,t){return Jd(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):PA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?CA(e):t==="DATE"?OA(e):e}function Qd(e,t){return Jd(t)?e.map(n=>({code:n})):e}function Vd(e,t,n){if(e.type==="ARRAY")return Qd(e.elements.map(r=>r.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Xd(e.value,n):e.type==="STRING_FUNC"?pe(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ce(e,t)):String(Ie(e,t))}function Zd(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Xn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Jt(e,t,n){for(let r of e.branches)if(ae(r.condition,t))return Vd(r.result,t,n);return e.elseResult!==null?Vd(e.elseResult,t,n):""}function Pt(e,t){let n=hl(e,t);if(!n.ok)throw new ie(n.message);return n.value}function hl(e,t){try{return{ok:!0,value:LA(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function LA(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 Xd(e.value,t);case"NUMBER":return Y(e);case"ARRAY":return Qd(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ie(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ie("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ie("\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 ie("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 ie("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\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 Yr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ie=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Sl=new Set(["CHECK_BOX","MULTI_SELECT"]),_A=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function jr(e){throw new Error(`ArgumentError: ${e}`)}function ef(e,t,n){let r=DA(n.fieldType,e.field),i=vA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let m=y.value;m!==""&&(y.kind==="ADD"?(s.has(m)||a.push(m),s.add(m)):l.add(m))}for(let y of s)l.has(y)&&jr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let p=i.filter(y=>!l.has(y)),c=a.filter(y=>!o.has(y)),u=[...p,...c],d=new Set(i.filter(y=>l.has(y))).size,f=new Set,R=new Set,E=e.operations.map(y=>{let m=y.kind==="ADD"?f:R,S=!m.has(y.value);return m.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=Sl.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:g,addedValues:c.length,removedValues:d,changedValues:c.length+d}}function DA(e,t){return Sl.has(e)||_A.has(e)?e:jr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function vA(e,t,n){if(!Array.isArray(e))return jr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Sl.has(t)?typeof i!="string"?jr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?jr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function q(e){throw new Error(`ArgumentError: ${e}`)}function wl(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?q("APPLY parent selector must be a single positive $id."):t.right.value}function Ct(e,t){let n=e.applyBlocks;if(!n?.length)return q("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)Tl(s.field,null,r),UA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&q(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&q(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?q(`APPLY target ${s.field} is not a SUBTABLE.`):q(`APPLY target ${s.field} does not exist as a top-level field.`);if(Rp(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&q(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let p=l,c=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,p),a.set(s.field,c);for(let u of s.operations)if(u.kind==="PATCH"){for(let d of u.assignments)Tl(d.field,s.field,r,c),Il(d.value,s.field,r,c);u.selector.kind==="WHERE"&&Il(u.selector.where,s.field,r,c)}else if(u.kind==="APPEND"){let d=new Set;for(let f of u.fields)d.has(f)&&q(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),Tl(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Il(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function UA(e,t){zr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&q(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&q(`APPLY parent FILE reference ${n} is not supported.`)})}function Tl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&q(`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&&q(`APPLY child ${e} does not belong to subtable ${t}.`),q(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&q(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Il(e,t,n,r){zr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&q(`APPLY child reference ${i} does not belong to subtable ${t}.`),q(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Zo(e,t){let n=Ct(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)zr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ea(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=sf(i?.value);return n}function nf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Ct(t,r),o=Pl(n.$id?.value,"APPLY snapshot $id"),a=wl(t);return o!==a&&q(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),of(t,n,i,o)}function rf(e,t,n,r=Ct(e,n)){let i=new Set;return t.map(o=>{let a=Pl(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&q(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),of(e,o,r,a)})}function of(e,t,n,r){let i=Pl(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let _=n.targetMultiValueFields.get(c.field);_||q(`APPLY multi-value metadata for ${c.field} is missing.`),a.push(ef(c,t[c.field]?.value,_));continue}let u=n.childrenByTable.get(c.field),d=KA(t,c.field),f=new Set;for(let _ of d)_.id||q(`APPLY snapshot for ${c.field} contains a row without _rid.`),f.has(_.id)&&q(`APPLY snapshot for ${c.field} contains duplicate _rid ${_.id}.`),f.add(_.id);let R=_=>_.field==="_rid"?"SINGLE_LINE_TEXT":_.field==="_idx"?"NUMBER":u.get(_.field)?.fieldType,E=[],g=[],y=[],m=new Set,S=new Set,A=new Set,N=c.operations.some(_=>_.kind==="REMOVE");for(let[_,C]of c.operations.entries()){if(C.kind==="APPEND"){let w=bl(C,u,c.field);y.push({kind:"APPEND",addedRows:w.length}),g.push(...w);continue}if(C.kind==="REMOVE"){let w=xA(C,d,R,c.field);C.expectRows&&tf(C.expectRows,w.length,r,c.field,_,C.kind),y.push({kind:"REMOVE",removedRows:w.length});for(let D of w){let h=d[D].id;S.has(D)&&q(`APPLY row ${h} is selected by both PATCH and REMOVE.`),A.has(D)&&q(`APPLY removes row ${h} more than once.`),A.add(D)}continue}if(C.kind!=="PATCH")continue;let U=MA(C,d,R,c.field);C.expectRows&&tf(C.expectRows,U.length,r,c.field,_,C.kind),y.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let w of U){let D=d[w];A.has(w)&&q(`APPLY row ${D.id} is selected by both PATCH and REMOVE.`),S.add(w);let h=ea(D,w);for(let I of C.assignments){let M=`${D.id}\0${I.field}`;m.has(M)&&q(`APPLY patches cell ${D.id}.${I.field} more than once.`),m.add(M),E.push({rowIndex:w,field:I.field,value:Qo(I.value,h,R)})}}}let b=new Map;for(let _ of E){let C=b.get(_.rowIndex)??{};C[_.field]={value:_.value},b.set(_.rowIndex,C)}let P=[...d.flatMap((_,C)=>A.has(C)?[]:[{id:_.id,value:{..._.value,...b.get(C)??{}}}]),...g],k={table:c.field,operations:y,changedSubtableRows:b.size+A.size+g.length,deletedRows:A.size,snapshotRowIds:d.map(_=>_.id),postImageRows:P};N?o.push({...k,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((_,C)=>A.has(C)?[_.id]:[]),payloadRows:P.map(_=>({..._.id===void 0?{}:{id:_.id},value:_.value}))}):o.push({...k,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((_,C)=>{let U=b.get(C);return U?{id:_.id,value:U}:{id:_.id}}),...g.map(_=>({value:_.value}))]})}let s=BA(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:yl(c.value,s,u,t)}}let p={...t};Object.assign(p,l);for(let c of o)p[c.table]={value:c.postImageRows};for(let c of a)p[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((c,u)=>c+u.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function tf(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}`;q(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function ta(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return q(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,p)=>{let c=a[p];return c?.value?l.id===void 0?{value:c.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,c.value[u]]))}:q(`APPLY normalized post-image for ${o.table} row ${p+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}:q(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function bl(e,t,n){return e.values.map(r=>({value:kA(e,r,t,n)}))}function kA(e,t,n,r){if(t.length!==e.fields.length)return q(`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?Nl(a):s.type==="CASE_VALUE"?Jt(s.expr,{},a.fieldType):Pt(s,a.fieldType)}}return o}function Nl(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 MA(e,t,n,r){return af(e.selector,t,n,r)}function xA(e,t,n,r){return af(e.selector,t,n,r)}function af(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,p)=>p);let i=e.where,o=t.flatMap((l,p)=>ae(i,ea(l,p),n)?[p]:[]),a=FA(i);a!==null&&o.length===0&&q(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=GA(i);return s!==null&&o.length===0&&q(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function FA(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 GA(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 KA(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:{}}}):q(`APPLY snapshot field ${t} is not a subtable value.`)}function Pl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&q(`${t} must be a positive integer.`),n}function BA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=sf(r?.value);return t}function sf(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 zr(e,t){if(Array.isArray(e)){e.forEach(r=>zr(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))zr(r,t)}function le(e){throw new Error(`ArgumentError: ${e}`)}function ra(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?le("APPLY snapshot $revision must be a positive integer."):t}function qr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return le("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return le("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)&&le(`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)&&le(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&le(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),$A(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function lf(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 le("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 $A(e){let t=Cl(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(c=>c.id===void 0?[]:[c.id]);for(let c of e.payloadRows)c.id===void 0&&c.value===void 0&&le(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Cl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&le(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let c=e.payloadRows.slice(0,t.length).map(d=>d.id??"");na(t,c,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(d=>d.id!==void 0)&&le(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(d=>d.id??"");na(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(d=>d.id!==void 0)&&le(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(c=>c.kind==="REMOVE")||le(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Cl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&le(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&le(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(c=>c.id===void 0?[]:[c.id]),o=new Set(r),a=new Set(i);for(let c of r)a.has(c)&&le(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${c}.`);let s=t.filter(c=>!o.has(c));na(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(c=>c.id??"");na(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(c=>c.id!==void 0)||e.postImageRows.slice(i.length).some(c=>c.id!==void 0))&&le(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(c=>c.value===void 0)&&le(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((c,u)=>!Ol(c.value,e.postImageRows[u]?.value))&&le(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...r]);(p.size!==t.length||t.some(c=>!p.has(c)))&&le(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Cl(e,t){let n=[...e],r=new Set;for(let i of n)i||le(`APPLY ${t} contains an empty row id.`),r.has(i)&&le(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function na(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&le(n)}function Ol(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)=>Ol(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)&&Ol(n[a],r[a]))}function uf(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 cf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=uf(t.digits,"digits",1,30),r=uf(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 pf(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 VA=new Set(["CHECK_BOX","MULTI_SELECT"]),WA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Fe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=HA(e);if(i!==""&&!YA(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=Jr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:jA(t.fieldType),message:o}}if(t.required&&ia(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ia(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Se(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&&eo(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&&eo(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}=pf(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(!ia(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!pn(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!ia(r)&&WA.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 HA(e){return e==null?"":oa(e)&&e.type==="NUMBER"?Y(e):oa(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function YA(e,t){if(t==="DATE")return pn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return pn(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)?pn(n.slice(0,10),"DATE")&&pn(n.slice(11),"TIME"):pn(n,"DATETIME")}function Jr(e,t){if(oa(e)){let r=hl(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(VA.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 oa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function dn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(oa(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ia(e){return e===""||Array.isArray(e)&&e.length===0}function jA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function pn(e,t){if(t==="TIME"){let p=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return p!==null&&Number(p[1])<=23&&Number(p[2])<=59&&Number(p[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)&&pn(l,"TIME")}var Zn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ll(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(c=>typeof c=="object"&&c!==null&&"code"in c),p=a;try{p=Jr(a,s)}catch{}i.record[o]={value:l?a:p}}}}function _l(e,t,n,r,i,o,a,s=[],l=!0,p=!0,c={}){let u=new Map(i.map(g=>[g.code,g])),d=[],f=new Set,R=[];c.validateUpdateBuiltIns===!1&&Ll(e,r,i);let E;for(let g of e){g.record??(g.record={});let y=p?[...g.preErrors]:[],m=[],S=[],A=g.mode==="create"||c.validateUpdateBuiltIns!==!1;for(let P of r){if(!g.payload.has(P))continue;let k=g.payload.get(P),_=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(_)&&Array.isArray(k)&&k.every(w=>typeof w=="object"&&w!==null&&"code"in w);if(!A)continue;let U=Fe(k,u.get(P),a);U.ok?g.record[P]={value:C?k:U.value}:m.push({field:P,code:U.code,message:U.message})}if(l&&g.mode==="create")for(let P of i){if(P.inSubtable||g.payload.has(P.code))continue;if(dn(P.defaultValue)){let _=Fe("",P,a);_.ok?P.required&&m.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):m.push({field:P.code,code:_.code,message:_.message})}else{let _=Fe(P.defaultValue,P,a);_.ok||m.push({field:P.code,code:_.code,message:`\u65E2\u5B9A\u5024: ${_.message}`})}}if(s.length>0){let P=g.evaluationRow??Object.fromEntries([...g.payload].map(([C,U])=>[C,ct(U)])),k=g.evaluationFieldTypes,_=C=>{let U=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return k?.get(U)??k?.get(C.field)};try{for(let C of jo(s,P,_))S.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??(E=C)}}let N=P=>P.map(k=>{let _={};for(let C of n)_[C]=ct(g.payload.get(C));return _.$err_statement=String(o),_.$err_operation=t,_.$err_row=String(g.rowNumber),_.$err_field=k.field,_.$err_code=k.code,_.$err_message=k.message,_.$err_value="",_.$err_subtable="",_.$err_subrow="",_.$err_subrow_id="",_}),b={rowNumber:g.rowNumber,preErrors:N(y),builtInErrors:N(m),checkErrors:N(S)};R.push(b);let v=[...b.preErrors,...b.builtInErrors,...b.checkErrors];v.length>0&&f.add(g.rowNumber),d.push(...v)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function ct(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 Dl=["required","length","range","choice"];function vl(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 Ul(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 zA(e){return vl(e).length>0}function qA(e){return e.fieldType==="NUMBER"||zA(e)}function aa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function kl(e,t){let{topByCode:n,childrenByTable:r}=Ul(t),i=qA;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,p)=>{let c=p?`${p}\0${l.code}`:l.code;if(a.has(c))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(c),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...p?{subtableCode:p}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=u.find(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,g])=>E!==l.subtableCode&&g.some(y=>y.code===d));throw new Error(R?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \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 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let p=l.field;if(p==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let c=n.get(p);if(c?.fieldType==="SUBTABLE"){let u=(r.get(p)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${p} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(d=>s(d,p));continue}if(c){s(c);continue}throw[...r.values()].some(u=>u.some(d=>d.code===p))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${p}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Xr(e,t){return dn(e)?"":ct(Jr(e,t))}var JA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Qr=Zn;function pt(e,t=["$id"]){let n=Ul(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!JA.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 fn(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 En(e,t,n,r,i=1,o="UPDATE"){let a=XA(e),s=[],l=new Set,p=[...t.payloadFields,...Qr],c=ct(e.$id?.value),u=(d,f,R,E)=>{l.add(i);let g={};for(let y of t.payloadFields)g[y]=y==="$id"?c:ct(e[y]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=d.code,g.$err_code=R.code,g.$err_message=R.message,g.$err_value=Xr(f,d.fieldType),g.$err_subtable=E?.subtable??"",g.$err_subrow=E?String(E.subrow):"",g.$err_subrow_id=E?.subrowId??"",s.push(g)};for(let d of t.topLevel){let f=e[d.code]?.value,R=Fe(f,d,n);R.ok?a[d.code]={value:df(f,d.fieldType,R.value)}:u(d,f,R)}for(let[d,f]of t.subtables){let R=e[d]?.value;if(!Array.isArray(R))continue;let E=a[d]?.value;for(let g=0;g<R.length;g++){let y=R[g],m=E[g];for(let S of f){let A=y.value?.[S.code]?.value,N=Fe(A,S,n);N.ok?(m.value??(m.value={}),m.value[S.code]={value:df(A,S.fieldType,N.value)}):u(S,A,N,aa(d,g,y))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function df(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 XA(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 sa(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;ff(o,"dmlMaxRows"),ff(a,"dmlMaxSubtableRows");for(let S of n)ra(S);let l=rf(t,n,r,i),p=pt(r,t.assignments.map(S=>S.field)),c=l.some(S=>fn(S.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,d=l.map((S,A)=>En(S.postImage,p,u,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=d.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:S})}`)}let f=l.length,R=l.reduce((S,A)=>S+A.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let g=l.map((S,A)=>ta(S,d[A].normalizedRecord)),y=g.flatMap(S=>qr(S).records),m=d.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Ef({plans:g,records:y,validations:m,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function ff(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ef(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))Ef(n,t);return Object.freeze(e)}var Ml=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function la(e,t){if(new Set(e.fields).size!==e.fields.length)return dt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Rf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return dt(`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 dt(`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 dt(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let c of l.fields){if(p.has(c))return dt(`APPLY APPEND specifies child ${c} more than once.`);p.add(c),Rf(c,o.field,n,s)}for(let c of l.values)if(c.length!==l.fields.length)return dt(`APPLY APPEND for ${o.field} has ${c.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function QA(e,t,n=la(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Jo(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),p=s.operations.flatMap(c=>bl(c,l,s.field));return{table:s.field,rows:p,addedRows:p.length}});return o.map((s,l)=>{let p={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Ml.has(u.fieldType)||(p[u.code]=s[u.code]??{value:Nl(u)});let c={...s};for(let u of a){let d=u.rows.map(f=>({value:f.value}));p[u.table]={value:d},c[u.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:p,record:c}})}async function Zr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;gf(r,"dmlMaxRows"),gf(i,"dmlMaxSubtableRows");let a=e.metadata??la(t,n),s=QA(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Ml.has(A.fieldType)),p=pt(l,t.fields),c=s.some(A=>fn(A.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,d=s.map(A=>En(A.postImage,p,u,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=d.flatMap(N=>N.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:A})}`)}let f=s.length,R=s.reduce((A,N)=>A+N.tables.reduce((b,v)=>b+v.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let g=s.map((A,N)=>{let b=d[N].normalizedRecord,v={};for(let P of t.fields)v[P]=b[P];for(let P of A.tables){let k=b[P.table]?.value;v[P.table]={value:P.rows.map((_,C)=>({value:Object.fromEntries(Object.keys(_.value).map(U=>[U,k[C]?.value?.[U]??_.value[U]]))}))}}return{...A,postImage:b,record:v}}),y=g.map(A=>A.record),m=[];for(let A=0;A<y.length;A+=100)m.push({app:t.appId,records:y.slice(A,A+100)});let S=d.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return yf({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:m,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function Rf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return dt(`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?dt(`APPLY child ${e} does not belong to subtable ${t}.`):dt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Ml.has(i.fieldType))return dt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function gf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function dt(e){throw new Error(`ArgumentError: ${e}`)}function yf(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))yf(n,t);return Object.freeze(e)}async function Af(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;mf(i,"dmlMaxRows"),mf(o,"dmlMaxSubtableRows"),rh(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),p=ZA(t,s.map(y=>y.sourceRowIndex)),c=await Zr({statement:p,fieldInfos:r,metadata:la(p,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],d=new Set;for(let y of l){let m=y.targetId;d.has(m)&&xl(`UPSERT APPLY resolves more than one source row to parent $id ${m}.`),d.add(m),y.snapshot||xl(`UPSERT APPLY snapshot for parent $id ${m} is missing.`);let S=Number(y.snapshot.$id?.value);S!==m&&xl(`UPSERT APPLY snapshot $id ${S} does not match target $id ${m}.`);let A=eh(t,y.sourceRowIndex,m),N=A.applyBlocks?.length?Ct(A,r):th(r);u.push(await sa({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:N,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=nh(u,i,o),R=c.guards.parentRows+f.guards.parentRows,E=c.guards.subtableRows+f.guards.subtableRows,g=R>i||E>o;if(!t.validateOnly){let y=[...c.validations.flatMap(m=>m.errors),...f.validations.flatMap(m=>m.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return Fl({create:c,update:f,createBatches:c.batches,updateBatches:ih(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:g,create:c.guards,update:f.guards}})}function ZA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function eh(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 th(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function nh(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 Fl({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 rh(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 ih(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 mf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function xl(e){throw new Error(`ArgumentError: ${e}`)}function Fl(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))Fl(n,t);return Object.freeze(e)}function ti(e){return er("UPDATE",[Tf(e)])}function Gl(e){return er("INSERT",[Sf(e)])}function Kl(e){return er("UPSERT",[Sf(e.create),Tf(e.update)])}function We(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 ca(e,t,n){return e.type==="UPDATE"?er("UPDATE",[ua("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?er("INSERT",[ua("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):er("UPSERT",[ua("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ua("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function er(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Sf(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 Tf(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:hf(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:hf(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 hf(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:ei(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ei(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ei(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ei(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ei(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ei(e,t){return e==null||t===null?null:e+t}function ua(e,t,n,r,i,o){let a=t.map(c=>{let u=c.operations.map(f=>oh(f,n)),d=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.count,0):null;return{targetKind:c.targetKind,field:c.field,operations:u,changedCount:d}}),s=a.filter(c=>c.targetKind==="SUBTABLE"),l=s.every(c=>c.changedCount!==null)?s.reduce((c,u)=>c+u.changedCount,0):null,p=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:p},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function oh(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 ft=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 If(e,t,n){Kn("phase10c");let r=lf(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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:We(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 wf(e,t,n){Kn("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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:We(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 bf(e,t,n){Kn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let c=await t.postRecords({app:p.app,records:[...p.records]});r.push(c.ids)}catch(c){throw new ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:We(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},c)}i+=1,a+=p.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let p=e.updateBatches[l];try{await t.putRecords({app:p.app,records:[...p.records]})}catch(c){throw new ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:We(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},c)}o+=1,s+=p.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var ah=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function sh(e){if(!ah.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 lh(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=sh(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 Bl(e,t){let n=lh(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 uh(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 $l(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 uh(i)?!0:Object.values(i).some(n)};return n(e)}function Nf(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}var pa=50;function Wl(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=pa){let o=e.values.slice(i,i+pa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Vl=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),ch=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ph(e,t){return e==="DATE"?_r(t):e==="TIME"?wo(t):Vl.has(e)?bo(t):!1}function dh(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Vl.has(e)?Vl.has(t.fieldType):!1}function Hl(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Io(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!ch.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!dh(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!ph(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];Ze(s,i,n)<0&&(i=s),Ze(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Yl=nl;function ni(e,t,n=Yl){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Pf(e,t){let n=Z(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 Et(e){if(e===null)return!1;switch(e.type){case"BINARY":return da(e.left);case"NULL_CHECK":return da(e.field);case"LOGICAL":return Et(e.left)||Et(e.right);case"NOT":case"GROUP":return Et(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function da(e){if(Array.isArray(e))return e.some(da);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(da)}async function et(e,t,n,r,i){let o=await ve(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 fa(e,t,n,r){let{records:i,metrics:o}=await et(e,t,n,["$id"],r);return{ids:tp(i),metrics:o}}function nr(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)?Of(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"}):Of(n[0],e.field)}function ql(e,t){if(e.left.type!=="FIELD")return ri();let n=nr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return ri();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ge(e,a=>{let s=nr(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:ee({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return ri();let o=Po(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?ri():Object.freeze({relation:o,owner:n})}function Lf(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=nr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ge(e,o=>{let a=nr(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:ee({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function _f(e,t){let n=new Set;Rn(e,n);let i=(e===null?[]:Uf(tr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=fh(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)Rn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(gh(e,t)),fetchQueriesByAlias:new Map,...o})}function Df(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!gn(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,rr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(p=>p.alias===a.targetAlias&&p.appId===a.appId&&p.sourceKind==="APP"))return e;let l=rr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!gn(Aa(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 ir(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!gn(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&&!gn(Aa(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))||vf(Rh(e))!==e.allKlikes.length))}function fh(e,t){if(e===null)return Cf(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return Cf(e);let r=Eh(e,t,n);if(r!==null)return r;let i=ga(e),o=[],a=new Set;for(let u of i){let d=Lf(u,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,relation:"exact"},R;try{R=rr(f,t)}catch{continue}let E=Aa(R);gn(E,d.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:d.functionOccurrences,relation:d.relation,consumption:"leaf",serializedPredicate:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ya(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),p=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),c=gn(n,p)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:c,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:p,residualWhere:s,residualServerFunctionOccurrences:l}}function Eh(e,t,n){let r=Ea(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=rr(i,t)}catch{return null}if(!gn(Aa(o),n))return null;let a=new Set;if(Rn(e,a),vf(o)!==a.size)return null;let s=Object.freeze(Ra(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 Ea(e,t){switch(e.type){case"BINARY":{if(Ae(e).length>0){let i=Lf(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=ql(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Ea(e.left,t),r=Ea(e.right,t);return n!==null&&r!==null&&ha(n,r)?n:null}case"GROUP":case"NOT":return Ea(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ra(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...Ra(e.left),...Ra(e.right)];case"GROUP":case"NOT":return Ra(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Cf(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function ga(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...ga(e.left),...ga(e.right)]:[];case"GROUP":return ga(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ya(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ya(e.left,t),r=ya(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=ya(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Aa(e){let t=[];for(let n of mr){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 gn(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 vf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Rh(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function gh(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=nr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ma(i.right)){n.add("CROSS_TABLE_BINARY");return}ql(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Mf(i)){n.add("KLIKE_OR");return}let o=tr(i.left,t),a=tr(i.right,t);if(o.length!==1||a.length!==1||!ha(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 rr(e,t){return ii(e.predicate,e,t),H(e.predicate)}function ii(e,t,n){switch(e.type){case"LOGICAL":ii(e.left,t,n),ii(e.right,t,n);return;case"GROUP":ii(e.expr,t,n);return;case"NOT":ii(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ma(e.right))throw zl(t,"predicate contains a non-target or RHS field reference");let r=nr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw zl(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw zl(t,"predicate shape is outside the Phase A serializer contract")}}function zl(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function tr(e,t){switch(e.type){case"BINARY":{let n=ql(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=tr(e.left,t),r=tr(e.right,t);if(e.op==="AND")return Uf([...n,...r]);if(Mf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return ha(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:kf(i.relation,o.relation)}]:[]}case"GROUP":return tr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Uf(e){let t=[];for(let n of e){let r=t.findIndex(o=>ha(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:kf(i.relation,n.relation)}}return t}function Of(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function ri(){return Object.freeze({relation:"unsafe"})}function ha(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function kf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Rn(e,t){if(e!==null){if(Kt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Rn(e.left,t),Rn(e.right,t);return;case"NOT":case"GROUP":Rn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Mf(e){let t=new Set;return Rn(e,t),t.size>0}function ma(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ma);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ma)}function Jl(e,t){let n=vr(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 yh(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function mh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function oi(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=yh(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"&&!mh(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 Ah=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 hh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ai(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,p=e.orderSemantics.get(l);if(!p){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(hh(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!p.source||p.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}Ah.has(p.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.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 Sa=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"}},Ta=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}},Ia=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 xf(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 Ia(a).message}}return{records:n,cleanupWarning:o}}function Xl(e){let t=[];e.where&&t.push(H(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 Sh={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 Ff(e,t){let n=Sh[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 Gf(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=>Ff(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Ff(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var or=new WeakMap,Zl=new WeakMap;function nu(e){if(Zl.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):be(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&be(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=be(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Zl.set(t,e),t}function tt(e){return Zl.get(e)??e}function zf(e){let t=or.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},or.set(e,t)),t}function Rt(e,t,n,r=[]){let i=zf(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function He(e,t){return or.get(e)?.byColumn.get(t)}function be(e,t){return or.get(e)?.byLookupKey.get(t)}function Ot(e,t){return or.has(e)?void 0:e[t]}function Th(e){let t=or.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=vs(e);return r&&Ds(n,r.includedCanonicalIds),n}function Lt(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 Ih(e,t,n,r={}){if(n.type==="CROSS"){let u=ni(e.length,t.length);if(!u.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${u.outputRows} \u884C\uFF08\u5DE6 ${u.leftRows} \u884C \xD7 \u53F3 ${u.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${u.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let d=[];for(let f of e)for(let R of t)d.push({...f,...R});return d}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(Kf(e,a,r.leftColumns),Kf(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let R of e){let E=R[a]??"",g=u.get(E);g?g.push(R):u.set(E,[R])}let d={};for(let R of r.leftColumns??Object.keys(e[0]??{}))d[R]="";let f=[];for(let R of t){let E=R[s]??"",g=u.get(E)??[];if(g.length>0)for(let y of g)f.push({...y,...R});else f.push({...d,...R})}return f}let l=new Map;for(let u of t){let d=u[s]??"",f=l.get(d);f?f.push(u):l.set(d,[u])}let p=[],c={};for(let u of r.rightColumns??Object.keys(t[0]??{}))c[u]="";for(let u of e){let d=u[a]??"",f=l.get(d)??[];if(f.length>0)for(let R of f)p.push({...u,...R});else o==="LEFT"&&p.push({...u,...c})}return p}function Kf(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 wh(e,t,n,r,i){return t===null?e:e.filter(o=>ae(t,o,n,r,i))}function qf(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&di(t.expr)||t.type==="SCALAR_VALUE_COL"&&Xt(t.expr))}function bh(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 p=t.map((u,d)=>Ph(u,l,i?.items[d],n,o)).join("\0"),c=a.get(p);c?c.push(l):a.set(p,[l])}a.size===0&&t.length===0&&qf(n)&&a.set("",[]);let s=[];for(let l of a.values()){let p=nu({...l[0]});for(let c of t)c.type==="ARITH_KEY"?p[au(c.expr)]=String(ce(c.expr,l[0])):c.type==="FUNC_KEY"&&(p[Qt(c.expr)]=pe(c.expr,l[0]));Jf(p,l,n,r),s.push(p)}return s}function Nh(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 p={children:new Map},c=[];for(let d of e){let f=p;for(let R of l.items){let E=Bf(R,d),g=f.children.get(E);g||(g={children:new Map},f.children.set(E,g)),f=g}f.rows||(s(),f.rows=[],c.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),p.rows=[],c.push(p.rows));let u=new Set(l.items.map(d=>d.canonicalId));for(let d of c){let f=nu({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,Bf(E,d[0]));for(let E of t.allItems){let g=R.get(E.canonicalId)??"";f[E.directKey]=g,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=g)}Jf(f,d,n,r),Ds(f,u),o.push(f)}}return o}function Bf(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Jf(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=Ee(o.func,o.distinct,o.arg),s=String(ui(o.func,o.distinct,o.arg,o.separator,t,r));Rt(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){wa(e,t,o.expr,r);let a=o.alias??ci(o.expr);Rt(e,i,String(si(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&di(o.expr)){wa(e,t,o.expr,r);let a=o.alias??Qt(o.expr),s=su(o.expr,t,r);Rt(e,i,pe(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&Xt(o.expr)){wa(e,t,o.expr,r);let a=o.alias??gt(o.expr),s=li(o.expr,t,r);Rt(e,i,String(Ie(s,e)),[a])}else if(o.type==="CASE_COL"&&Ke(o.expr)){wa(e,t,o.expr,r);let a=nE(o.expr,t,r),l=xe(a,e,void 0,p=>p.aggregateRef?Qf(p.aggregateRef,r):void 0);Rt(e,i,l,[eu(o.alias,i)])}}function eu(e,t){return e??`__ksql_case_column_${t}`}function tu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>tu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>tu(r,t))}function wa(e,t,n,r){let i=[];tu(n,i);for(let o of i){let a=Ee(o.func,o.distinct,o.arg);if(be(e,a)!==void 0)continue;let s=String(ui(o.func,o.distinct,o.arg,o.separator,t,r));zf(e).byLookupKey.set(a,s)}}function Ph(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=ba(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"?pe(e.expr,t):String(ce(e.expr,t))}function ui(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=Xf(e,n,i).filter(f=>f!==null),s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let R=Number(f);if(!Number.isFinite(R))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 R}):null,p=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(r??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?pi(n,o):void 0,u=typeof c=="string"?K(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?K("string"):K("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let R="",E=0;for(let[g,y]of f){if(y>E){R=g,E=y;continue}if(y!==E)continue;let m=Ze(g,R,u);(m<0||m===0&&qt(g,R)<0)&&(R=g)}return R}if(e==="MIN"||e==="MAX"){let f=p;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let g=Ze(E,R,u);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(R=E)}return R}let d=s?p:p.map(Number);switch(e){case"SUM":return d.reduce((f,R)=>f+R,0);case"AVG":return d.length===0?0:d.reduce((f,R)=>f+R,0)/d.length;case"MEDIAN":{if(d.length===0)return"";let f=[...d].sort((E,g)=>E-g),R=Math.floor(f.length/2);return f.length%2===1?f[R]:(f[R-1]+f[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(d.length===0||f&&d.length<2)return"";let R=d[0],E=0,g=0,y=0;for(let S of d){let A=S-R;E++;let N=A-g;g+=N/E,y+=N*(A-g)}let m=Math.max(0,y/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(m):m}}}function Xf(e,t,n){return n.map(r=>{let i=tt(r),o;if(t.type==="FIELD_REF"){let a=i[t.field];if(a===void 0||a===""&&e!=="MIN"&&e!=="MAX")return null;o=a}else if(t.type==="ARITH"||t.type==="NUMBER"){let a=ce(t,i);if(isNaN(a))return null;o=String(a)}else{let a=Nt(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function Ch(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 si(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ui(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Me(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=si(e.left,t,n),i=si(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 ci(e){return ut(e)}function pi(e,t){if(e.type==="FIELD_REF")return t?.(Ch(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=>pi(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 Qf(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return K("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return K("string");let n=e.arg.type==="WILDCARD"?"string":pi(e.arg,t)??"string";return typeof n=="string"?K(n):n}function Oh(e,t,n,r){return t===null?e:e.filter(i=>ae(t,Th(i),n,void 0,r))}function Lh(e,t,n,r,i){if(e.length===0)return e;let o=_h(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 _h(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(Gh(t,a,o))}function ru(e,t,n,r,i,o){return t.length===0?e:Zf(e,t,n,r,i,o).rows.map(a=>a.row)}function Zf(e,t,n,r,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:K("number")};if(p.type==="FUNC_KEY")return{semantics:K(eE.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:K("number")};let c=i?.get(p.name);if(c)return{semantics:c};let u=n?.get(p.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:K(r?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:c},u)=>({s:Uh(c,p,o)}))})),l=(p,c)=>Dh(p,c,t,a);return s.sort(l),{rows:s,compare:l}}function Dh(e,t,n,r){for(let i=0;i<n.length;i++){let o=vh(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function vh(e,t,n){return Ze(e.s,t.s,n.semantics)}var eE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Uh(e,t,n){let r=tt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??be(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(ce(e.expr,r));case"FUNC_KEY":return pe(e.expr,r);case"GROUPING_KEY":return $n(e.ref,t)}}function iu(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=>Me(tt(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>He(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>He(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>He(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(ce(a.expr,tt(l))));break;case"STRFUNC_COL":{let l=Qt(a.expr);i.set(s,p=>di(a.expr)?He(p,o)??be(p,l)??pe(a.expr,tt(p),n,r):pe(a.expr,tt(p),n,r));break}case"CASE_COL":i.set(s,l=>Ke(a.expr)?He(l,o)??"":xe(a.expr,tt(l),n,r));break;case"SCALAR_VALUE_COL":{let l=gt(a.expr);i.set(s,p=>Xt(a.expr)?He(p,o)??be(p,l)??"":String(Ie(a.expr,tt(p),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>$n(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function ou(e,t,n,r,i,o){let a=t.map((s,l)=>({column:s,columnIndex:l})).filter(s=>s.column.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s=0;s<e.length;s++)e[s]=nu(e[s]);for(let{column:s,columnIndex:l}of a){let p=new Map;for(let c of e){let u=JSON.stringify(s.partitionBy.map(f=>Fh(c,f))),d=p.get(u);d?d.push(c):p.set(u,[c])}for(let c of p.values()){let u=Zf(c,s.orderBy,n,r,i),d=u.rows;if(to(s)){xh(s,l,u,o);continue}if(ws(s)){Mh(s,l,d);continue}if(!Is(s))throw new Error(`InternalError: unknown window kind ${s.windowKind??"undefined"}`);let f=1,R=1;for(let E=0;E<d.length;E++){E>0&&u.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let g=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;Rt(d[E].row,l,String(g),[s.alias])}}}return e}function kh(e,t){let n=Nt(e,tt(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function Mh(e,t,n){let r=n.map(o=>kh(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;Rt(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function xh(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:Xf(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:pi(e.arg,r),s=typeof a=="string"?K(a):a??K("string"),l=[],p=0,c=0,u;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")p++;else if(f!==null)if(e.aggFunc==="COUNT")p++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")c+=Number(f),p++;else if(u===void 0)u=f;else{let E=Ze(f,u,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(u=f)}let R=e.aggFunc==="COUNT"?p:e.aggFunc==="SUM"?c:e.aggFunc==="AVG"?p===0?0:c/p:u??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)Rt(f.row,t,d,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let d=0;d<i.length;){let f=d;for(;f+1<i.length&&n.compare(i[f],i[f+1])===0;)f++;for(let R=d;R<=f;R++)Rt(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)Rt(i[d].row,t,l[d],[e.alias])}function Fh(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Me(tt(e),n)}function Na(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function ba(e,t,n,r={}){let i=tt(t);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(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return Me(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=Ee(e.func,e.distinct,e.arg);return He(t,n)??be(t,e.alias??o)??be(t,o)??Ot(t,e.alias??o)??Ot(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??ci(e.expr);return He(t,n)??be(t,o)??Ot(t,o)??"0"}case"ARITH_COL":return String(ce(e.expr,i));case"CASE_COL":return Ke(e.expr)?He(t,n)??be(t,eu(e.alias,n))??Ot(t,eu(e.alias,n))??"":xe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return $n(e.ref,t);case"STRFUNC_COL":{let o=Qt(e.expr);return di(e.expr)?He(t,n)??be(t,e.alias??o)??be(t,o)??Ot(t,e.alias??o)??Ot(t,o)??pe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):pe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=gt(e.expr);return Xt(e.expr)?He(t,n)??be(t,e.alias??o)??be(t,o)??Ot(t,e.alias??o)??Ot(t,o)??"":String(Ie(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return He(t,n)??be(t,e.alias)??Ot(t,e.alias)??""}}function Gh(e,t,n={}){return e.map((r,i)=>{let o=ba(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function yn(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let g=Yf(Vf(E),a),y=ba(t[0],E,0,{wildcardKeys:Object.keys(g)}),m={};if(typeof y!="string")for(let[S,A]of y.entries)A!==null&&(m[S]=A);return m}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=Vh(t),l=$h(t),p=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=p?null:Kh(t,s,l),u=c??[];return p&&e.length===0?{rows:[],columns:Bh(t,s,l)}:{rows:e.map((f,R)=>{let E={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Yf(Vf(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let S=ba(m,f,y,g);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof S!="string")for(let[A,N]of S.entries)N!==null&&(E[A]=N);break;case"PARENT_WILDCARD":{if(typeof S!="string")for(let[A,N]of S.entries)N!==null&&(E[A]=N),R===0&&u.push(A);break}case"FIELD":{let A=c?.[y]??m.alias??s.get(y)??m.field;E[A]=S,c===null&&R===0&&u.push(A);break}case"LITERAL_COL":{let A=c?.[y]??m.alias??`'${m.value}'`;E[A]=S,c===null&&R===0&&u.push(A);break}case"AGGREGATE":{let A=Ee(m.func,m.distinct,m.arg),N=c?.[y]??m.alias??A;E[N]=S,c===null&&R===0&&u.push(N);break}case"ARITH_AGG_COL":{let A=c?.[y]??m.alias??ci(m.expr);E[A]=S,c===null&&R===0&&u.push(A);break}case"ARITH_COL":{let A=c?.[y]??m.alias??au(m.expr);E[A]=S,c===null&&R===0&&u.push(A);break}case"CASE_COL":{let A=c?.[y]??m.alias??l.get(y)??"case";E[A]=S,c===null&&R===0&&u.push(A);break}case"GROUPING_COL":{let A=c?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[A]=S,c===null&&R===0&&u.push(A);break}case"STRFUNC_COL":{let A=c?.[y]??m.alias??Qt(m.expr);E[A]=S,c===null&&R===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=c?.[y]??m.alias??gt(m.expr);E[A]=S,c===null&&R===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=c?.[y]??m.alias??"(subquery)";E[A]=S,c===null&&R===0&&u.push(A);break}case"WINDOW_COL":{let A=c?.[y]??m.alias;E[A]=S,c===null&&R===0&&u.push(A);break}}}return E}),columns:u}}function Kh(e,t,n){return e.map((r,i)=>tE(r,i,t,n))}function Bh(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=tE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function tE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??Ee(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??ci(e.expr);case"ARITH_COL":return e.alias??au(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Qt(e.expr);case"SCALAR_VALUE_COL":return e.alias??gt(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 $h(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function Vh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=$f(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=$f(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 $f(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Vf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function au(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"?Y(n):n.type==="STRING_FUNC"?Qt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Qt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?ci(n):n.type==="VARIABLE"?`@${n.name}`:gt(n));return`${e.func}(${t.join(",")})`}function gt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return Y(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Qt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${gt(e.left)}${e.op}${gt(e.right)}`;case"CONCAT_OP":return`${gt(e.left)}||${gt(e.right)}`}}function Wh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:Xt(e)}function Xt(e){return e.type==="STRING_FUNC"?di(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Xt(e.left)||Xt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Wf(t.result))||e.elseResult!==null&&Wf(e.elseResult):!1}function Wf(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Xt(e)}function di(e){return e.args.some(t=>Wh(t))}function Hh(e,t,n){if(e.type==="AGG_REF"){let r=ui(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=si(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Me(t[0]??{},r)),raw:Me(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?su(e,t,n):li(e,t,n)}function li(e,t,n){return e.type==="STRING_FUNC"?su(e,t,n):e.type==="CASE_WHEN"?nE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:li(e.left,t,n),right:li(e.right,t,n)}:e}function Hf(e,t,n){if(e.type==="AGG_REF"){let r=ui(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=si(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:li(e,t,n)}function nE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:Hf(r.result,t,n)})),elseResult:e.elseResult===null?null:Hf(e.elseResult,t,n)}}function su(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Hh(r,t,n))}}function Yf(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 jf(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Ql(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Yh(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,K("number"));else if(r.type==="WINDOW_COL"){if(Is(r)||to(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,K("number"));else if((to(r)||ws(r))&&r.arg.type!=="WILDCARD"){let i=pi(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?K(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,K("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,K("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,K("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,K(eE.has(r.expr.func)?"number":"string"));return n}function lu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:c,aggregateSortKindResolver:u,appliedKlikes:d,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:g,plainGroupByPlan:y}=e,m=Yh(t.columns,u);for(let[_,C]of a??[])m.set(_,C);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(_=>Lt(_,A));let b=Ql(jf(R?.get(A),A),void 0,S);for(let _ of t.joins){let C=_.table.alias,w=(n.get(C)??[]).map(h=>Lt(h,C)),D=Ql(jf(R?.get(C),C),void 0,w);S=Ih(S,w,_,{leftColumns:b,rightColumns:D}),b=Ql(b,D,S)}let v=e.residualWhere!==void 0?e.residualWhere:t.where;S=wh(S,v,s,d,l);let P=Z(t);if(P.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");S=Nh(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(P.type==="PLAIN"||qf(t.columns))&&(S=bh(S,P.type==="PLAIN"?P.allItems:[],t.columns,u,P.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let k=_=>_.aggregateRef?Qf(_.aggregateRef,u):c?.(_);return S=Oh(S,t.having,p,k),S=ou(S,t.columns,i,o,m,u),t.distinct&&(S=Lh(S,t.columns,r,s,l)),S=ru(S,t.orderBy,i,o,m,iu(t.columns,r,s,l)),S=Na(S,t.limit,t.offset),yn(S,t.columns,r,s,f,l,E)}function rE(e,t){let n=[];for(let r of e){let i=uu(r.$id?.value),o=jh(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[p,c]of Object.entries(r)){if(p===t)continue;let u=uu(c?.value);l[`_p.${p}`]={value:u}}for(let[p,c]of Object.entries(s.value??{}))l[p]={value:uu(c?.value)};n.push(l)}}return n}function jh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function uu(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 iE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function oE(e,t){let n=fi(e);for(let[r,i]of Object.entries(t))n[r]=fi(i);return n}function aE(e){let t=[...e.preErrors.map(i=>cu(i)),...e.postImageErrors.map(i=>cu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>cu(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]=fi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function cu(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 fi(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(fi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=fi(a,t);return i}function lE(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"&&Xe(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 du(e){return lE(e,!0)}function Pa(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 nt(e,t,n,r,i=!0,o=!0,a=r){let s=du(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:Ae(e.where)}),Pa(e,e).forEach((l,p)=>nt(l,`${t}.select-source[${p}]`,n,a,a?!1:i,a?!1:o,a))}function Ei(e,t,n,r,i=!0){e.left.type==="UNION"?Ei(e.left,`${t}.left`,n,r,i):nt(e.left,`${t}.left`,n,r,!0,i),nt(e.right,`${t}.right`,n,r,!0,i)}function sE(e,t,n,r){if(!r&&$t(e)){nt(Vt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?nt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ei(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?nt(e.query,`${t}.main`,n,r,!1,!r,!0):Ei(e.query,`${t}.main`,n,!0,!1)}function uE(e,t,n,r=!1){switch(e.type){case"SELECT":nt(e,t,n,r);return;case"UNION":Ei(e,t,n,r);return;case"WITH":sE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?sE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ei(e.query,`${t}.query`,n,!0,!1):nt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":uE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=du(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)}),Pa(e,e).forEach((o,a)=>nt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=du(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:Ae(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=lE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Pa(e,e).forEach((o,a)=>nt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Pa(e,e).forEach((i,o)=>nt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ca(e,t){let n=new Map;for(let r of t){if(!Xe(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 fu(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 zh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&ir(t)}function qh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Jh(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return Mn(e)?(n.some(r=>r!==St)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(St)||n.push(St)):n.includes(rn)||n.push(rn),[...new Set(n)]}function pu(e,t){let n=e.functionNames[0],r=Mn(n)?St:rn,i=Jh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function cE(e,t){let n=[];uE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=qh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i)}}if(i.kind==="SELECT"){let c=i.source,u=c.from.cteName===null&&!c.from.subtableCode&&c.joins.length===0,d=$e(c),f=await t.select(c),R="";try{R=i.where===null?"":H(i.where)}catch{R=""}let E=u&&d==="SIMPLE"&&(c.orderBy.length===0||c.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ca(R,i.relativeFunctionOccurrences),g,y;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let N=await t.prefilterDecomposition(c);N?.eligible===!0&&fu(c,N)&&(g=N.plan,y=!0,E=!0)}let m;!E&&f.capability==="EXACT_PUSHDOWN"&&(m=Do({select:c,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,m&&(g=m.prefilterPlan,E=!0));let S;if(!E&&t.joinServerFunctionPlan){let N=await t.joinServerFunctionPlan(c);N!==null&&zh(c,N)&&(S=N,E=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...g?{prefilterPlan:g,phase2PrefilterEligible:y}:{},...m?{fullScanExactPlan:m,allowForm:m.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(A),!E)return{hasRelativeDate:n.some(N=>N.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":H(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Ca(s,i.relativeFunctionOccurrences),p={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(p),!l)return{hasRelativeDate:n.some(c=>c.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Eu(e){if(!e.allowed&&e.rejection){let t=Mn(e.rejection.functionName)?St:rn,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 Ru(e,t,n={}){let r=ge(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=gi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Xh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Qh(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=eS(e.where,t),l=vr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=n.serialize??H,c=n.containsFunctions??Ca,u=[];for(let S of a.leaves){let A=Da(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let N;try{N=p(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!c(N,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let d=Zh(l.condition),f=new Set(u),R=La(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=p(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let g=u.map(S=>Da(S));if(!c(E,[...new Set(g)])||!tS(E,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):_a(e.where,f);if(y!==null&&gi(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let m=new Set;for(let S of g)m.add(S);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:m,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Xh(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}gi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":gi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Da(o)===null)return;if(ge(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":gi(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 Da(e){return e.right.type==="KINTONE_FUNC"&&Xe(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Xe(e.right.values[0].name)?e.right.values[0].name:null}function gi(e){let t=[],n=r=>{if(r.type==="BINARY"&&Da(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 Qh(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 Zh(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 La(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=La(e.left,t,n),i=La(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=La(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Ri={type:"BOOLEAN",value:!0};function _a(e,t){if(e.type==="BINARY"&&t.has(e))return Ri;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=_a(e.left,t)??Ri,r=_a(e.right,t)??Ri;return Oa(n)?Oa(r)?null:r:Oa(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=_a(e.expr,t)??Ri;return Oa(n)?Ri:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Oa(e){return e.type==="BOOLEAN"&&e.value}function eS(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 tS(e,t){let n=new Map;for(let r of t){if(!mr.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 $=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function pE(e,t){if(!t)throw new $("IMPORT source capability is not available.");let n=t(e);if(!n)throw new $(`source "${e}" is not supplied.`);return n}async function va(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new $("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new $("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function nS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new $(`invalid ${t.toUpperCase()} byte sequence.`)}}function rS(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 p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
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 Oe("\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 al(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Cm(t)}function Rd(e){let t=e.codePointAt(0);return al(e)||t>=48&&t<=57}function Jn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Cm(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var yd=20,ll=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"}),Ad=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Fr=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),gN=Object.freeze(Object.values(Fr).filter(e=>e!==void 0)),Om=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Lm=new Set(Om);function _m(e){return Lm.has(e)}var hd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Gr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function md(e){return Gr[e]!==void 0}var Dm=Object.freeze([...oo]),vm=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Um=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function km(e){return vm.has(e)}function Mm(e){return Um.has(e)}function xm(e){return Number.isInteger(e)&&e>=1&&e<=31}var yN=Object.freeze(Array.from(new Set([...Object.keys(ll),...Ad,...Object.keys(Fr),...Object.keys(hd),...Object.keys(Gr),...Dm,"IF"]))),Fm=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 Gm(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Fm.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},sl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
+ `),zt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>yd)throw new T(`batch exceeds ${yd} 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==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Gr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Gr[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(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}=bt(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 v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let k of["ID","SOURCE"]){if(!this.isSoftKeyword(k))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}C=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:v,...C?{rowIdSourceHeader:C}:{}})}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 p=this.parseIdentifier(),c,u=!0,d;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());c=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(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),d=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!==Pe||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 R="POSITION",E=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(R="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(),E=!0}}let g,y;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()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(g=this.parseOnDuplicate());let A;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("("),A=this.parseIdentList(),this.expect(")"),new Set(A).size!==A.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(b=>b.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(A)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(R!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!A)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(A);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of b)if(!S.some(C=>C.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(A)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(R!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(g)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let m=this.parseCheckGroups(),N=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:c,hasHeader:u,mappingMode:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...A?{replaceSubtables:A}:{},...g?{keyFields:g}:{},...m,...N}}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}=bt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:d})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);p=this.parseTableName()}let c={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(c,t),c}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Gm(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:Pe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],p,c=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?p=this.parseGroupingSetsClause():this.isRollupStart()?p=this.parseRollupClause():this.isCubeStart()?p=this.parseCubeClause():l=this.parseGroupByKeys(),p&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(c=this.parseWhereExpr("HAVING"))}let u="CANONICAL",d=[];if(this.consume("ORDER"))this.expect("BY"),d=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),d=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||p!==void 0||g))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(p&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,c,l,p),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...p?{grouping:p}:{},having:c,orderMode:u,orderBy:d,limit:f,offset:R}}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():o==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES"?i=this.parseGenerateSeries():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}}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(me(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(sl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:a.value.slice(1).toLowerCase(),alias:s.alias},s)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),p=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:p?.alias??null},p)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),p=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:p?.alias??null},p)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return hd[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(Fr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(sl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(sl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?me(`-${Y(n)}`):{type:"AGG_ARITH",left:me("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return me(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),Fr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=c=>{if(Array.isArray(c)){c.forEach(a);return}if(c===null||typeof c!="object")return;let u=c;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(c);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let p=new Set(r.filter(c=>c.type==="FIELD_NAME").map(c=>c.name));for(let c of o){let u=this.aggregateGroupKeyDisplay(c);if(!p.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(c)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return me(`${n.kind==="-"?"-":"+"}${Y(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:me("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),me(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return me(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?me(`-${Y(n)}`):{type:"ARITH",left:me("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),me(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=ll[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=ll[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Ad.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=Km(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Fr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!_m(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();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let 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}=bt(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();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):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(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:le(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return me(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.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(!km(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 p=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:p,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(!Mm(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(!xm(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(md(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Gr[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(me(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(me(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=rp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:c,...u,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let c=this.parseInsertRow(i.length);this.expect(")"),o.push(c)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let p=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),d=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(),R=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:d,...f,...R}}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 p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...p,...c}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(me(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(me(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.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 d=this.parseTableRef();if(d.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(d.cteName!==null&&!d.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(!d.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(d.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:d.appId,cteName:d.cteName,alias:d.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 d=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=d.targetJoinField,o.joinKeyField=d.joinKeyField,o.targetFilter=d.targetFilter}else{if(i.some(d=>d.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(d=>d.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(d.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 p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&p.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(c.validateOnly||c.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...p,...c}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...p,...c}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...p,...c}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((c,u)=>{let d=this.matchUpdateFromJoin(c,n,r);d!==null&&a.push({index:u,...d})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let c=0;c<o.length;c++){if(c!==s.index&&this.nodeContainsQualifiedField(o[c],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(c!==s.index&&this.nodeContainsForeignQualifier(o[c],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let p=o.filter((c,u)=>u!==s.index).reduce((c,u)=>c===null?u:{type:"LOGICAL",op:"AND",left:c,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:p}}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(md(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}=bt(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}=bt(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}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;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;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}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"||Bo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function Km(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 bt(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}}function qt(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 Bm(e,t){return e<t?-1:e>t?1:0}function Sd(e){if(e==="")return{band:0};let t=Te(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 $m(e,t){let n=Sd(e),r=Sd(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Zi(n.value,r.value):n.band===5&&r.band===5?qt(n.value,r.value):0}function Td(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 Wm(e,t,n){let r=Td(e,n),i=Td(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=qt(r.normalizedId,i.normalizedId);return o!==0?o:qt(r.display,i.display)}function Vm(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 Id(e,t){let n=t.optionOrder??new Map,i=[...new Set(Vm(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(wd),i}function wd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:qt(e.label,t.label)}function Hm(e,t,n){let r=Id(e,n),i=Id(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=wd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function Ze(e,t,n){switch(n.compareMode){case"string":return qt(e,t);case"number":return $m(e,t);case"recordNumber":return Wm(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Hm(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function cn(e,t,n,r=K("string")){let i=Ze(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 bd(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=Te(o),l=Te(a),p=s!==null&&l!==null?Zi(s,l):Bm(Number(o),Number(a));if(p!==0)return p}return qt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function pe(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(Ue(t,e.field));if(e.type==="STRING_FUNC")return Number(de(e,t));let n=pe(e.left,t),r=pe(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 we(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ue(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 de(e,t,n,r);case"CASE_WHEN":return xe(e,t,n,r);case"CONCAT_OP":return de({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(we(e.left,t,n,r)),o=Number(we(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 Nt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Od(e,t,n,r);case"SCALAR_ARITH":{let i=Nt(e.left,t,n,r),o=Nt(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=Nt(e.left,t,n,r),o=Nt(e.right,t,n,r);return`${i??""}${o??""}`}default:return we(e,t,n,r)}}function $o(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 Ym(e){return e>=55296&&e<=56319}function jm(e){return e>=56320&&e<=57343}function Vo(e,t){return t>0&&t<e.length&&Ym(e.charCodeAt(t-1))&&jm(e.charCodeAt(t))}function Nd(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 cl(e,t){let n=Math.min(Math.max(0,t),e.length);return Vo(e,n)&&(n-=1),e.slice(0,n)}function zm(e,t){let n=Math.max(0,e.length-t);return Vo(e,n)&&(n+=1),e.slice(n)}function qm(e,t,n){let r=Nd(t,e.length),i=Nd(n,e.length);return i<=r?"":(Vo(e,r)&&(r+=1),Vo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Jm(e,t){let n=e.repeat(Math.ceil(t/e.length));return cl(n,t)}var Xm=200,Kr=new Map;function Qm(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 ul(e,t,n=!1){let r=Qm(t)+(n?"g":""),i=`${e}\0${r}`,o=Kr.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(Kr.size>=Xm){let s=Kr.keys().next().value;s!==void 0&&Kr.delete(s)}return Kr.set(i,a),a}function Zm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function eA(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 tA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let c=Number(s+l);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=1;continue}}i+="$"}return i}function nA(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,p=a.length-(l?3:2),c=a.slice(0,p);return tA(n,o,c,l?s:void 0)})}function de(e,t,n,r){xo(e.func,e.args);let i=e.args.map(o=>cA(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return qm(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":cl(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":zm(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return cl(o,a);let s=i[2]??" ";if(s==="")return o;let l=Jm(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return bd(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 ul(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Zm(i[2]);let o=eA(i[4]),a=ul(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):nA(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ul(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,p)=>{s.has(l)||s.set(l,a[p])}),[...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 $o("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return $o("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return $o("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return $o("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 lA(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 Wo(i[0])?String(pl(i[0])+1):"";case"QUARTER":return Wo(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return Wo(i[0])?String(Cd(i[0])):"";case"DATE_FORMAT":return iA(i[0]??"",i[1]??"");case"DATEDIFF":return oA(i[0]??"",i[1]??"");case"DATE_ADD":return aA(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return sA(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 Br(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 Ho(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 Wo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ho(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 pl(e){return Ho(e).getUTCDay()}function Pd(e){let t=Ho(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function rA(e){return Pd(e).getUTCFullYear()}function Cd(e){let t=Pd(e),n=t.getUTCFullYear(),r=Ho(`${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 iA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Br(e),l=Wo(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){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(pl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][pl(e)]:"";case"%v":return l?String(Cd(e)).padStart(2,"0"):"";case"%G":return l?String(rA(e)).padStart(4,"0"):"";default:return p}})}function oA(e,t){if(e.length<10||t.length<10)return"0";let n=Br(e),r=Br(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 aA(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}=Br(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let d=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(d,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),p=String(a.getUTCMonth()+1).padStart(2,"0"),c=String(a.getUTCDate()).padStart(2,"0");return`${l}-${p}-${c}`}function sA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Br(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 lA(e,t){if(/^-?\d+$/.test(t.trim()))return uA(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,p=s+l,c=i.toFixed(p),[u,d=""]=c.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,R=d?`${f}.${d}`:f;return n?R+"%":R}function uA(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 cA(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String($r(e,t)):e.type==="NUMBER"?Y(e):String(we(e,t,n,r))}function $r(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[le(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ue(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number($r(e.left,t)),r=Number($r(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 Ue(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 ae(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return pA(e,t,n,r,i);case"NULL_CHECK":return yA(e,t);case"LOGICAL":return mA(e,t,n,r,i);case"NOT":return!ae(e.expr,t,n,r,i);case"GROUP":return ae(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function pA(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=xd(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=fA(e.left,a,i);return dA(e.op,o,e.right,t,a,n,s,i)}function dA(e,t,n,r,i,o,a=K("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(gA(n.values),p=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?Y(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(p=n.resolved),p===null)return e==="NOT_IN";let c=RA(t,p,i);return e==="IN"?c:!c}if(e==="LIKE"){let p=dl(n,r,o);return Md(t,p)}if(e==="NOT_LIKE"){let p=dl(n,r,o);return!Md(t,p)}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=dl(n,r,o,s);return cn(e,t,l,a)}var Ld=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function fA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ee({fieldType:t}):K("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return K("number");if(e.type==="FUNC_FIELD")return K(Ld.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 K("number");if(o.type==="STRING_FUNC")return K(Ld.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)??K("string")}return K("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?K("number"):K("string")}var _d=new Set(["CHECK_BOX","MULTI_SELECT"]),Dd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),EA=new Set(["CREATOR","MODIFIER"]);function RA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=K("number");return[...t].some(a=>cn("=",e,a,o))}let i;if(_d.has(n)||Dd.has(n)||EA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return _d.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Dd.has(n)?!Array.isArray(i)||!i.every(vd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):vd(i)?t.has(i.code):r()}function vd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function gA(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}: ${St}`)}function yA(e,t){let n=xd(e.field,t);return e.not?n!=="":n===""}function mA(e,t,n,r,i){return e.op==="AND"?ae(e.left,t,n,r,i)&&ae(e.right,t,n,r,i):ae(e.left,t,n,r,i)||ae(e.right,t,n,r,i)}function xd(e,t,n,r){if(e.type==="FUNC_FIELD")return de(e.expr,t);if(e.type==="AGG_FIELD")return String($r(e.expr,t));if(e.type==="ARITH_FIELD")return String(pe(e.expr,t));if(e.type==="CASE_FIELD")return xe(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return $n(e.ref,t);if(e.aggregateRef){let o=e.aggregateRef;return Ue(t,le(o.func,o.distinct,o.arg))}let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ue(t,i)}function dl(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 Y(e);case"KINTONE_FUNC":return AA(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"?Ue(t,e.expr.field):e.expr.type==="STRING_FUNC"?de(e.expr,t):String(pe(e.expr,t));case"CASE_VALUE":return xe(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function xe(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return kd(i.result,t,n,r);return e.elseResult!==null?kd(e.elseResult,t,n,r):""}function Od(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return Ud(i.result,t,n,r);return e.elseResult===null?null:Ud(e.elseResult,t,n,r)}function Ud(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[le(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?pe(e,t):Nt(e,t,n,r)}function kd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[le(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(pe(e,t)):String(we(e,t,n,r))}function Fd(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 AA(e){throw ne(e)?new Error(`${e}: ${rn}`):Mn(e)?new Error(`${e}: ${St}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Yo=new Map,hA=200;function Md(e,t){if(!mp(t))return e.includes(t);let n=Yo.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"),Yo.size>=hA&&Yo.clear(),Yo.set(t,n)}return n.test(e)}function Xn(e){return Kd(e)}function Gd(e){return Kd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Kd(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 be("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 be("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 be(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function jo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ae(a.condition,t,n))continue;let s=we(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function fl(e){if(Gt(e))throw new ie("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 SA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),TA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Jo(e,t=new Map){let n=e.values.map(r=>IA(e.fields,r,t));return Yr(n,100).map(r=>({app:e.appId,records:r}))}function IA(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Jt(a.expr,{},n.get(i))}:r[i]={value:Pt(a,n.get(i))}}),r}function Vr(e){fl(e.where);let t=Zd(e);return{app:e.appId,query:H(e.where),fields:["$id",...t],totalCount:!1}}function Hr(e,t,n=new Map){let r=wA(e.assignments,n);return Yr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function wA(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:Pt(i,t.get(r))});return n}function Vd(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 Xo(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 El(e){fl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Hd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Qn(n,t):n.type==="STRING_FUNC"?Rl(n,t):n.type==="CASE_VALUE"&&Yd(n.expr,t);return Zd(e).forEach(n=>t.add(n)),{app:e.appId,query:H(e.where),fields:["$id",...t],totalCount:!1}}function Hd(e,t){Wr(e.left,t),Wr(e.right,t)}function Wr(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"?Hd(e,t):e.type==="STRING_FUNC"&&Rl(e,t)}function Rl(e,t){for(let n of e.args)bA(n,t)}function bA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){qo(e,t);return}Qn(e,t)}function Qn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Rl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Qn(e.left,t),Qn(e.right,t);return}e.type==="CASE_WHEN"&&Yd(e,t)}function qo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&NA(e.arg,t);return}e.type==="AGG_ARITH"&&(qo(e.left,t),qo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function NA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Wr(e,t):Qn(e,t)}function Bd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){qo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Wr(e,t);return}Qn(e,t)}}function Yd(e,t){for(let n of e.branches)zo(n.condition,t),Bd(n.result,t);e.elseResult!==null&&Bd(e.elseResult,t)}function zo(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Wr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":zo(e.left,t),zo(e.right,t);break;case"NOT":case"GROUP":zo(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function gl(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=jd(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:yl(p,a,n.get(l),i)};return{id:o,record:s}});return Yr(r,100).map(i=>({app:e.appId,records:i}))}function yl(e,t,n,r){if(e.type==="ARITH")return String(r?Al(e,r):pe(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(we(e,t));if(e.type==="STRING_FUNC")return de(e,t);if(e.type==="CASE_VALUE")return Jt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ie("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Pt(e,n)}function Qo(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return Y(e);if(e.type==="ARITH")return String(pe(e,t));if(e.type==="CASE_VALUE")return xe(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 PA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ml(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 ie("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=jd(i),l={};for(let{field:p,value:c}of e.assignments){let u=n.get(p);if(c.type==="SOURCE_FIELD"){if(PA.has(u??""))throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,c.field))throw new ie(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[c.field];if(typeof d!="string")throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${c.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new ie(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[p]={value:Pt({type:"STRING",value:d},u)}}else{if(c.type==="STRING_FUNC")throw new ie("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");c.type==="ARITH"?l[p]={value:String(Al(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[p]={value:String(we(c,s))}:c.type==="CASE_VALUE"?l[p]={value:Jt(c.expr,s,u)}:l[p]={value:Pt(c,u)}}}return{id:a,record:l}});return Yr(r,100).map(i=>({app:e.appId,records:i}))}function jd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Al(e,t){let n=$d(e.left,t),r=$d(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function $d(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 Al(e,t);if(e.type==="STRING_FUNC")throw new ie("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 ie(`\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 zd(e){return fl(e.where),{app:e.appId,query:H(e.where),fields:["$id"],totalCount:!1}}function qd(e,t){return Yr(t,100).map(n=>({app:e,ids:n}))}function Jd(e){return SA.has(e??"")}function CA(e){return TA.has(e??"")}function OA(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 LA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Xd(e,t){return Jd(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):CA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?OA(e):t==="DATE"?LA(e):e}function Qd(e,t){return Jd(t)?e.map(n=>({code:n})):e}function Wd(e,t,n){if(e.type==="ARRAY")return Qd(e.elements.map(r=>r.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Xd(e.value,n):e.type==="STRING_FUNC"?de(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(pe(e,t)):String(we(e,t))}function Zd(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Xn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Jt(e,t,n){for(let r of e.branches)if(ae(r.condition,t))return Wd(r.result,t,n);return e.elseResult!==null?Wd(e.elseResult,t,n):""}function Pt(e,t){let n=hl(e,t);if(!n.ok)throw new ie(n.message);return n.value}function hl(e,t){try{return{ok:!0,value:_A(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function _A(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 Xd(e.value,t);case"NUMBER":return Y(e);case"ARRAY":return Qd(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ie(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ie("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ie("\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 ie("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 ie("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\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 Yr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ie=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Sl=new Set(["CHECK_BOX","MULTI_SELECT"]),DA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function jr(e){throw new Error(`ArgumentError: ${e}`)}function ef(e,t,n){let r=vA(n.fieldType,e.field),i=UA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let A=y.value;A!==""&&(y.kind==="ADD"?(s.has(A)||a.push(A),s.add(A)):l.add(A))}for(let y of s)l.has(y)&&jr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let p=i.filter(y=>!l.has(y)),c=a.filter(y=>!o.has(y)),u=[...p,...c],d=new Set(i.filter(y=>l.has(y))).size,f=new Set,R=new Set,E=e.operations.map(y=>{let A=y.kind==="ADD"?f:R,S=!A.has(y.value);return A.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=Sl.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:g,addedValues:c.length,removedValues:d,changedValues:c.length+d}}function vA(e,t){return Sl.has(e)||DA.has(e)?e:jr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function UA(e,t,n){if(!Array.isArray(e))return jr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Sl.has(t)?typeof i!="string"?jr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?jr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function q(e){throw new Error(`ArgumentError: ${e}`)}function wl(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?q("APPLY parent selector must be a single positive $id."):t.right.value}function Ct(e,t){let n=e.applyBlocks;if(!n?.length)return q("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)Tl(s.field,null,r),kA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&q(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&q(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?q(`APPLY target ${s.field} is not a SUBTABLE.`):q(`APPLY target ${s.field} does not exist as a top-level field.`);if(Rp(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&q(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let p=l,c=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,p),a.set(s.field,c);for(let u of s.operations)if(u.kind==="PATCH"){for(let d of u.assignments)Tl(d.field,s.field,r,c),Il(d.value,s.field,r,c);u.selector.kind==="WHERE"&&Il(u.selector.where,s.field,r,c)}else if(u.kind==="APPEND"){let d=new Set;for(let f of u.fields)d.has(f)&&q(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),Tl(f,s.field,r,c)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Il(u.selector.where,s.field,r,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function kA(e,t){zr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&q(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&q(`APPLY parent FILE reference ${n} is not supported.`)})}function Tl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&q(`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&&q(`APPLY child ${e} does not belong to subtable ${t}.`),q(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&q(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Il(e,t,n,r){zr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&q(`APPLY child reference ${i} does not belong to subtable ${t}.`),q(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Zo(e,t){let n=Ct(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)zr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ea(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=sf(i?.value);return n}function nf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Ct(t,r),o=Pl(n.$id?.value,"APPLY snapshot $id"),a=wl(t);return o!==a&&q(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),of(t,n,i,o)}function rf(e,t,n,r=Ct(e,n)){let i=new Set;return t.map(o=>{let a=Pl(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&q(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),of(e,o,r,a)})}function of(e,t,n,r){let i=Pl(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let D=n.targetMultiValueFields.get(c.field);D||q(`APPLY multi-value metadata for ${c.field} is missing.`),a.push(ef(c,t[c.field]?.value,D));continue}let u=n.childrenByTable.get(c.field),d=BA(t,c.field),f=new Set;for(let D of d)D.id||q(`APPLY snapshot for ${c.field} contains a row without _rid.`),f.has(D.id)&&q(`APPLY snapshot for ${c.field} contains duplicate _rid ${D.id}.`),f.add(D.id);let R=D=>D.field==="_rid"?"SINGLE_LINE_TEXT":D.field==="_idx"?"NUMBER":u.get(D.field)?.fieldType,E=[],g=[],y=[],A=new Set,S=new Set,m=new Set,N=c.operations.some(D=>D.kind==="REMOVE");for(let[D,P]of c.operations.entries()){if(P.kind==="APPEND"){let w=bl(P,u,c.field);y.push({kind:"APPEND",addedRows:w.length}),g.push(...w);continue}if(P.kind==="REMOVE"){let w=FA(P,d,R,c.field);P.expectRows&&tf(P.expectRows,w.length,r,c.field,D,P.kind),y.push({kind:"REMOVE",removedRows:w.length});for(let _ of w){let h=d[_].id;S.has(_)&&q(`APPLY row ${h} is selected by both PATCH and REMOVE.`),m.has(_)&&q(`APPLY removes row ${h} more than once.`),m.add(_)}continue}if(P.kind!=="PATCH")continue;let U=xA(P,d,R,c.field);P.expectRows&&tf(P.expectRows,U.length,r,c.field,D,P.kind),y.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let w of U){let _=d[w];m.has(w)&&q(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),S.add(w);let h=ea(_,w);for(let I of P.assignments){let M=`${_.id}\0${I.field}`;A.has(M)&&q(`APPLY patches cell ${_.id}.${I.field} more than once.`),A.add(M),E.push({rowIndex:w,field:I.field,value:Qo(I.value,h,R)})}}}let b=new Map;for(let D of E){let P=b.get(D.rowIndex)??{};P[D.field]={value:D.value},b.set(D.rowIndex,P)}let C=[...d.flatMap((D,P)=>m.has(P)?[]:[{id:D.id,value:{...D.value,...b.get(P)??{}}}]),...g],k={table:c.field,operations:y,changedSubtableRows:b.size+m.size+g.length,deletedRows:m.size,snapshotRowIds:d.map(D=>D.id),postImageRows:C};N?o.push({...k,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((D,P)=>m.has(P)?[D.id]:[]),payloadRows:C.map(D=>({...D.id===void 0?{}:{id:D.id},value:D.value}))}):o.push({...k,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((D,P)=>{let U=b.get(P);return U?{id:D.id,value:U}:{id:D.id}}),...g.map(D=>({value:D.value}))]})}let s=$A(t),l={};for(let c of e.assignments){let u=n.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:yl(c.value,s,u,t)}}let p={...t};Object.assign(p,l);for(let c of o)p[c.table]={value:c.postImageRows};for(let c of a)p[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((c,u)=>c+u.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function tf(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}`;q(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function ta(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return q(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,p)=>{let c=a[p];return c?.value?l.id===void 0?{value:c.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,c.value[u]]))}:q(`APPLY normalized post-image for ${o.table} row ${p+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}:q(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function bl(e,t,n){return e.values.map(r=>({value:MA(e,r,t,n)}))}function MA(e,t,n,r){if(t.length!==e.fields.length)return q(`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?Nl(a):s.type==="CASE_VALUE"?Jt(s.expr,{},a.fieldType):Pt(s,a.fieldType)}}return o}function Nl(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 xA(e,t,n,r){return af(e.selector,t,n,r)}function FA(e,t,n,r){return af(e.selector,t,n,r)}function af(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,p)=>p);let i=e.where,o=t.flatMap((l,p)=>ae(i,ea(l,p),n)?[p]:[]),a=GA(i);a!==null&&o.length===0&&q(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=KA(i);return s!==null&&o.length===0&&q(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function GA(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 KA(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 BA(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:{}}}):q(`APPLY snapshot field ${t} is not a subtable value.`)}function Pl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&q(`${t} must be a positive integer.`),n}function $A(e){let t={};for(let[n,r]of Object.entries(e))t[n]=sf(r?.value);return t}function sf(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 zr(e,t){if(Array.isArray(e)){e.forEach(r=>zr(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))zr(r,t)}function ue(e){throw new Error(`ArgumentError: ${e}`)}function ra(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?ue("APPLY snapshot $revision must be a positive integer."):t}function qr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return ue("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return ue("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)&&ue(`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)&&ue(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&ue(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),WA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function lf(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 ue("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 WA(e){let t=Cl(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(c=>c.id===void 0?[]:[c.id]);for(let c of e.payloadRows)c.id===void 0&&c.value===void 0&&ue(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Cl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&ue(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let c=e.payloadRows.slice(0,t.length).map(d=>d.id??"");na(t,c,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(d=>d.id!==void 0)&&ue(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(d=>d.id??"");na(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(d=>d.id!==void 0)&&ue(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(c=>c.kind==="REMOVE")||ue(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Cl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&ue(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&ue(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(c=>c.id===void 0?[]:[c.id]),o=new Set(r),a=new Set(i);for(let c of r)a.has(c)&&ue(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${c}.`);let s=t.filter(c=>!o.has(c));na(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(c=>c.id??"");na(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(c=>c.id!==void 0)||e.postImageRows.slice(i.length).some(c=>c.id!==void 0))&&ue(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(c=>c.value===void 0)&&ue(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((c,u)=>!Ol(c.value,e.postImageRows[u]?.value))&&ue(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...r]);(p.size!==t.length||t.some(c=>!p.has(c)))&&ue(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Cl(e,t){let n=[...e],r=new Set;for(let i of n)i||ue(`APPLY ${t} contains an empty row id.`),r.has(i)&&ue(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function na(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&ue(n)}function Ol(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)=>Ol(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)&&Ol(n[a],r[a]))}function uf(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 cf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=uf(t.digits,"digits",1,30),r=uf(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 pf(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 VA=new Set(["CHECK_BOX","MULTI_SELECT"]),HA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Fe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=YA(e);if(i!==""&&!jA(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=Jr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:zA(t.fieldType),message:o}}if(t.required&&ia(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ia(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Te(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&&eo(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&&eo(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}=pf(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(!ia(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!pn(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!ia(r)&&HA.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 YA(e){return e==null?"":oa(e)&&e.type==="NUMBER"?Y(e):oa(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function jA(e,t){if(t==="DATE")return pn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return pn(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)?pn(n.slice(0,10),"DATE")&&pn(n.slice(11),"TIME"):pn(n,"DATETIME")}function Jr(e,t){if(oa(e)){let r=hl(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(VA.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 oa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function dn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(oa(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ia(e){return e===""||Array.isArray(e)&&e.length===0}function zA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function pn(e,t){if(t==="TIME"){let p=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return p!==null&&Number(p[1])<=23&&Number(p[2])<=59&&Number(p[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)&&pn(l,"TIME")}var Zn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ll(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(c=>typeof c=="object"&&c!==null&&"code"in c),p=a;try{p=Jr(a,s)}catch{}i.record[o]={value:l?a:p}}}}function _l(e,t,n,r,i,o,a,s=[],l=!0,p=!0,c={}){let u=new Map(i.map(g=>[g.code,g])),d=[],f=new Set,R=[];c.validateUpdateBuiltIns===!1&&Ll(e,r,i);let E;for(let g of e){g.record??(g.record={});let y=p?[...g.preErrors]:[],A=[],S=[],m=g.mode==="create"||c.validateUpdateBuiltIns!==!1;for(let C of r){if(!g.payload.has(C))continue;let k=g.payload.get(C),D=u.get(C).fieldType,P=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(D)&&Array.isArray(k)&&k.every(w=>typeof w=="object"&&w!==null&&"code"in w);if(!m)continue;let U=Fe(k,u.get(C),a);U.ok?g.record[C]={value:P?k:U.value}:A.push({field:C,code:U.code,message:U.message})}if(l&&g.mode==="create")for(let C of i){if(C.inSubtable||g.payload.has(C.code))continue;if(dn(C.defaultValue)){let D=Fe("",C,a);D.ok?C.required&&A.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):A.push({field:C.code,code:D.code,message:D.message})}else{let D=Fe(C.defaultValue,C,a);D.ok||A.push({field:C.code,code:D.code,message:`\u65E2\u5B9A\u5024: ${D.message}`})}}if(s.length>0){let C=g.evaluationRow??Object.fromEntries([...g.payload].map(([P,U])=>[P,ct(U)])),k=g.evaluationFieldTypes,D=P=>{let U=P.tableAlias?`${P.tableAlias}.${P.field}`:P.field;return k?.get(U)??k?.get(P.field)};try{for(let P of jo(s,C,D))S.push({field:"",code:"ERR_CHECK",message:P.message})}catch(P){E??(E=P)}}let N=C=>C.map(k=>{let D={};for(let P of n)D[P]=ct(g.payload.get(P));return D.$err_statement=String(o),D.$err_operation=t,D.$err_row=String(g.rowNumber),D.$err_field=k.field,D.$err_code=k.code,D.$err_message=k.message,D.$err_value="",D.$err_subtable="",D.$err_subrow="",D.$err_subrow_id="",D}),b={rowNumber:g.rowNumber,preErrors:N(y),builtInErrors:N(A),checkErrors:N(S)};R.push(b);let v=[...b.preErrors,...b.builtInErrors,...b.checkErrors];v.length>0&&f.add(g.rowNumber),d.push(...v)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function ct(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 Dl=["required","length","range","choice"];function vl(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 Ul(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 qA(e){return vl(e).length>0}function JA(e){return e.fieldType==="NUMBER"||qA(e)}function aa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function kl(e,t){let{topByCode:n,childrenByTable:r}=Ul(t),i=JA;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,p)=>{let c=p?`${p}\0${l.code}`:l.code;if(a.has(c))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(c),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...p?{subtableCode:p}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=u.find(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,g])=>E!==l.subtableCode&&g.some(y=>y.code===d));throw new Error(R?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \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 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let p=l.field;if(p==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let c=n.get(p);if(c?.fieldType==="SUBTABLE"){let u=(r.get(p)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${p} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(d=>s(d,p));continue}if(c){s(c);continue}throw[...r.values()].some(u=>u.some(d=>d.code===p))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${p}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Xr(e,t){return dn(e)?"":ct(Jr(e,t))}var XA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Qr=Zn;function pt(e,t=["$id"]){let n=Ul(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!XA.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 fn(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 En(e,t,n,r,i=1,o="UPDATE"){let a=QA(e),s=[],l=new Set,p=[...t.payloadFields,...Qr],c=ct(e.$id?.value),u=(d,f,R,E)=>{l.add(i);let g={};for(let y of t.payloadFields)g[y]=y==="$id"?c:ct(e[y]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=d.code,g.$err_code=R.code,g.$err_message=R.message,g.$err_value=Xr(f,d.fieldType),g.$err_subtable=E?.subtable??"",g.$err_subrow=E?String(E.subrow):"",g.$err_subrow_id=E?.subrowId??"",s.push(g)};for(let d of t.topLevel){let f=e[d.code]?.value,R=Fe(f,d,n);R.ok?a[d.code]={value:df(f,d.fieldType,R.value)}:u(d,f,R)}for(let[d,f]of t.subtables){let R=e[d]?.value;if(!Array.isArray(R))continue;let E=a[d]?.value;for(let g=0;g<R.length;g++){let y=R[g],A=E[g];for(let S of f){let m=y.value?.[S.code]?.value,N=Fe(m,S,n);N.ok?(A.value??(A.value={}),A.value[S.code]={value:df(m,S.fieldType,N.value)}):u(S,m,N,aa(d,g,y))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function df(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 QA(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 sa(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;ff(o,"dmlMaxRows"),ff(a,"dmlMaxSubtableRows");for(let S of n)ra(S);let l=rf(t,n,r,i),p=pt(r,t.assignments.map(S=>S.field)),c=l.some(S=>fn(S.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,d=l.map((S,m)=>En(S.postImage,p,u,s,e.parentRowNumbers?.[m]??m+1));if(!t.validateOnly){let S=d.flatMap(m=>m.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:S})}`)}let f=l.length,R=l.reduce((S,m)=>S+m.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let g=l.map((S,m)=>ta(S,d[m].normalizedRecord)),y=g.flatMap(S=>qr(S).records),A=d.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Ef({plans:g,records:y,validations:A,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function ff(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ef(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))Ef(n,t);return Object.freeze(e)}var Ml=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function la(e,t){if(new Set(e.fields).size!==e.fields.length)return dt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Rf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return dt(`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 dt(`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 dt(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let c of l.fields){if(p.has(c))return dt(`APPLY APPEND specifies child ${c} more than once.`);p.add(c),Rf(c,o.field,n,s)}for(let c of l.values)if(c.length!==l.fields.length)return dt(`APPLY APPEND for ${o.field} has ${c.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function ZA(e,t,n=la(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Jo(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),p=s.operations.flatMap(c=>bl(c,l,s.field));return{table:s.field,rows:p,addedRows:p.length}});return o.map((s,l)=>{let p={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Ml.has(u.fieldType)||(p[u.code]=s[u.code]??{value:Nl(u)});let c={...s};for(let u of a){let d=u.rows.map(f=>({value:f.value}));p[u.table]={value:d},c[u.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:p,record:c}})}async function Zr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;gf(r,"dmlMaxRows"),gf(i,"dmlMaxSubtableRows");let a=e.metadata??la(t,n),s=ZA(t,n,a,e.parentRowNumbers),l=n.filter(m=>m.fieldType==="SUBTABLE"||m.fieldType!=="FILE"&&m.writable!==!1&&!Ml.has(m.fieldType)),p=pt(l,t.fields),c=s.some(m=>fn(m.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=c?await e.loadNumberPrecision():void 0,d=s.map(m=>En(m.postImage,p,u,o,m.parentRowNumber,"INSERT"));if(!t.validateOnly){let m=d.flatMap(N=>N.errors);if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:m})}`)}let f=s.length,R=s.reduce((m,N)=>m+N.tables.reduce((b,v)=>b+v.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let g=s.map((m,N)=>{let b=d[N].normalizedRecord,v={};for(let C of t.fields)v[C]=b[C];for(let C of m.tables){let k=b[C.table]?.value;v[C.table]={value:C.rows.map((D,P)=>({value:Object.fromEntries(Object.keys(D.value).map(U=>[U,k[P]?.value?.[U]??D.value[U]]))}))}}return{...m,postImage:b,record:v}}),y=g.map(m=>m.record),A=[];for(let m=0;m<y.length;m+=100)A.push({app:t.appId,records:y.slice(m,m+100)});let S=d.map(m=>({errors:m.errors,columns:m.columns,invalidRows:m.invalidRows,errorCount:m.errorCount}));return yf({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:A,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function Rf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return dt(`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?dt(`APPLY child ${e} does not belong to subtable ${t}.`):dt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Ml.has(i.fieldType))return dt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function gf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function dt(e){throw new Error(`ArgumentError: ${e}`)}function yf(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))yf(n,t);return Object.freeze(e)}async function Af(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;mf(i,"dmlMaxRows"),mf(o,"dmlMaxSubtableRows"),ih(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),p=eh(t,s.map(y=>y.sourceRowIndex)),c=await Zr({statement:p,fieldInfos:r,metadata:la(p,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],d=new Set;for(let y of l){let A=y.targetId;d.has(A)&&xl(`UPSERT APPLY resolves more than one source row to parent $id ${A}.`),d.add(A),y.snapshot||xl(`UPSERT APPLY snapshot for parent $id ${A} is missing.`);let S=Number(y.snapshot.$id?.value);S!==A&&xl(`UPSERT APPLY snapshot $id ${S} does not match target $id ${A}.`);let m=th(t,y.sourceRowIndex,A),N=m.applyBlocks?.length?Ct(m,r):nh(r);u.push(await sa({statement:m,snapshots:[y.snapshot],fieldInfos:r,metadata:N,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=rh(u,i,o),R=c.guards.parentRows+f.guards.parentRows,E=c.guards.subtableRows+f.guards.subtableRows,g=R>i||E>o;if(!t.validateOnly){let y=[...c.validations.flatMap(A=>A.errors),...f.validations.flatMap(A=>A.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return Fl({create:c,update:f,createBatches:c.batches,updateBatches:oh(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:g,create:c.guards,update:f.guards}})}function eh(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function th(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 nh(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function rh(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 Fl({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 ih(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 oh(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 mf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function xl(e){throw new Error(`ArgumentError: ${e}`)}function Fl(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))Fl(n,t);return Object.freeze(e)}function ti(e){return er("UPDATE",[Tf(e)])}function Gl(e){return er("INSERT",[Sf(e)])}function Kl(e){return er("UPSERT",[Sf(e.create),Tf(e.update)])}function Ve(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 ca(e,t,n){return e.type==="UPDATE"?er("UPDATE",[ua("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?er("INSERT",[ua("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):er("UPSERT",[ua("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ua("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function er(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Sf(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 Tf(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:hf(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:hf(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 hf(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:ei(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ei(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ei(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ei(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ei(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ei(e,t){return e==null||t===null?null:e+t}function ua(e,t,n,r,i,o){let a=t.map(c=>{let u=c.operations.map(f=>ah(f,n)),d=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.count,0):null;return{targetKind:c.targetKind,field:c.field,operations:u,changedCount:d}}),s=a.filter(c=>c.targetKind==="SUBTABLE"),l=s.every(c=>c.changedCount!==null)?s.reduce((c,u)=>c+u.changedCount,0):null,p=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:p},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function ah(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 ft=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 If(e,t,n){Kn("phase10c");let r=lf(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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 wf(e,t,n){Kn("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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 bf(e,t,n){Kn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let c=await t.postRecords({app:p.app,records:[...p.records]});r.push(c.ids)}catch(c){throw new ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},c)}i+=1,a+=p.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let p=e.updateBatches[l];try{await t.putRecords({app:p.app,records:[...p.records]})}catch(c){throw new ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},c)}o+=1,s+=p.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var sh=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function lh(e){if(!sh.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 uh(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=lh(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 Bl(e,t){let n=uh(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 ch(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 $l(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 ch(i)?!0:Object.values(i).some(n)};return n(e)}function Nf(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}var pa=50;function Vl(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=pa){let o=e.values.slice(i,i+pa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Wl=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),ph=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function dh(e,t){return e==="DATE"?_r(t):e==="TIME"?wo(t):Wl.has(e)?bo(t):!1}function fh(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Wl.has(e)?Wl.has(t.fieldType):!1}function Hl(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Io(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!ph.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!fh(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!dh(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];Ze(s,i,n)<0&&(i=s),Ze(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Yl=nl;function ni(e,t,n=Yl){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Pf(e,t){let n=Z(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 Et(e){if(e===null)return!1;switch(e.type){case"BINARY":return da(e.left);case"NULL_CHECK":return da(e.field);case"LOGICAL":return Et(e.left)||Et(e.right);case"NOT":case"GROUP":return Et(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function da(e){if(Array.isArray(e))return e.some(da);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(da)}async function et(e,t,n,r,i){let o=await ve(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 fa(e,t,n,r){let{records:i,metrics:o}=await et(e,t,n,["$id"],r);return{ids:tp(i),metrics:o}}function nr(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)?Of(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"}):Of(n[0],e.field)}function ql(e,t){if(e.left.type!=="FIELD")return ri();let n=nr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return ri();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ge(e,a=>{let s=nr(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:ee({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return ri();let o=Po(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?ri():Object.freeze({relation:o,owner:n})}function Lf(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=nr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ge(e,o=>{let a=nr(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:ee({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function _f(e,t){let n=new Set;Rn(e,n);let i=(e===null?[]:Uf(tr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Eh(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)Rn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(yh(e,t)),fetchQueriesByAlias:new Map,...o})}function Df(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!gn(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,rr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(p=>p.alias===a.targetAlias&&p.appId===a.appId&&p.sourceKind==="APP"))return e;let l=rr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!gn(Aa(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 ir(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!gn(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&&!gn(Aa(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))||vf(gh(e))!==e.allKlikes.length))}function Eh(e,t){if(e===null)return Cf(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return Cf(e);let r=Rh(e,t,n);if(r!==null)return r;let i=ga(e),o=[],a=new Set;for(let u of i){let d=Lf(u,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,relation:"exact"},R;try{R=rr(f,t)}catch{continue}let E=Aa(R);gn(E,d.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:d.functionOccurrences,relation:d.relation,consumption:"leaf",serializedPredicate:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ya(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),p=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),c=gn(n,p)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:c,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:p,residualWhere:s,residualServerFunctionOccurrences:l}}function Rh(e,t,n){let r=Ea(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=rr(i,t)}catch{return null}if(!gn(Aa(o),n))return null;let a=new Set;if(Rn(e,a),vf(o)!==a.size)return null;let s=Object.freeze(Ra(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 Ea(e,t){switch(e.type){case"BINARY":{if(Ae(e).length>0){let i=Lf(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=ql(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Ea(e.left,t),r=Ea(e.right,t);return n!==null&&r!==null&&ha(n,r)?n:null}case"GROUP":case"NOT":return Ea(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ra(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...Ra(e.left),...Ra(e.right)];case"GROUP":case"NOT":return Ra(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Cf(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function ga(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...ga(e.left),...ga(e.right)]:[];case"GROUP":return ga(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ya(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ya(e.left,t),r=ya(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=ya(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Aa(e){let t=[];for(let n of mr){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 gn(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 vf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function gh(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function yh(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=nr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ma(i.right)){n.add("CROSS_TABLE_BINARY");return}ql(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Mf(i)){n.add("KLIKE_OR");return}let o=tr(i.left,t),a=tr(i.right,t);if(o.length!==1||a.length!==1||!ha(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 rr(e,t){return ii(e.predicate,e,t),H(e.predicate)}function ii(e,t,n){switch(e.type){case"LOGICAL":ii(e.left,t,n),ii(e.right,t,n);return;case"GROUP":ii(e.expr,t,n);return;case"NOT":ii(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ma(e.right))throw zl(t,"predicate contains a non-target or RHS field reference");let r=nr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw zl(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw zl(t,"predicate shape is outside the Phase A serializer contract")}}function zl(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function tr(e,t){switch(e.type){case"BINARY":{let n=ql(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=tr(e.left,t),r=tr(e.right,t);if(e.op==="AND")return Uf([...n,...r]);if(Mf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return ha(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:kf(i.relation,o.relation)}]:[]}case"GROUP":return tr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Uf(e){let t=[];for(let n of e){let r=t.findIndex(o=>ha(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:kf(i.relation,n.relation)}}return t}function Of(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function ri(){return Object.freeze({relation:"unsafe"})}function ha(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function kf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Rn(e,t){if(e!==null){if(Kt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Rn(e.left,t),Rn(e.right,t);return;case"NOT":case"GROUP":Rn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Mf(e){let t=new Set;return Rn(e,t),t.size>0}function ma(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ma);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ma)}function Jl(e,t){let n=vr(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 mh(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Ah(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function oi(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=mh(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"&&!Ah(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 hh=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 Sh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ai(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,p=e.orderSemantics.get(l);if(!p){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(Sh(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!p.source||p.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}hh.has(p.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.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 Sa=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"}},Ta=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}},Ia=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 xf(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 Ia(a).message}}return{records:n,cleanupWarning:o}}function Xl(e){let t=[];e.where&&t.push(H(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 Th={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 Ff(e,t){let n=Th[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 Gf(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=>Ff(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Ff(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var or=new WeakMap,Zl=new WeakMap,Ih="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function nu(e){if(Zl.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):he(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&he(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=he(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Zl.set(t,e),t}function tt(e){return Zl.get(e)??e}function qf(e){let t=or.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},or.set(e,t)),t}function Rt(e,t,n,r=[]){let i=qf(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function He(e,t){return or.get(e)?.byColumn.get(t)}function he(e,t){return or.get(e)?.byLookupKey.get(t)}function Ot(e,t){return or.has(e)?void 0:e[t]}function Kf(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(le(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>he(a,o)===void 0&&a[o]===void 0))&&n.add(Ih)}function wh(e){let t=or.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=vs(e);return r&&Ds(n,r.includedCanonicalIds),n}function Lt(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 bh(e,t,n,r={}){if(n.type==="CROSS"){let u=ni(e.length,t.length);if(!u.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${u.outputRows} \u884C\uFF08\u5DE6 ${u.leftRows} \u884C \xD7 \u53F3 ${u.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${u.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let d=[];for(let f of e)for(let R of t)d.push({...f,...R});return d}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(Bf(e,a,r.leftColumns),Bf(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let R of e){let E=R[a]??"",g=u.get(E);g?g.push(R):u.set(E,[R])}let d={};for(let R of r.leftColumns??Object.keys(e[0]??{}))d[R]="";let f=[];for(let R of t){let E=R[s]??"",g=u.get(E)??[];if(g.length>0)for(let y of g)f.push({...y,...R});else f.push({...d,...R})}return f}let l=new Map;for(let u of t){let d=u[s]??"",f=l.get(d);f?f.push(u):l.set(d,[u])}let p=[],c={};for(let u of r.rightColumns??Object.keys(t[0]??{}))c[u]="";for(let u of e){let d=u[a]??"",f=l.get(d)??[];if(f.length>0)for(let R of f)p.push({...u,...R});else o==="LEFT"&&p.push({...u,...c})}return p}function Bf(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 Nh(e,t,n,r,i){return t===null?e:e.filter(o=>ae(t,o,n,r,i))}function Jf(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&di(t.expr)||t.type==="SCALAR_VALUE_COL"&&Xt(t.expr))}function Ph(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 p=t.map((u,d)=>Oh(u,l,i?.items[d],n,o)).join("\0"),c=a.get(p);c?c.push(l):a.set(p,[l])}a.size===0&&t.length===0&&Jf(n)&&a.set("",[]);let s=[];for(let l of a.values()){let p=nu({...l[0]});for(let c of t)c.type==="ARITH_KEY"?p[au(c.expr)]=String(pe(c.expr,l[0])):c.type==="FUNC_KEY"&&(p[Qt(c.expr)]=de(c.expr,l[0]));Xf(p,l,n,r),s.push(p)}return s}function Ch(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 p={children:new Map},c=[];for(let d of e){let f=p;for(let R of l.items){let E=$f(R,d),g=f.children.get(E);g||(g={children:new Map},f.children.set(E,g)),f=g}f.rows||(s(),f.rows=[],c.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),p.rows=[],c.push(p.rows));let u=new Set(l.items.map(d=>d.canonicalId));for(let d of c){let f=nu({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,$f(E,d[0]));for(let E of t.allItems){let g=R.get(E.canonicalId)??"";f[E.directKey]=g,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=g)}Xf(f,d,n,r),Ds(f,u),o.push(f)}}return o}function $f(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Xf(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=le(o.func,o.distinct,o.arg),s=String(ui(o.func,o.distinct,o.arg,o.separator,t,r));Rt(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){wa(e,t,o.expr,r);let a=o.alias??ci(o.expr);Rt(e,i,String(si(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&di(o.expr)){wa(e,t,o.expr,r);let a=o.alias??Qt(o.expr),s=su(o.expr,t,r);Rt(e,i,de(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&Xt(o.expr)){wa(e,t,o.expr,r);let a=o.alias??gt(o.expr),s=li(o.expr,t,r);Rt(e,i,String(we(s,e)),[a])}else if(o.type==="CASE_COL"&&Ke(o.expr)){wa(e,t,o.expr,r);let a=rE(o.expr,t,r),l=xe(a,e,void 0,p=>p.aggregateRef?Zf(p.aggregateRef,r):void 0);Rt(e,i,l,[eu(o.alias,i)])}}function eu(e,t){return e??`__ksql_case_column_${t}`}function tu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>tu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>tu(r,t))}function wa(e,t,n,r){let i=[];tu(n,i);for(let o of i){let a=le(o.func,o.distinct,o.arg);if(he(e,a)!==void 0)continue;let s=String(ui(o.func,o.distinct,o.arg,o.separator,t,r));qf(e).byLookupKey.set(a,s)}}function Oh(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=ba(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"?de(e.expr,t):String(pe(e.expr,t))}function ui(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=Qf(e,n,i).filter(f=>f!==null),s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let R=Number(f);if(!Number.isFinite(R))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 R}):null,p=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(r??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?pi(n,o):void 0,u=typeof c=="string"?K(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?K("string"):K("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let R="",E=0;for(let[g,y]of f){if(y>E){R=g,E=y;continue}if(y!==E)continue;let A=Ze(g,R,u);(A<0||A===0&&qt(g,R)<0)&&(R=g)}return R}if(e==="MIN"||e==="MAX"){let f=p;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let g=Ze(E,R,u);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(R=E)}return R}let d=s?p:p.map(Number);switch(e){case"SUM":return d.reduce((f,R)=>f+R,0);case"AVG":return d.length===0?0:d.reduce((f,R)=>f+R,0)/d.length;case"MEDIAN":{if(d.length===0)return"";let f=[...d].sort((E,g)=>E-g),R=Math.floor(f.length/2);return f.length%2===1?f[R]:(f[R-1]+f[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(d.length===0||f&&d.length<2)return"";let R=d[0],E=0,g=0,y=0;for(let S of d){let m=S-R;E++;let N=m-g;g+=N/E,y+=N*(m-g)}let A=Math.max(0,y/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(A):A}}}function Qf(e,t,n){return n.map(r=>{let i=tt(r),o;if(t.type==="FIELD_REF"){let a=i[t.field];if(a===void 0||a===""&&e!=="MIN"&&e!=="MAX")return null;o=a}else if(t.type==="ARITH"||t.type==="NUMBER"){let a=pe(t,i);if(isNaN(a))return null;o=String(a)}else{let a=Nt(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function Lh(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 si(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ui(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ue(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=si(e.left,t,n),i=si(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 ci(e){return ut(e)}function pi(e,t){if(e.type==="FIELD_REF")return t?.(Lh(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=>pi(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 Zf(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return K("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return K("string");let n=e.arg.type==="WILDCARD"?"string":pi(e.arg,t)??"string";return typeof n=="string"?K(n):n}function _h(e,t,n,r){return t===null?e:e.filter(i=>ae(t,wh(i),n,void 0,r))}function Dh(e,t,n,r,i){if(e.length===0)return e;let o=vh(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 vh(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(Bh(t,a,o))}function ru(e,t,n,r,i,o){return t.length===0?e:eE(e,t,n,r,i,o).rows.map(a=>a.row)}function eE(e,t,n,r,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:K("number")};if(p.type==="FUNC_KEY")return{semantics:K(tE.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:K("number")};let c=i?.get(p.name);if(c)return{semantics:c};let u=n?.get(p.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:K(r?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:c},u)=>({s:Mh(c,p,o)}))})),l=(p,c)=>Uh(p,c,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=kh(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function kh(e,t,n){return Ze(e.s,t.s,n.semantics)}var tE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Mh(e,t,n){let r=tt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??he(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(pe(e.expr,r));case"FUNC_KEY":return de(e.expr,r);case"GROUPING_KEY":return $n(e.ref,t)}}function iu(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=>Ue(tt(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>He(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>He(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>He(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(pe(a.expr,tt(l))));break;case"STRFUNC_COL":{let l=Qt(a.expr);i.set(s,p=>di(a.expr)?He(p,o)??he(p,l)??de(a.expr,tt(p),n,r):de(a.expr,tt(p),n,r));break}case"CASE_COL":i.set(s,l=>Ke(a.expr)?He(l,o)??"":xe(a.expr,tt(l),n,r));break;case"SCALAR_VALUE_COL":{let l=gt(a.expr);i.set(s,p=>Xt(a.expr)?He(p,o)??he(p,l)??"":String(we(a.expr,tt(p),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>$n(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function ou(e,t,n,r,i,o){let a=t.map((s,l)=>({column:s,columnIndex:l})).filter(s=>s.column.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s=0;s<e.length;s++)e[s]=nu(e[s]);for(let{column:s,columnIndex:l}of a){let p=new Map;for(let c of e){let u=JSON.stringify(s.partitionBy.map(f=>Kh(c,f))),d=p.get(u);d?d.push(c):p.set(u,[c])}for(let c of p.values()){let u=eE(c,s.orderBy,n,r,i),d=u.rows;if(to(s)){Gh(s,l,u,o);continue}if(ws(s)){Fh(s,l,d);continue}if(!Is(s))throw new Error(`InternalError: unknown window kind ${s.windowKind??"undefined"}`);let f=1,R=1;for(let E=0;E<d.length;E++){E>0&&u.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let g=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;Rt(d[E].row,l,String(g),[s.alias])}}}return e}function xh(e,t){let n=Nt(e,tt(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function Fh(e,t,n){let r=n.map(o=>xh(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;Rt(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function Gh(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:Qf(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:pi(e.arg,r),s=typeof a=="string"?K(a):a??K("string"),l=[],p=0,c=0,u;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")p++;else if(f!==null)if(e.aggFunc==="COUNT")p++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")c+=Number(f),p++;else if(u===void 0)u=f;else{let E=Ze(f,u,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(u=f)}let R=e.aggFunc==="COUNT"?p:e.aggFunc==="SUM"?c:e.aggFunc==="AVG"?p===0?0:c/p:u??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)Rt(f.row,t,d,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let d=0;d<i.length;){let f=d;for(;f+1<i.length&&n.compare(i[f],i[f+1])===0;)f++;for(let R=d;R<=f;R++)Rt(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)Rt(i[d].row,t,l[d],[e.alias])}function Kh(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ue(tt(e),n)}function Na(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function ba(e,t,n,r={}){let i=tt(t);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(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return Ue(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=le(e.func,e.distinct,e.arg);return He(t,n)??he(t,e.alias??o)??he(t,o)??Ot(t,e.alias??o)??Ot(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??ci(e.expr);return He(t,n)??he(t,o)??Ot(t,o)??"0"}case"ARITH_COL":return String(pe(e.expr,i));case"CASE_COL":return Ke(e.expr)?He(t,n)??he(t,eu(e.alias,n))??Ot(t,eu(e.alias,n))??"":xe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return $n(e.ref,t);case"STRFUNC_COL":{let o=Qt(e.expr);return di(e.expr)?He(t,n)??he(t,e.alias??o)??he(t,o)??Ot(t,e.alias??o)??Ot(t,o)??de(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):de(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=gt(e.expr);return Xt(e.expr)?He(t,n)??he(t,e.alias??o)??he(t,o)??Ot(t,e.alias??o)??Ot(t,o)??"":String(we(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return He(t,n)??he(t,e.alias)??Ot(t,e.alias)??""}}function Bh(e,t,n={}){return e.map((r,i)=>{let o=ba(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function yn(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let g=jf(Vf(E),a),y=ba(t[0],E,0,{wildcardKeys:Object.keys(g)}),A={};if(typeof y!="string")for(let[S,m]of y.entries)m!==null&&(A[S]=m);return A}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=Hh(t),l=Vh(t),p=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),c=p?null:$h(t,s,l),u=c??[];return p&&e.length===0?{rows:[],columns:Wh(t,s,l)}:{rows:e.map((f,R)=>{let E={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(jf(Vf(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,A]of t.entries()){let S=ba(A,f,y,g);switch(A.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof S!="string")for(let[m,N]of S.entries)N!==null&&(E[m]=N);break;case"PARENT_WILDCARD":{if(typeof S!="string")for(let[m,N]of S.entries)N!==null&&(E[m]=N),R===0&&u.push(m);break}case"FIELD":{let m=c?.[y]??A.alias??s.get(y)??A.field;E[m]=S,c===null&&R===0&&u.push(m);break}case"LITERAL_COL":{let m=c?.[y]??A.alias??`'${A.value}'`;E[m]=S,c===null&&R===0&&u.push(m);break}case"AGGREGATE":{let m=le(A.func,A.distinct,A.arg),N=c?.[y]??A.alias??m;E[N]=S,c===null&&R===0&&u.push(N);break}case"ARITH_AGG_COL":{let m=c?.[y]??A.alias??ci(A.expr);E[m]=S,c===null&&R===0&&u.push(m);break}case"ARITH_COL":{let m=c?.[y]??A.alias??au(A.expr);E[m]=S,c===null&&R===0&&u.push(m);break}case"CASE_COL":{let m=c?.[y]??A.alias??l.get(y)??"case";E[m]=S,c===null&&R===0&&u.push(m);break}case"GROUPING_COL":{let m=c?.[y]??A.alias??`GROUPING(${A.ref.field.tableAlias?`${A.ref.field.tableAlias}.`:""}${A.ref.field.field})`;E[m]=S,c===null&&R===0&&u.push(m);break}case"STRFUNC_COL":{let m=c?.[y]??A.alias??Qt(A.expr);E[m]=S,c===null&&R===0&&u.push(m);break}case"SCALAR_VALUE_COL":{let m=c?.[y]??A.alias??gt(A.expr);E[m]=S,c===null&&R===0&&u.push(m);break}case"SCALAR_SUBQUERY_COL":{let m=c?.[y]??A.alias??"(subquery)";E[m]=S,c===null&&R===0&&u.push(m);break}case"WINDOW_COL":{let m=c?.[y]??A.alias;E[m]=S,c===null&&R===0&&u.push(m);break}}}return E}),columns:u}}function $h(e,t,n){return e.map((r,i)=>nE(r,i,t,n))}function Wh(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=nE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function nE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??le(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??ci(e.expr);case"ARITH_COL":return e.alias??au(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Qt(e.expr);case"SCALAR_VALUE_COL":return e.alias??gt(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 Vh(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function Hh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Wf(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=Wf(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 Wf(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Vf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function au(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"?Y(n):n.type==="STRING_FUNC"?Qt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Qt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?ci(n):n.type==="VARIABLE"?`@${n.name}`:gt(n));return`${e.func}(${t.join(",")})`}function gt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return Y(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Qt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${gt(e.left)}${e.op}${gt(e.right)}`;case"CONCAT_OP":return`${gt(e.left)}||${gt(e.right)}`}}function Yh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:Xt(e)}function Xt(e){return e.type==="STRING_FUNC"?di(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Xt(e.left)||Xt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Hf(t.result))||e.elseResult!==null&&Hf(e.elseResult):!1}function Hf(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Xt(e)}function di(e){return e.args.some(t=>Yh(t))}function jh(e,t,n){if(e.type==="AGG_REF"){let r=ui(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=si(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Ue(t[0]??{},r)),raw:Ue(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?su(e,t,n):li(e,t,n)}function li(e,t,n){return e.type==="STRING_FUNC"?su(e,t,n):e.type==="CASE_WHEN"?rE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:li(e.left,t,n),right:li(e.right,t,n)}:e}function Yf(e,t,n){if(e.type==="AGG_REF"){let r=ui(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=si(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:li(e,t,n)}function rE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:Yf(r.result,t,n)})),elseResult:e.elseResult===null?null:Yf(e.elseResult,t,n)}}function su(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>jh(r,t,n))}}function jf(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 zf(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Ql(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function zh(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,K("number"));else if(r.type==="WINDOW_COL"){if(Is(r)||to(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,K("number"));else if((to(r)||ws(r))&&r.arg.type!=="WILDCARD"){let i=pi(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?K(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,K("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,K("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,K("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,K(tE.has(r.expr.func)?"number":"string"));return n}function lu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:c,aggregateSortKindResolver:u,appliedKlikes:d,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:g,plainGroupByPlan:y,warnings:A}=e,S=zh(t.columns,u);for(let[P,U]of a??[])S.set(P,U);let m=[],N=t.from.alias;m=(n.get(N)??n.get(null)??[]).map(P=>Lt(P,N));let v=Ql(zf(R?.get(N),N),void 0,m);for(let P of t.joins){let U=P.table.alias,_=(n.get(U)??[]).map(I=>Lt(I,U)),h=Ql(zf(R?.get(U),U),void 0,_);m=bh(m,_,P,{leftColumns:v,rightColumns:h}),v=Ql(v,h,m)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;m=Nh(m,C,s,d,l);let k=Z(t);if(k.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");m=Ch(m,g,t.columns,u,{maxGeneratedRows:5e4})}else(k.type==="PLAIN"||Jf(t.columns))&&(m=Ph(m,k.type==="PLAIN"?k.allItems:[],t.columns,u,k.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));Kf(t.columns,m,A);let D=P=>P.aggregateRef?Zf(P.aggregateRef,u):c?.(P);return Kf(t.having,m,A),m=_h(m,t.having,p,D),m=ou(m,t.columns,i,o,S,u),t.distinct&&(m=Dh(m,t.columns,r,s,l)),m=ru(m,t.orderBy,i,o,S,iu(t.columns,r,s,l)),m=Na(m,t.limit,t.offset),yn(m,t.columns,r,s,f,l,E)}function iE(e,t){let n=[];for(let r of e){let i=uu(r.$id?.value),o=qh(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[p,c]of Object.entries(r)){if(p===t)continue;let u=uu(c?.value);l[`_p.${p}`]={value:u}}for(let[p,c]of Object.entries(s.value??{}))l[p]={value:uu(c?.value)};n.push(l)}}return n}function qh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function uu(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 oE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function aE(e,t){let n=fi(e);for(let[r,i]of Object.entries(t))n[r]=fi(i);return n}function sE(e){let t=[...e.preErrors.map(i=>cu(i)),...e.postImageErrors.map(i=>cu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>cu(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]=fi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function cu(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 fi(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(fi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=fi(a,t);return i}function uE(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"&&Xe(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 du(e){return uE(e,!0)}function Pa(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 nt(e,t,n,r,i=!0,o=!0,a=r){let s=du(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:Ae(e.where)}),Pa(e,e).forEach((l,p)=>nt(l,`${t}.select-source[${p}]`,n,a,a?!1:i,a?!1:o,a))}function Ei(e,t,n,r,i=!0){e.left.type==="UNION"?Ei(e.left,`${t}.left`,n,r,i):nt(e.left,`${t}.left`,n,r,!0,i),nt(e.right,`${t}.right`,n,r,!0,i)}function lE(e,t,n,r){if(!r&&$t(e)){nt(Wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?nt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ei(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?nt(e.query,`${t}.main`,n,r,!1,!r,!0):Ei(e.query,`${t}.main`,n,!0,!1)}function cE(e,t,n,r=!1){switch(e.type){case"SELECT":nt(e,t,n,r);return;case"UNION":Ei(e,t,n,r);return;case"WITH":lE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?lE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ei(e.query,`${t}.query`,n,!0,!1):nt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":cE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=du(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)}),Pa(e,e).forEach((o,a)=>nt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=du(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:Ae(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=uE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Pa(e,e).forEach((o,a)=>nt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Pa(e,e).forEach((i,o)=>nt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ca(e,t){let n=new Map;for(let r of t){if(!Xe(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 fu(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 Jh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&ir(t)}function Xh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Qh(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return Mn(e)?(n.some(r=>r!==St)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(St)||n.push(St)):n.includes(rn)||n.push(rn),[...new Set(n)]}function pu(e,t){let n=e.functionNames[0],r=Mn(n)?St:rn,i=Qh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function pE(e,t){let n=[];cE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let c=Xh(i);return r.push(c),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i)}}if(i.kind==="SELECT"){let c=i.source,u=c.from.cteName===null&&!c.from.subtableCode&&c.joins.length===0,d=$e(c),f=await t.select(c),R="";try{R=i.where===null?"":H(i.where)}catch{R=""}let E=u&&d==="SIMPLE"&&(c.orderBy.length===0||c.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ca(R,i.relativeFunctionOccurrences),g,y;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let N=await t.prefilterDecomposition(c);N?.eligible===!0&&fu(c,N)&&(g=N.plan,y=!0,E=!0)}let A;!E&&f.capability==="EXACT_PUSHDOWN"&&(A=Do({select:c,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,A&&(g=A.prefilterPlan,E=!0));let S;if(!E&&t.joinServerFunctionPlan){let N=await t.joinServerFunctionPlan(c);N!==null&&Jh(c,N)&&(S=N,E=!0)}let m={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...g?{prefilterPlan:g,phase2PrefilterEligible:y}:{},...A?{fullScanExactPlan:A,allowForm:A.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(m),!E)return{hasRelativeDate:n.some(N=>N.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":H(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Ca(s,i.relativeFunctionOccurrences),p={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(p),!l)return{hasRelativeDate:n.some(c=>c.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Eu(e){if(!e.allowed&&e.rejection){let t=Mn(e.rejection.functionName)?St:rn,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 Ru(e,t,n={}){let r=ge(e.where,t),i=(S,m="INELIGIBLE")=>({eligible:!1,disposition:m,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=gi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Zh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!eS(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=nS(e.where,t),l=vr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=n.serialize??H,c=n.containsFunctions??Ca,u=[];for(let S of a.leaves){let m=Da(S);if(m===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let N;try{N=p(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!c(N,[m]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let d=tS(l.condition),f=new Set(u),R=La(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=p(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let g=u.map(S=>Da(S));if(!c(E,[...new Set(g)])||!rS(E,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):_a(e.where,f);if(y!==null&&gi(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let A=new Set;for(let S of g)A.add(S);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:A,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Zh(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}gi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":gi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Da(o)===null)return;if(ge(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":gi(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 Da(e){return e.right.type==="KINTONE_FUNC"&&Xe(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Xe(e.right.values[0].name)?e.right.values[0].name:null}function gi(e){let t=[],n=r=>{if(r.type==="BINARY"&&Da(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 eS(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 tS(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 La(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=La(e.left,t,n),i=La(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=La(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Ri={type:"BOOLEAN",value:!0};function _a(e,t){if(e.type==="BINARY"&&t.has(e))return Ri;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=_a(e.left,t)??Ri,r=_a(e.right,t)??Ri;return Oa(n)?Oa(r)?null:r:Oa(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=_a(e.expr,t)??Ri;return Oa(n)?Ri:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Oa(e){return e.type==="BOOLEAN"&&e.value}function nS(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 rS(e,t){let n=new Map;for(let r of t){if(!mr.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 $=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function dE(e,t){if(!t)throw new $("IMPORT source capability is not available.");let n=t(e);if(!n)throw new $(`source "${e}" is not supplied.`);return n}async function va(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new $("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new $("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function iS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new $(`invalid ${t.toUpperCase()} byte sequence.`)}}function oS(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 p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
5
5
  `)throw new $(`unexpected character after closing quote at offset ${a}.`);if(p==='"'){if(r.length!==0)throw new $(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(p===","){s(),a++;continue}if(p==="\r"||p===`
6
6
  `){p==="\r"&&e[a+1]===`
7
- `&&a++,l(),a++;continue}r+=p,a++}if(i)throw new $("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function iS(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new $(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new $(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ua(e,t){let n=rS(nS(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}`)),iS(r),i.length===0)throw new $("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new $(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var oS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),aS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),yi=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 dE(e,t,n){if(!oS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new yi;return aS.has(t??"")?r.map(i=>({code:i})):r}function _t(e,t,n,r){throw new $(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function fE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new $("JSON source is not valid UTF-8.")}}function EE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
+ `&&a++,l(),a++;continue}r+=p,a++}if(i)throw new $("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function aS(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new $(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new $(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ua(e,t){let n=oS(iS(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}`)),aS(r),i.length===0)throw new $("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new $(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var sS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),lS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),yi=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 fE(e,t,n){if(!sS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new yi;return lS.has(t??"")?r.map(i=>({code:i})):r}function _t(e,t,n,r){throw new $(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function EE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new $("JSON source is not valid UTF-8.")}}function RE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
8
8
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
9
9
  `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let d="",f=!1;for(;n<e.length;){let R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&_t("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){d+=R;continue}n>=e.length&&_t("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
- `,r:"\r",t:" "};if(E in g){d+=g[E];continue}E!=="u"&&_t(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||_t("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&_t("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let N=0;N<4;N++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&_t("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(m-55296<<10)+A-56320)}else m>=56320&&m<=57343?_t("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(m)}f||_t("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let p=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(p)?.[0];if(u){for(let d=0;d<u.length;d++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}_t(`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 ka(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Ma(e){if(e.byteLength===0)throw new $("JSON source is empty.");let t=EE(fE(e)),n=0,r=(p,c=t[n])=>{throw new $(`JSON ${p} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(p,c)=>p.kind==="punct"&&p.value===c,o=p=>{let c=t[n];(c.kind!=="punct"||c.value!==p)&&r(`expected ${p}; found ${ka(c)}`,c),n++},a=()=>{let p=t[n++];if(p.kind==="string")return p.value;if(p.kind==="number")return{kind:"number",lexeme:p.lexeme};if(p.kind==="literal")return p.value;if(p.kind==="punct"&&p.value==="{"){let c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${ka(u)}`,u);let d=u.value;c.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,u),o(":"),c.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(p.kind==="punct"&&p.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${ka(p)}`,p)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ka(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 $("JSON source contains no records.");return l.forEach((p,c)=>{if(!(p instanceof Map))throw new $(`JSON record ${c+1} must be an object.`)}),l}var sS=new Set(["CHECK_BOX","MULTI_SELECT"]),RE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function yt(e,t,n){throw new $(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function lS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function uS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&yt(n,t.code,"boolean is not accepted."),lS(e)){t.fieldType==="NUMBER"&&yt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&yt(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)||yt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&yt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||yt(n,t.code,"unsupported value type."),!sS.has(t.fieldType)&&!RE.has(t.fieldType)&&yt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&yt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&yt(n,t.code,"array elements must not contain duplicates."),RE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function gu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new $("JSON source is UTF-8 only.");let i=Ma(t.bytes);if(i.length>r)throw new $(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new $("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let d of l.keys())o.has(d)||yt(p+1,d,"unknown key (not declared in INTO).");let c={},u=new Set;for(let d of n)l.has(d.code)&&(u.add(d.code),c[d.code]=uS(l.get(d.code),d,p+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function yu(e,t,n,r,i,o){let a=Ua(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new $(`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 $("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let p=new Map(i.map(y=>[y.code,y])),c=new Set(r);if(o&&c.has(o))throw new $("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],d=[],f=y=>a.rows.filter(m=>m[y]!=="").length,R=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,m]of a.columns.entries()){if(c.has(m)||m===o)continue;let S=p.get(m);if(S)u.push({column:m,reason:R(S),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)d.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new $(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=p.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let m=[],S={};for(let A of r){let N=y[l.get(A)];try{S[A]=dE(N,p.get(A)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof yi))throw b;S[A]=N,m.push({field:A,code:b.code,message:b.message})}}return E.push(m),S}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:p.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((p,c)=>[p,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var mi=(e,t,n)=>{throw new $(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function gE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new $("JSON source is UTF-8 only.");let o=Ma(t.bytes);if(o.length>r)throw new $(`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 $("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,p)=>{let c=p+1;for(let R of l.keys())a.has(R)||mi(c,R,"unknown key (not declared in INTO).");let u=new Map,d=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let g=l.get(E);if(R.kind==="FIELD"){g instanceof Map&&mi(c,E,"object is not accepted for a top-level field."),u.set(E,g);continue}Array.isArray(g)||mi(c,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),m=g.map((S,A)=>{S instanceof Map||mi(c,E,`childRow=${A+1} must be an object.`);let N=S;for(let b of N.keys())y.has(b)||mi(c,b,`unknown child key in subtable ${E} at childRow=${A+1}.`);if(s++,s>i)throw new $(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:N}});d.set(E,m)}return{rowNumber:c,top:u,subtables:d,replacementTables:f}})}}function yE(e,t,n,r,i,o){let a=Ua(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new $('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((d,f)=>[d,f]));if(o&&!s.has(o))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),p=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of p){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new $(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new $(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new $(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(c.length>=i)throw new $(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:R,top:new Map(l.map(g=>[g.field,d[s.get(g.field)]])),subtables:new Map(p.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let y=d[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new $(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${R}.`)}if(o){let g=d[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new $(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new $(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let g of p){let y=d[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(A=>[A,d[s.get(A)]]));if(y===""&&[...m.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:m})}}),c.length===0)throw new $("CSV has no parent rows.");return{records:c}}var cS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),pS=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function hu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function SE(e,t,n,r,i){let o=new Map(n.filter(d=>!d.inSubtable).map(d=>[d.code,d])),a=new Map;for(let d of n)if(d.inSubtable&&d.subtableCode){let f=a.get(d.subtableCode);f||a.set(d.subtableCode,f=new Map),f.set(d.code,d)}let s=t.filter(d=>d.kind==="FIELD"),l=t.filter(d=>d.kind==="SUBTABLE");for(let d of s)mE(d.field,o.get(d.field),void 0);for(let d of l){let f=o.get(d.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${d.subtableCode} does not exist.`);let R=a.get(d.subtableCode)??new Map;for(let E of d.children)mE(E,R.get(E),d.subtableCode)}let p=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(d=>dS(d,s,l,o,a,r,i,p)),u=c.flatMap(d=>[...d.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:p}}function dS(e,t,n,r,i,o,a,s){let l=[],p={};for(let d of t)e.top.has(d.field)&&Au(e.top.get(d.field),r.get(d.field),o,p,d.field,l,mu(e,a,d.field));let c={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||AE(d,o,c,l,mu(e,a,d.code));let u=new Map;for(let d of n){if(!e.subtables.has(d.subtableCode))continue;let f=s.get(d.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(d.subtableCode)){f.childRows++;let g=l.length,y={},m=i.get(d.subtableCode);for(let S of d.children){let A=m.get(S),N=mu(e,a,S,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(S)?Au(E.values.get(S),A,o,y,S,l,N):AE(A,o,y,l,N)}l.length===g?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:u,replacementTables:e.replacementTables,errors:l}}function mE(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&&pS.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function AE(e,t,n,r,i){let o=dn(e.defaultValue)?"":e.defaultValue;Au(o,e,t,n,e.code,r,i,!dn(e.defaultValue))}function Au(e,t,n,r,i,o,a,s=!1){let l=fS(e),p=Fe(l,t,n);p.ok?r[i]={value:ES(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function fS(e){return hE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:hE(t)?t.lexeme:t):e}function hE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function ES(e,t){return cS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function mu(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 Su=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Tu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":RS(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 RS(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 Iu(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 TE(e,t){return Iu(e,t,"DROP")}function IE(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 wE(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,p])=>{let c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:p.length,addRows:p.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function gS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function bE(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 NE(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],p=l===void 0?void 0:r.get(l),c=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,d=[];for(let f of o.replacementTables){let R=gS(p.record,f),E=new Set(R.map(b=>b.id).filter(b=>!!b)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,S=0,A=0,N=g.map((b,v)=>{let P=y[v]??{};return b.rowId&&E.has(b.rowId)?(m++,{rowId:b.rowId,record:P}):(b.rowId&&((i.get(b.rowId)??[]).some(_=>_.parentId!==l||_.table!==f)&&c.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}),A++),S++,{record:P})});u.set(f,N),d.push({table:f,existingRows:R.length,inputRows:g.length,updateRows:m,addRows:S,deleteRows:R.length-m,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:c.length===0,top:o.top,subtables:u,tables:d,errors:c}})}var wu="#__import_source";function PE(e){return{...e,from:{appId:0,alias:null,cteName:wu}}}function yS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function bu(e,t){let n=e.map(yS),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 mS="\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",wn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Re=new WeakMap;function HE(e){return Re.get(e)}var Ln=new WeakMap,ns=new WeakMap,CE=new WeakMap,AS=1,hS=1;function YE(e,t){if(t)return t;let n=CE.get(e);return n||(n=`client:${AS++}`,CE.set(e,n)),n}function nc(e){return`${e}\0inv:${hS++}`}async function rc(e,t,n={}){let r=Date.now(),i=nc(YE(t,n.cacheContext));try{let o=uI(e,n.enableImport===!0),a=jE(),s=qE(t,a),l={aborted:!1},p=oc(s,l,!TS(o)||$l(o)),c=await _u(o,p,n,i);a.elapsedMs=Date.now()-r;let u={...JE(c,l),metrics:a};if(c.type==="SELECT"){let d=Re.get(c);d&&Re.set(u,d)}return u}finally{Ic(i)}}function jE(){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 zE=Symbol("limitMetricsSink");function ic(e,t){let n=e[zE];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function qE(e,t){return{[zE]: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 OE=Symbol("searchAbortFailClosed");function oc(e,t,n){return n&&e[OE]?e:{...e,...n?{[OE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new wn;return i}}}function SS(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 TS(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function JE(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(mS),{...e,warnings:[...n]}}async function LE(e,t,n){let r=await xi(e,t,n);return Eu(r),r}async function xi(e,t,n){return cE(e,{select:async r=>{let{resolver:i}=await Sn(r,t,n);return ge(r.where,i)},dml:r=>sR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Sn(r,t,n);return Ru(r,i)},joinServerFunctionPlan:async r=>{await Sn(r,t,n);let i=await is(r,t,n),o=rs(r,i);return o===null?null:(ir(o.joinPlan)&&Ec.set(r,o),o.joinPlan)}})}async function _u(e,t,n,r){let i=await xi(e,t,r);e.type!=="EXPLAIN"&&Eu(i);let o=vu(e);if(o!==null&&!BT(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Gn("phase15b",e),so("phase15b",e),Qe(e),e.type!=="EXPLAIN"&&await MS(e,t,r),e.type==="IMPORT")return OR(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 qu(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 bc(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 IS(e,t,n,r);case"SELECT":return Zt(Fu(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return hR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return hc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return kT(e,t,n,r);case"INSERT_SELECT":return Oc(e,t,n,r);case"UPSERT":return eI(e,t,n,r);case"UPSERT_SELECT":return Dc(e,t,n,r);case"UPDATE":return qu(e,t,n,r);case"DELETE":return ZT(e,t,n,r);case"REORDER":return aI(e,t,n,r);case"SHOW_APPS":return UR(t);case"DESCRIBE":return kR(e,t,r);case"EXPLAIN":return RI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?qe(n.dmlMaxRows,"dmlMaxRows",kt):kt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne):Ne,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 tR(e,t,n,r)}}var ac=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],sc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function lc(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 XE(e=!1){let t=e?sc:ac;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:K(n==="$id"||n==="$err_count"?"number":"string")}]))}async function IS(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return QE(e,t,n,r)}async function QE(e,t,n,r){let i=await te(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=kl(e,i),l=new Set(s.flatMap(O=>vl(O.field))),p={present:Dl.filter(O=>l.has(O)),absent:Dl.filter(O=>!l.has(O))},c=e.checkGroups??[],u=Xn(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw we(`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 d=new Map([...o].map(([O,F])=>[O,F.fieldType]));d.set("$id","RECORD_NUMBER"),On(e,d);let f=lc(e.where),R=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,g=O=>O.field==="$id"?ee({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ee(o.get(O.field)):void 0),y=ge(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(y)}).`);let m=new Map([...o].map(([O,F])=>[O,F.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),A=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:zs(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:S,allowKlike:!1}),N=A===null?"":H(A),v=(await ve(t.getRecords,e.appId,N,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Lt(O,null)})).filter(O=>e.where===null||ae(e.where,O.flat,F=>d.get(F.field))),P=[],k=new Map,_=new Map,C=new Set,U=0,w=O=>{if(C.add(O.id),U+=1,e.summary){let j=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),x=_.get(j);x?x.$err_count=String(Number(x.$err_count)+1):_.set(j,{$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]),W=k.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),O.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${O.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${O.subrowId??""}`)):k.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"})},D=s.filter(O=>!O.subtableCode),h=new Map;for(let O of s){if(!O.subtableCode)continue;let F=h.get(O.subtableCode)??[];F.push(O),h.set(O.subtableCode,F)}for(let O of v){for(let F of D){let W=O.record[F.field.code]?.value,j=Fe(W,F.field,E);j.ok||w({id:O.id,field:F.field.code,code:j.code,message:j.message,value:Xr(W,F.field.fieldType)})}for(let[F,W]of h){let j=O.record[F]?.value;if(Array.isArray(j))for(let x=0;x<j.length;x++){let G=j[x];for(let J of W){let B=G.value?.[J.field.code]?.value,L=Fe(B,J.field,E);if(!L.ok){let V=aa(F,x,G);w({id:O.id,field:J.field.code,code:L.code,message:L.message,value:Xr(B,J.field.fieldType),...V})}}}}for(let F of jo(c,O.flat,W=>d.get(W.field)))w({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(..._.values());else for(let O of k.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`),P.push(O)}let M={type:"SELECT",columns:[...e.summary?sc:ac],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:U,constraintMetadata:p}};return Re.set(M,XE(e.summary===!0)),M}var ze=1e4;function mt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,p)=>l!==n[p])||!wS(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 wS(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!So(i.semantics,r.semantics))return!1}return!0}var ar=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function ZE(e,t,n={}){let r=uc(e,n.enableImport===!0),i=ol(r);if(r.forEach(f=>so("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Os(f)||f.type==="UPSERT"&&bS(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Bl(r,n.variables),a=eR(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let R=r[f.index];if(!(R?.type==="UPDATE"&&R.from?.cteName!=null))throw new re(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=jE(),p=qE(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,d=nc(YE(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let S=i.statements[m],A={index:m,type:S.statementType};if(y){E.push({...A,status:"skipped",skippedReason:y}),g.add(m);continue}let N=S.dependsOn.find(b=>g.has(b));if(N!==void 0){let b=i.statements[N].tempTablesCreated[0]??`statement ${N}`;E.push({...A,status:"skipped",skippedReason:`dependency: ${b}`}),g.add(m);continue}if(u!==null&&Date.now()>=u){E.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(m),y="timeout";continue}try{let b=u!==null?u-Date.now():null,v=s.confirm,P=v?{...s,confirm:(w,D,h)=>v(w,D,{statementIndex:m,statementCount:r.length,statementType:S.statementType,targetAppId:S.targetAppId,...h?.importDetail?{importDetail:h.importDetail}:{},...h?.applyDetail?{applyDetail:h.applyDetail}:{},...h?.applyDiagnostic?{applyDiagnostic:h.applyDiagnostic}:{}})}:s,k={aborted:!1},_=oc(p,k,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||$l(r[m])),C=SS(_),U=await CS(NS(r[m],S,C.client,P,d,f,R,a),b,C.closeActive);U.result&&(U.result=JE(U.result,k)),E.push({...A,status:"success",...U})}catch(b){E.push({...A,status:"error",error:OS(b),...b instanceof Di?{result:b.diagnostic}:{}}),g.add(m),b instanceof ar?y="timeout":b instanceof lr?y="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{Ic(d)}}function bS(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 NS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let p=za(e,a);if(Qe(p),await LE(p,n,i),p.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:p.expr.elements.map(c=>({type:"string",value:c.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let c=await nR(p.expr.query,n,r,i,o),u=p.expr.query.columns[0],d=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let R=(await Qa(p.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(c):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof hn?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,_E(p.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let p=r.variables??{};if(Object.prototype.hasOwnProperty.call(p,e.name))a.set(e.name,{type:"string",value:p[e.name]});else{let c=_E(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=za(e,a);if(Gn("phase15b",l),so("phase15b",l),Qe(l),await LE(l,n,i),l.type==="VALIDATE"){let p=await QE(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&mt(o,l.errorTable,p.columns,p.rows,r.tempTableMaxRows??ze,Re.get(p)??XE(l.summary===!0)),{result:p}}if(l.type==="IMPORT")return{result:await OR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let p=await bc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&mt(o,l.validationErrorTable,p.columns,p.errors,r.tempTableMaxRows??ze,Ln.get(p)??new Map),{result:p}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await ju(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let p={...r,maxRecords:r.tempTableMaxRows??ze,onLimitReached:"error"},c=await PS(l.query,n,p,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:Re.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let p=l;tc.set(p,o);try{return{result:await _u(p,n,r,i)}}finally{tc.delete(p)}}if(l.type==="ASSERT")return await tR(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await vt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await hc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Oc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Dc(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await qu(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await _u(l,n,r,i)}}async function PS(e,t,n,r,i){return e.type==="WITH"?hc(e,t,n,r,i,!0):vt(e,t,n,i,r,!0)}async function CS(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new ar;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(p=>{l=setTimeout(p,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new ar)})()},t)})])}catch(a){throw a instanceof ar&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function OS(e){let t;if(e instanceof ft)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Nu(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:LS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Nu(r),message:r}}else{let n=String(e);t={code:Nu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Nu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function LS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function uc(e,t=!1){let n=new jt(e).tokenize();return new zt(n,{import:t}).parseStatements()}function _S(e,t){try{let n=uc(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function eR(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?_S(r.name,t[r.name]):r.default);return n}function _E(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:Y(e)};case"KINTONE_FUNC":return{type:"string",value:Fd(e.name)};case"STRING_FUNC":return{type:"string",value:pe(e,{})};case"ARITH":{let t=ce(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 za(e,t){return Du(e,t,!1)}function Du(e,t,n){if(Array.isArray(e))return e.map(r=>Du(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,Du(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=DS(i);if(o.type==="SELECT"&&Ye(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ye(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 Ye(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function DS(e){if(e.type==="NOT"&&Ye(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ye(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ye(t,!1)||Ye(n,!1))return{type:"BOOLEAN",value:!1};if(Ye(t,!0))return n;if(Ye(n,!0))return t}else if(e.op==="OR"){if(Ye(t,!0)||Ye(n,!0))return{type:"BOOLEAN",value:!0};if(Ye(t,!1))return n;if(Ye(n,!1))return t}}return e}function vu(e){if(Array.isArray(e)){for(let t of e){let n=vu(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=vu(n);if(r!==null)return r}}return null}var lr=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},hn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function tR(e,t,n,r,i){let o=await xa(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?K("number"):K("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await xa(e.low,t,n,r,i),p=await xa(e.high,t,n,r,i);if(!cn(">=",o,l,a)||!cn("<=",o,p,a))throw new lr(`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 xa(e.right,t,n,r,i);if(!cn(e.op,o,s,a))throw new lr(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function xa(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return Y(e);case"STRING":return e.value;case"ARITH":return String(Uu(e));case"SCALAR_SUBQUERY":try{return await nR(e.query,t,n,r,i)}catch(o){throw o instanceof hn?new lr(o.message):o}}}async function nR(e,t,n,r,i){let{query:o,probed:a}=vS(e),s=await Ni(o,t,n,r,i);if(s.columns.length!==1)throw new hn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new hn("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 hn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function vS(e){return Z(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 Uu(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=Uu(e.left),n=Uu(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 Fi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Et(e.where)?[...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))]:[],s=new Map(await Promise.all(a.map(async d=>{let f=await te(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,p=d=>{if(Array.isArray(d)){d.forEach(p);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,g=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||g)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(p)};p(e.where),p(e.having);for(let d of e.columns)d.type==="CASE_COL"&&p(d.expr);let c=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let E=await wc(d,t,n);E&&c.set(d,E)}));let u=(d,f,R)=>{if(f==="$id")return Hn(ee({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return K("string");if(f==="_idx"||f==="_pid")return K("number")}let E=s.get(d.appId)?.get(de(d,f));if(!E)return;let g=E.semantics??ee(E),y=E.fieldType==="STATUS"&&c.has(d.appId)?{...g,optionOrder:c.get(d.appId)}:g;return Hn(y,d.appId,E.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,d.field,!1);let R=o.find(E=>ye(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??K("string"):u(R,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(d.field)?.semantics??K("string"):u(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:u(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>$a(R,d.field)!==void 0))return f.length>1?K("string"):void 0}}var rR=new WeakMap;async function Sn(e,t,n,r,i=!1){let o=await Fi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Qp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&rR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function US(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function iR(e){return US(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function DE(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Ge(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ye(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Ge(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function vE(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3081\u3066\u3044\u308B\u306A\u3089\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function oR(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||DE(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+vE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||DE(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+vE(n,"VALUE"));return i}function cc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Re.get(e);return r&&Re.set(n,r),n}function pc(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=>Et(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function aR(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(Ge(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=K("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=K("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Nn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Nn(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"?K("string"):K("number"):r.type==="STRFUNC_COL"?i=bn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=K("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function Tn(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 qa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function sR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Et(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ge(null,()=>{}):ge(e.where,o=>{if(o.field==="$id")return ee({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ee(a):void 0)})}async function sr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await sR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ie(`WHERE predicate cannot be represented by kintone REST (${Tn(r)})`)}async function Zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await Oi(e,t,r,i),GS(e))return l=$S(e),o&&Re.set(l,await Qa(e,l.columns,t,r,i,a)),l;let{resolver:p}=await Sn(e,t,r,i,iR(e)),c=oR(e,p,s),u=await ur(e,t,r,i);await MR(e,t,n,r,i);let d=rT(e,ge(e.where,p));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(d)}).`);let f=$e(e),R,E;if(d.capability==="SUPERSET_PREFILTER"){let v=await Fi(e,t,r,i),P=Ru(e,v);P.eligible&&fu(e,P)&&(R=P.plan)}if(R===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let v=null;try{v=H(e.where)}catch{v=null}E=Do({select:e,selectMode:f,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:v,relativeFunctionNames:Ae(e.where)})??void 0,E&&(R=E.prefilterPlan)}let g=d.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",y=await _i(e,t,r,i),m=qa(e)?(e.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:e,staticMode:g,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Te(e.where)}):null,S=await WS(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),A=dc(e,n,m),b=E!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?oc(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await VS(e,b,A.effectiveOptions,r,m,y):l=await aT(e,b,A.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&R===void 0,y,R,u)}catch(v){uR(A,v)}return o&&Re.set(l,await Qa(e,l.columns,t,r,i,a)),cc(l,[...c,...S])}function ku(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function lR(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function ur(e,t,n,r){let i=Z(e);if(!Vn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await te(u.appId,t,n);if(!u.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let g=s.get(E.code)??[];g.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,lR(g))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}})),p=Op(e,(u,d)=>l[d]),c=vp(o,e.columns,p);return kS(e,o,c,s),wr(e,xp(e,c,p)),c}function kS(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let p=t[l],c=p?.type==="FIELD_NAME"?p.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,d=s.name.indexOf("."),f=d>=0?s.name.slice(d+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(ku(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${c} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${c} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${c} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Ci=new WeakMap;async function MS(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;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Oi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function xS(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let d=await te(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),s=(u,d)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,d)=>{if(d==="$id")return"$id";let f=de(u,d);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},p=(u,d)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(d):!0},c=(u,d,f,R)=>{let E=i.filter(m=>m.cteName===null&&l(m,f.field)!==null).length,g=i.some(m=>p(m,f.field)),y=ye(u);return{canonicalId:`source:${d}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(S=>ye(S)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let m=l(y,u.field);if(m===null){let S=s(y,de(y,u.field));throw S!==null&&S!==""?new Error(ku(u.field,[{appId:y.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return c(y,g,u,m)}let d=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let m=l(g,u.field);return m===null?[]:[{table:g,tableIndex:y,code:m}]}),f=i.filter(g=>p(g,u.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let g=d[0];return c(g.table,g.tableIndex,u,g.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,de(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),E=lR(R);throw E.length>0?new Error(ku(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Oi(e,t,n,r){Ci.delete(e);let i=Z(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await xS(e,t,n,r),p=Kp(e,l,Gp);p&&Ci.set(e,p);return}if(!Vn(e))return;if(i.type==="NONE"){fo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await ur(e,t,n,r)}function FS(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":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 dc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?xt({...e,orderBy:[]}):xt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function uR(e,t){throw e.reasons.size>0&&t instanceof ke&&!t.completeInputWrapped?new ke(FS(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Mu(e,t){try{return await t()}catch(n){uR(e,n)}}function at(e){return e?.type==="BOOLEAN"&&e.value===!1}function GS(e){return e.from.appId===0&&e.from.cteName===Pe}function Ja(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"?Ja(e.left)||Ja(e.right):e.type==="STRING_FUNC"?fc(e):!1}function KS(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Si(e)}function Si(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?fc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Si(e.left)||Si(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"?Ja(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Si(n))):!1}function fc(e){return e.args.some(t=>KS(t))}function BS(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(Ja(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(fc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Si(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 $S(e){if(e.joins.length>0||e.where||Z(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.");BS(e);let t=ou([{}],e.columns),{rows:n,columns:r}=yn(t,e.columns),i=Na(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function VS(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?fR(e):e,s=mo(a),l=i?.kind==="CANONICAL_LOCAL"?sn(e,e.from):s.fields,p=await gc(e,t,r),c=mc(e,p),u=e.columns.some(P=>P.type==="CASE_COL")?await Fi(e,t,r,void 0,pc(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,g=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,m=e.orderBy.length===0&&y!==null&&y<=d&&!Te(e.where)?y:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let P=await xf({client:t,app:s.app,fields:s.fields,query:Xl(e),offset:e.offset??0,limit:e.limit});S=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(g)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?H(e.where):"";S=await ve(t.getRecords,s.app,P,l,{parallel:E,maxRecords:d,stopAfter:m,onLimit:R,onTruncate:k=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${k} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${k} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(t,e.from.appId)}})}let A=S.map(P=>Lt(P,null));g||(A=ru(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,iu(e.columns,void 0,c.row,u)),A=Na(A,e.limit,e.offset));let{rows:N,columns:b}=yn(A,e.columns,void 0,c.row,void 0,u),v=await Sc(e,N,b,t,r);return{type:"SELECT",rows:N,columns:v,rowCount:N.length,warnings:[...f]}}async function WS(e,t,n,r){let i=[],o=new Map,a=(p,c)=>{if(c.length===0)return;let u=o.get(p);u||(u=new Set,o.set(p,u));for(let d of c)u.add(d)},s=new Map,l=(p,c)=>{let u=s.get(p);u||(u=new Set,s.set(p,u));for(let d of c)u.add(d)};if(t==="SIMPLE"){let p=mo(e);a(p.app,p.fields),e.from.subtableCode||l(p.app,p.fields)}else{let p=[e.from,...e.joins.map(c=>c.table)].filter(c=>c.cteName===null);for(let c of p){let u=sn(e,c);a(c.appId,u),c.subtableCode||l(c.appId,u)}}for(let[p,c]of o.entries()){let u=[...c].filter(g=>!Us(g));if(u.length===0)continue;let d=await te(p,n,r);if(d.length===0)continue;let f=new Set(d.map(g=>g.code)),R=u.filter(g=>!f.has(g));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${p})`);let E=s.get(p);if(E){let g=d.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of g){let m=y.subtableCode??"",S=m?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${m}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${p} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(m?`APP${p}$${m} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function UE(e){return e.cteName??`APP${e.appId}`}function HS(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function YS(e,t){return Us(t)||e.validCodes.has(t)}function Pu(e,t){return e.table.cteName!==null?e.validCodes.has(t):YS(e,t)}function jS(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 zS(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=ye(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Pe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:UE(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Pe)return;let d=await te(c.appId,t,r);s.set(c,{table:c,label:UE(c),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of HS(c.table))l.set(u,c);for(let c of e.joins)if(c.type!=="CROSS")for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let d=l.get(u.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Pu(d,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let p=Yp(e);for(let[c,u]of p.bySource){let d=s.get(c);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...u].filter(R=>!Pu(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let c of p.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Pu(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${d})`)}}async function Ba(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Ba(e.left,t,n,r,i),await Ba(e.right,t,n,r,i);return}await zS(e,t,n,r);for(let o of jS(e))await Ba(o,t,n,r,i)}}function cR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Dr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Dr(e.where,{tableAlias:e.from.alias}):null}function Ti(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Ti(e.left)||Ti(e.right):e.type==="GROUP"||e.type==="NOT"?Ti(e.expr):!1}var Ec=new WeakMap;function rs(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=_f(e.where,r),o=Df(i,r),a=new Map,s=new Map;for(let[f,R]of o.fetchQueriesByAlias)s.set(f,R);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,rr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,p=a.get(l)??null,c=new Map(a);c.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:p,mainRelation:d,joinConditions:c,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function is(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let p=r.get(s);p?p.push(l):r.set(s,[l])};if(i(e.from.appId,cR(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[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=Dr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[p,c]=await Promise.all([Le(s,t,n),pT(s,t,n)]),u=qS(l).filter(d=>p.get(d)==="STATUS");if(u.length>0){let d=await as(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(R=>R.name));for(let R of u)c.set(R,f)}}return[s,p,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function qS(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 Dt(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"&&Xa(e.left.expr,t),e.right.type==="CASE_VALUE"&&Xa(e.right.expr,t);return;case"LOGICAL":Dt(e.left,t),Dt(e.right,t);return;case"NOT":case"GROUP":Dt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Xa(e,t){for(let n of e.branches)Dt(n.condition,t)}function JS(e){let t=[];Dt(e.where,t),Dt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Xa(n.expr,t);return t}function ye(e){return e.alias??e.cteName}function pR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ye(n)===t)}function Rc(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function gc(e,t,n){let r=JS(e);if(r.length===0)return new Map;let i=new Set,o=Rc(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=pR(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 Le(s,t,n)]));return new Map(a)}function Ge(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 yc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||mn(t,n)}function mn(e,t){if(e.type==="FIELD_REF"){t.push(Ge(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){mn(e.left,t),mn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){mn(e.left,t),mn(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&mn(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?cr(n,t):n.type!=="ARRAY"&&mn(n,t)}function cr(e,t){if(e.type==="AGG_REF"){yc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(cr(e.left,t),cr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function xu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")cr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Ii(n,t)}}function Ii(e,t){if(e.type==="STRING_FUNC"){xu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ii(e.left,t),Ii(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"?xu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?cr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ii(r,t)}}function XS(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;yc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function QS(e){let t=[];for(let n of e)n.type==="AGGREGATE"?yc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?cr(n.expr,t):n.type==="STRFUNC_COL"?xu(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ii(n.expr,t):n.type==="CASE_COL"&&XS(n.expr,t);return t}var ZS=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function eT(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":ZS.has(e.fieldType)?"string":void 0}async function dR(e,t,n,r){let i=QS(e.columns);if(i.length===0)return;let o=new Set,a=Rc(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 R=pR(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await te(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,p=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...p].some(g=>R.get(g)?.fieldType==="STATUS"))return;let E=await wc(f,t,n);E&&l.set(f,E)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ee(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let g=c.find(y=>ye(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??K("string");R=s.get(g.appId)?.get(de(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??K("string");R=s.get(e.from.appId)?.get(de(e.from,f.field))}else{let g=c.flatMap(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??K("string")]:[]}let m=s.get(y.appId)?.get(de(y,f.field));return m?[u(m,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!R)return;let E=f.tableAlias!==null?c.find(g=>ye(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function de(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function $a(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Ue(e,t){let n=e.semantics??ee(e);return{sortKind:eT(e),fieldType:e.fieldType,semantics:t===void 0?n:Hn(n,t,e.code)}}function fR(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:K(e)}}function je(){return{semantics:K("string","KSQL_UNKNOWN")}}function ER(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function it(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ee({fieldType:"__ID__"})};if(e==="_rid")return Q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Q("number")}var tT=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function bn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Q("number"):Q("string")}return tT.has(e.func)?Q("number"):Q("string")}function pr(e,t){return e.type==="STRING"?Q("string"):e.type==="ARRAY"?ER():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?je():Nn(e.arg,t):e.func==="GROUP_CONCAT"?Q("string"):Q("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Q("number"):e.type==="STRING_FUNC"?bn(e):e.type==="FIELD_REF"?t(Ge(e.field))??je():e.type==="FIELD"?t(e)??je():je()}function os(e){if(e.length===0)return je();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&&So(n(r.semantics),n(t.semantics)))?e.every(i=>So(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?ER("KSQL_MIXED_UNSUPPORTED"):je()}function Nn(e,t){if(e.type==="FIELD_REF")return t(Ge(e.field))??je();if(e.type==="FIELD")return t(e)??je();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 bn(e);let n=e.branches.map(r=>pr(r.result,t));return e.elseResult&&n.push(pr(e.elseResult,t)),os(n)}function RR(e,t){return e.windowKind==="VALUE"?Nn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Q("number"):e.arg.type==="WILDCARD"?je():Nn(e.arg,t):Q("number")}function Va(e,t){return{...e??{},displayName:t}}function nT(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function Qa(e,t,n,r,i,o=!1){let a=new Map;nT(e)&&await Promise.all(Rc(e).map(async E=>{if(a.has(E.appId))return;let g=await te(E.appId,n,r);a.set(E.appId,new Map(g.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),p=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(E.field);return S?Ue(S,e.from.appId):void 0}let y=s.find(S=>ye(S)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let m=a.get(y.appId)?.get(de(y,E.field));return m?Ue(m,y.appId):it(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let y=a.get(e.from.appId)?.get(de(e.from,E.field));return y?Ue(y,e.from.appId):it(E.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return A?.columns.includes(E.field)?[A.columnMeta?.get(E.field)]:[]}let m=a.get(y.appId)?.get(de(y,E.field)),S=m?Ue(m,y.appId):it(E.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=E=>{if(!l)return;let g=s.filter(y=>{if(E.tableAlias!==null&&ye(y)!==E.tableAlias)return!1;let m=de(y,E.field);return a.get(y.appId)?.has(m)===!0||it(E.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(E,g)=>{let y=c(g);return E&&y!==void 0?{...E,publicSourceApp:y}:E},d=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let g=Ge(E),y=u(p(g),g);d.set(E,Va(y,y?.displayName??E))}return d}if(f)for(let E of t){let g=Ge(E),y=u(p(g),g);d.set(E,Va(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,g)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[g];if(!y)return;let m;if(E.type==="FIELD"){let S=Ge(E.field);m=u(p(S),S)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?m=Q("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?m=Q("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(m=Nn(E.arg,p));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")m=Q("number");else if(E.type==="GROUPING_COL")m=Q("number");else if(E.type==="LITERAL_COL")m=Q("string");else if(E.type==="SCALAR_VALUE_COL"){let S=E.expr;S.type==="STRING_FUNC"?m=bn(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?m=Q("number"):S.type==="FIELD"?m=p(S):m=Q("string")}else if(E.type==="STRFUNC_COL")m=bn(E.expr);else if(E.type==="WINDOW_COL")m=RR(E,p);else if(E.type==="CASE_COL"){let S=E.expr.branches.map(A=>pr(A.result,p));E.expr.elseResult&&S.push(pr(E.expr.elseResult,p)),m=os(S)}else E.type==="SCALAR_SUBQUERY_COL"&&(m=je());d.set(y,Va(m,E.aliasDisplay??y))}),d}function gR(e,t){let n=Re.get(e),r=Re.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],p=l===void 0?void 0:r?.get(l),c;if(s&&p){let u=os([s,p]),d=s.publicSourceApp===p.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;c=d===void 0?R:{...R,publicSourceApp:d}}else c=je();i.set(o,Va(c,s?.displayName??o))}),i}function mc(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 p=n.find(c=>ye(c)===s.tableAlias);return!p||p.cteName!==null?void 0:$a(p,s.field)??t.get(p.appId)?.get(de(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:$a(e.from,s.field)??t.get(e.from.appId)?.get(de(e.from,s.field));if(n.some(p=>p.cteName!==null))return;let l=r.flatMap(p=>{let c=$a(p,s.field)??t.get(p.appId)?.get(de(p,s.field));return c?[c]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var yR=new WeakSet,Ac=new WeakMap;function Fu(e){return yR.add(e),e}function rT(e,t){return Ac.set(e,t),t}function mR(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&&Z(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function iT(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function oT(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":H(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new wn;if(!iT(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=yn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function aT(e,t,n,r,i,o=!0,a,s,l){let p=Ac.get(e);if(yR.has(e)&&p!==void 0&&mR(e,p)){let L=await oT(e,t);if(L!==null)return L}let c=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([ki(e.where,t,n,r,i),ki(e.having,t,n,r,i)]);let[f,R,E]=await Promise.all([is(e,t,r),gc(e,t,r),dR(e,t,r,i)]),g=mc(e,R),y=await Fi(e,t,r,i,Et(e.having)||pc(e)),m=aR(e,y),S=Ec.get(e);if(S&&!ir(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??rs(e,f)??ln(e,f);Xs(A);let N="joinPlan"in A?A:null,b=N&&ir(N.joinPlan)?N:null,v=t,P=A.mainCondition,k=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let _=s?s.prefilterWhere:b?null:P,C=b?.queriesByAlias.get(e.from.alias)??"",U=await FR(e.columns,t,n,r,i),w=at(e.where),D=w?Promise.resolve([]):wi(e,e.from,v,c,d,!0,n.onLimitReached??"error",u,_,b?!1:o,l,C),h=[],I=[];for(let L of e.joins){if(w){h.push({join:L,promise:Promise.resolve([])});continue}let V=L.table.alias?b?.queriesByAlias.get(L.table.alias)??"":"",he=b?null:L.table.alias?k.get(L.table.alias)??null:null;he!==null||V!==""?h.push({join:L,promise:wi(e,L.table,v,c,d,!1,n.onLimitReached??"error",u,he,!0,l,V)}):I.push(L)}let M=a?Promise.resolve(a):_i(e,t,r,i);M.catch(()=>{});let O=await D,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:V}of h)F.set(L.table.alias,await V);await Promise.all(I.map(async L=>{let he=await wR(e,L,F,v,c,d,n.onLimitReached??"error",u,r,i,null,l,"")??await wi(e,L.table,v,c,d,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,he)}));let{optionOrders:W,sortKinds:j,semantics:x}=await M,{rows:G,columns:J}=lu({tables:F,stmt:e,scalarCache:U,optionOrders:W,sortKinds:j,orderSemantics:x,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:Ci.get(e),plainGroupByPlan:l}),B=await Sc(e,G,J,t,r);return{type:"SELECT",rows:G,columns:B,rowCount:G.length,warnings:[...u]}}function AR(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
11
- UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}async function hR(e,t,n,r,i=!1,o=!1){let a=dc(e,n,null);return Mu(a,async()=>{let s=a.effectiveOptions,[l,p]=await Promise.all([e.left.type==="UNION"?hR(e.left,t,s,r,i,o):Zt(Fu(e.left),t,s,r,void 0,i,o,"DERIVED"),Zt(Fu(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=p.columns;AR(c,u);let d=p.rows.map(y=>{let m={};return c.forEach((S,A)=>{m[S]=y[u[A]??S]??""}),m}),f=[...l.rows,...d],R=e.all?f:SR(f,c),E=[...new Set([...l.warnings??[],...p.warnings??[]])],g={type:"SELECT",rows:R,columns:c,rowCount:R.length,warnings:E};return i&&Re.set(g,gR(l,p)),g})}function SR(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 hc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&$t(e))return Zt(Vt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let p of e.ctes){let c;p.query.type==="SHOW_APPS"?c=await UR(t):p.query.type==="DESCRIBE"?c=await kR(p.query,t,r):p.query.type==="GENERATE_SERIES"?c=TR(p.query):c=await vt(p.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(p.name,{rows:c.rows,columns:c.columns,columnMeta:Re.get(c),...p.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:p.query.columnAlias}:{}})}let l=await vt(e.query,t,n,a,r,o);return cc(l,[...s])}function TR(e){let t=Go(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:ee({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ee({fieldType:"DATE"})};return Re.set(n,new Map([[e.columnAlias,r]])),n}async function vt(e,t,n,r,i,o=!1,a=!1){if(a||await Ba(e,t,r,i),e.type==="UNION"){let[p,c]=await Promise.all([vt(e.left,t,n,r,i,o,!0),vt(e.right,t,n,r,i,o,!0)]),u=p.columns,d=c.columns;AR(u,d);let f=c.rows.map(m=>{let S={};return u.forEach((A,N)=>{S[A]=m[d[N]??A]??""}),S}),R=[...p.rows,...f],E=e.all?R:SR(R,u),g=[...new Set([...p.warnings??[],...c.warnings??[]])],y={type:"SELECT",rows:E,columns:u,rowCount:E.length,warnings:g};return o&&Re.set(y,gR(p,c)),y}if(!(e.from.cteName!=null&&e.from.cteName!==Pe||e.joins.some(p=>p.table.cteName!=null)))return Zt(e,t,n,i,r,o,!1,"DERIVED");let l=await sT(e,t,n,r,i);return o&&Re.set(l,await Qa(e,l.columns,t,i,r)),l}async function sT(e,t,n,r,i){await Oi(e,t,i,r);let o=Ci.get(e),a=await ur(e,t,i,r),s=new Set,l=B=>{if(B.alias!==null||B.cteName===null)return B;let L=ye(B);return s.add(L),{...B,alias:L}};e={...e,from:l(e.from),joins:e.joins.map(B=>({...B,table:l(B.table)}))};let p=new Set;for(let B of[e.from,...e.joins.map(L=>L.table)]){let L=ye(B);if(L!==null){if(p.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);p.add(L)}}let c=B=>{let L=r.get(B);if(!L)throw new Error(`ArgumentError: materialized source ${B} is not available.`);return L};for(let B of[e.from,...e.joins.map(L=>L.table)])B.cteName!==null&&c(B.cteName);let{resolver:u}=await Sn(e,t,i,r,iR(e)),d=oR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([ki(e.where,t,n,i,r),ki(e.having,t,n,i,r),MR(e,t,n,i,r)]);let g=ge(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(g)}).`);let y=await _i(e,t,i,r),m=qa(e)?(e.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Te(e.where)}):null,S=dc(e,n,m),A=S.effectiveOptions,[N,b,v]=await Promise.all([is(e,t,i),gc(e,t,i),dR(e,t,i,r)]),P=mc(e,b),k=await Fi(e,t,i,r,Et(e.having)||pc(e)),_=aR(e,k),C=rs(e,N)??ln(e,N);Xs(C);let U=t,w=await FR(e.columns,t,A,i,r),D=Promise.resolve(y);D.catch(()=>{});let h=new Map,I=new Map;if(e.from.cteName!=null){let B=c(e.from.cteName);h.set(e.from.alias,B.rows.map(kE)),I.set(e.from.alias,B.columns)}else{let B=await Mu(S,()=>wi(e,e.from,U,f,E,!0,A.onLimitReached??"error",R,C.mainCondition,g.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,B)}let M=e.joins.map(B=>Mu(S,async()=>{if(B.table.cteName!=null){let L=c(B.table.cteName);h.set(B.table.alias,L.rows.map(kE)),I.set(B.table.alias,L.columns)}else{let L=B.table.alias?C.joinConditions.get(B.table.alias)??null:null,he=await wR(e,B,h,U,f,E,A.onLimitReached??"error",R,i,r,L,a)??await wi(e,B.table,U,f,E,!1,A.onLimitReached??"error",R,L,!0,a);h.set(B.table.alias,he)}}));await Promise.all(M);let{optionOrders:O,sortKinds:F,semantics:W}=await D,j=e.joins.length===0&&e.from.cteName!=null?c(e.from.cteName).columns:void 0,{rows:x,columns:G}=lu({tables:h,stmt:e,scalarCache:w,optionOrders:O,sortKinds:F,orderSemantics:W,fieldTypeResolver:P.row,fieldSemanticsResolver:k,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:_,aggregateSortKindResolver:v,appliedKlikes:C.appliedKlikes,sourceColumns:j,tableColumns:I,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),J=await Sc(e,x,G,t,i);return cc({type:"SELECT",rows:x,columns:J,rowCount:x.length,warnings:[...R]},d)}async function Sc(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await te(e.from.appId,r,i);return Gf(o,e.from.subtableCode,()=>as(e.from.appId,r,i))}function kE(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function wi(e,t,n,r,i,o,a,s,l=null,p=!0,c,u=""){let d=sn(e,t,c),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(n,t.appId),Nf(e,t,o))throw new ke(`\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&&p?Wp(e,t.appId).query:"",m=[l!==null?H(l):"",u].filter(b=>b!==""),S=m.length>1?m.map(b=>`(${b})`).join(" and "):m[0]??"",A=y&&S?`(${y}) and (${S})`:y||S;return(await et(n.getRecords,t.appId,A,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&p&&e.joins.length===0&&e.where!==null&&Ac.get(e)?.capability==="EXACT_PUSHDOWN"&&!It(e.where)?H(e.where):"",g=(await et(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return rE(g,t.subtableCode)}var IR=50;function lT(e){let t=Se(e);return t!==null?JSON.stringify(t):e}function Gu(e){return JSON.stringify(e)}function Pn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?lT(n):n))}function Gi(e,t){let n=e.raw.get(Gu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Pn(t,e.numericKey))}async function Ki(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},c=(g,y,m)=>{let S=g.get(y);(S===void 0||m>S)&&g.set(y,m)},u=(g,y)=>{c(p.raw,Gu(g),y),l.some(Boolean)&&c(p.normalized,Pn(g,l),y)},d=new Set,f=[],R=new Set;for(let g of n){let y=Gu(g);R.has(y)||(R.add(y),g.some(m=>m==="")?f.push(g):d.add(g[0]))}let E=["$id",...t];for(let g of Bi([...d],IR)){let y=`${t[0]} in (${g.map(Li).join(",")})`,m=await ve(r.getRecords,e,y,E,{maxRecords:a,parallel:s});for(let S of m){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(N=>Tc(S[N]?.value)),A)}}for(let g of f){let y=t.map((S,A)=>`${S} = ${Li(g[A])}`).join(" and "),m=await ve(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,uT(m))}return p}function uT(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 Tc(e){return typeof e=="string"?e:e==null?"":String(e)}function Li(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Bi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var cT=6,Wa=pa*cT;async function wR(e,t,n,r,i,o,a,s,l,p,c=null,u,d=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,g,y;if(f===t.table.alias&&R!==t.table.alias)E=R,g=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,g=t.on.left.field,y=t.on.right.field;else return null;let m=n.get(E);if(!m)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>ye(h)===E),A=(await te(t.table.appId,r,l)).find(h=>h.code===de(t.table,y)),N=A?Ue(A,t.table.appId):it(y),b;if(S?.cteName!==null&&S?.cteName!==void 0)b=p?.get(S.cteName)?.columnMeta?.get(g);else if(S){let h=(await te(S.appId,r,l)).find(I=>I.code===de(S,g));b=h?Ue(h,S.appId):it(g)}let v=[],P=!1;for(let h of m){let I=h[g]?.value,M=Tc(I);(I==null||M.length===0)&&(P=!0),v.push(M)}let k=Hl({fieldType:N?.fieldType,sourceSemantics:b?.semantics,sourceRowCount:m.length,values:v,hasEmptyValue:P,maxInKeys:Wa});if(k.kind==="EMPTY_SOURCE")return[];if(k.kind==="FALLBACK"){if(k.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${h} \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 ${Wa} \u4EF6\uFF09\u3002`)}return null}if(k.kind==="RANGE_CANDIDATE")return null;let _=Wl(k,y,Li);if(_.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \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 ${Wa} \u4EF6\uFF09\u3002`),null;let C=sn(e,t.table,u),U=h=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${h} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${h} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(r,t.table.appId)},w=[],D=new Set;for(let h of _){let M=[c!==null?H(c):"",d].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,h),O=await et(r.getRecords,t.table.appId,M,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:U});for(let F of O.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;D.has(W)||(D.add(W),w.push(F))}}return w}var Ku=new Map,Bu=new Map,$u=new Map,Vu=new Map,Wu=new Map,Hu=new Map;function Ic(e){Ku.delete(e),Bu.delete(e),$u.delete(e),Vu.delete(e),Wu.delete(e),Hu.delete(e)}function dr(e,t,n){return e.get(t)?.get(n)}function fr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=dr(Vu,n,e);if(r)return r;let i=t.getFields(e);return fr(Vu,n,e,i),i}async function At(e,t,n){let r=dr(Hu,n,e);if(r)return r;let i=t.getNumberPrecision(e);return fr(Hu,n,e,i),i}async function as(e,t,n){let r=dr(Wu,n,e);if(r)return r;let i=t.getProcessStatuses(e);return fr(Wu,n,e,i),i}async function wc(e,t,n){let r=await as(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Le(e,t,n){let r=dr(Ku,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return fr(Ku,n,e,o),o}async function Yu(e,t,n){let r=dr(Bu,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return fr(Bu,n,e,o),o}async function pT(e,t,n){let r=await Yu(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function ME(e,t,n){let r=dr($u,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return fr($u,n,e,o),o}function dT(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 fT(e,t,n,r){let i=dT(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let d=await te(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?Ue(E,e.from.appId):void 0}let f=o.find(E=>ye(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(de(f,u.field));return R?Ue(R,f.appId):it(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(de(e.from,u.field));return f?Ue(f,e.from.appId):it(u.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(de(f,u.field)),E=R?Ue(R,f.appId):it(u.field);return E?[E]:[]});return d.length>1&&a.add(u.field),d.length===1?d[0]:void 0},p=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let d;if(u.type==="FIELD")d=l(Ge(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")d=Q("number");else if(u.type==="WINDOW_COL")d=RR(u,l);else if(u.type==="GROUPING_COL")d=Q("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")d=Q("string");else if(u.type==="STRFUNC_COL")d=bn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")d=je();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>pr(R.result,l));u.expr.elseResult&&f.push(pr(u.expr.elseResult,l)),d=os(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(d=Nn(u.arg,l)):d=u.func==="GROUP_CONCAT"?Q("string"):Q("number"));d?.semantics&&p.set(u.alias,d.semantics)}let c=new Map;for(let u of i){let d=p.get(u)??l(Ge(u))?.semantics;if(!d){let R=Ge(u);R.tableAlias===null&&a.has(R.field)&&c.set(u,ee({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await as(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}c.set(u,f)}return c}async function _i(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([ET(e,t,n),RT(e,t,n),fT(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function ET(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 Yu(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Yu(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}async function RT(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 ME(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await ME(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}function bR(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 gT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function yT(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||gT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function st(e,t,n,r){let i=await te(e,n,r);return yT(e,t,i),i}async function Ut(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?At(e,r,i):void 0}function Cn(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),p=o[s]?.value??"",c=Fe(p,l,r);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:u?p:c.value}}})}async function mT(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=await Zr({statement:e,fieldInfos:o,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return zT(e,a,o)}async function AT(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await NR(e,t,n,r,i);return JT(e,a,o)}async function NR(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=DR(e),l=new Set;for(let g of s){let y=Pn(g,e.keyFields.map(m=>a.get(m)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let p=await Ki(e.appId,e.keyFields,s,t,n,a),c=s.map(g=>Gi(p,g)),u=new Map,d=[...new Set(c.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of Bi(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let S=Number(m.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,m)}}let R=c.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),E=await Af({statement:e,matches:R,fieldInfos:o,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function hT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await st(e.appId,e.fields,t,r),o=await Zr({statement:e,fieldInfos:i,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),loadNumberPrecision:()=>At(e.appId,t,r)}),a=Gl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ss(a),applyDiagnostic:a}))throw new fe("INSERT",o.guards.parentRows);let s=await wf(o,t,a);return{...s,diagnostic:We(a,s)}}async function ST(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await NR(e,t,n,r,1),o=Kl(i);if(n.confirm){let s=ss(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new fe("UPDATE",i.guards.parentRows)}let a=await bf(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:We(o,a)}}function TT(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 ss(e,t=!0){let n=e.branches.find(d=>d.branch==="insert"),r=e.branches.find(d=>d.branch==="update"),i=e.branches.flatMap(d=>d.targets),o=TT(n?Fa(n):[],r?Fa(r):[]),a=IT(i),s=e.branches.reduce((d,f)=>d+(f.parentRows??0),0),l=i.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0),p=o.reduce((d,f)=>d+f.appendRows,0),c=o.reduce((d,f)=>d+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:p,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:c,deletedParentRows:e.branches.reduce((d,f)=>d+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(d=>d.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let d=Fa(n),f=Fa(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((R,E)=>R+E.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function Fa(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=In(t,"APPEND"),r=In(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function In(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function IT(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:In(n,"ADD"),removedValues:In(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 bc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return mT(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return AT(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await _R(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Nc(e,t,n,r,i,o)).result}var Di=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Nc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(D=>D.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let c=e.type==="UPDATE"?e.assignments.map(D=>D.field):e.fields,u=await st(e.appId,c,t,r);e.type==="UPDATE"&&await sr(e,t,r);let d=new Map(u.map(D=>[D.code,D])),f=await Ut(e.appId,c,u,t,r),R=pt(u,p),E=iE(R),g=(await wT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((D,h)=>D.rowNumber-h.rowNumber),y=g.filter(D=>D.mode==="update"),m=e.type==="UPDATE"?PT:e.type.startsWith("UPSERT")?D=>CT(D,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??m,A=y.length>0&&S!==void 0,N=new Map;if(A){Ll(y,c,u);let D=await S({appId:e.appId,candidates:y,fields:E}),h=new Map;for(let I of y){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let M=D.get(I.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let O=oE(M,I.record??{});h.set(I.rowNumber,O)}f===void 0&&[...h.values()].some(I=>fn(I,R))&&(f=await At(e.appId,t,r));for(let I of y){let M=h.get(I.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);N.set(I.rowNumber,En(M,R,f,o,I.rowNumber,l))}}let b=_l(g,l,p,c,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:v,invalidRows:P,invalidRowNumbers:k}=b;if(A){let D=new Map(b.candidateResults.map(h=>[h.rowNumber,h]));v=[],k=new Set;for(let h of g){let I=D.get(h.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...I.preErrors,...I.builtInErrors,...I.checkErrors];v.push(...F),F.length>0&&k.add(h.rowNumber);continue}let M=N.get(h.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let O=aE({rowNumber:h.rowNumber,setFields:c,normalizedPostImage:M.normalizedRecord,preErrors:I.preErrors,postImageErrors:M.errors,checkErrors:I.checkErrors});h.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)k.add(F)}P=k.size}let _=[...p,...Zn],C={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-P,invalidRows:P,errorCount:v.length,columns:_,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let D of p){if(D==="$id"){U.set(D,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ee({fieldType:"RECORD_NUMBER"})});continue}let h=d.get(D);h&&U.set(D,Ue(h,e.appId))}let w=new Set(["$err_statement","$err_row"]);for(let D of Zn)U.set(D,Q(w.has(D)?"number":"string"));return Ln.set(C,U),{result:C,candidates:g,invalidRowNumbers:k,columnMeta:U}}async function ju(e,t,n,r,i,o){let a=await Nc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");mt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??ze,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Di(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(p.length,R))throw new fe(R,p.length)}let c={affectedRows:p.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<p.length;E+=100){let g=await t.postRecords({app:e.appId,records:p.slice(E,E+100).map(y=>y.record)});R.push(g.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...c}}if(e.type==="UPDATE"){let R=p.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...c}}let u=p.filter(R=>R.mode==="create"),d=p.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(g=>g.record)});f+=E.ids.length}for(let R=0;R<d.length;R+=100)await t.putRecords({app:e.appId,records:d.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...c}}async function wT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return NT(e,n,r,i,o,s);let l,p,c,u,d;if(e.type==="INSERT"||e.type==="UPSERT")xE(e,e.fields),d=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),On(e,d),l=e.values.map(A=>A.map((N,b)=>N.type==="CASE_VALUE"?Jt(N.expr,{},a.get(e.fields[b])?.fieldType):N));else{let A=await Cc.materialize(e,n,r,i,o,[...a.values()]),N=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!N&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(N&&new Set(A.columns).size!==A.columns.length)throw we("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");xE(e,A.columns),p=A.rows,c=A.importPresence,u=A.importRowErrors;let b=A.columnMeta;d=new Map(A.columns.map(v=>{let P=b?.get(v),k=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,k]})),On(e,d),l=A.rows.map(v=>A.columns.map(P=>v[P]??""))}let f=l.map((A,N)=>({rowNumber:N+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,v)=>c&&!c[N]?.has(b)?[]:[[b,A[v]]])),preErrors:[...u?.[N]??[]],record:{},evaluationRow:p?.[N]??Object.fromEntries(e.fields.map((b,v)=>[b,ct(A[v])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let R=new Map([...a].map(([A,N])=>[A,N.fieldType])),E=f.map(A=>e.keyFields.map(N=>ct(A.payload.get(N)))),g=e.keyFields.map(A=>R.get(A)==="NUMBER"),y=new Map;for(let A of E){let N=Pn(A,g);y.set(N,(y.get(N)??0)+1)}let m=ns.has(e);if(m&&[...y.values()].some(A=>A>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let S=await Ki(e.appId,e.keyFields,E,n,r,R);return f.forEach((A,N)=>{let b=E[N],v=Gi(S,b);A.mode=v===void 0?"create":"update",v!==void 0&&(A.targetId=v),e.keyFields.forEach((P,k)=>{b[k]===""&&A.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!m&&(y.get(Pn(b,g))??0)>1&&A.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Pc(e){return e.checkGroups?Xn(e.checkGroups):[]}function xE(e,t){let n=new Set(t);for(let r of Pc(e)){if(r.tableAlias!==null)throw we(`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 we(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var bT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function On(e,t){if(e.checkGroups)for(let n of Gd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(bT.has(i??""))throw we(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function NT(e,t,n,r,i,o){if(e.from)return LT(e,e.from,t,n,r,i,o);await xR(e.assignments,t,n,r);let a=await Le(e.appId,t,r),s=PR(e,a);On(e,zu(a,e.appId));let l,p=new Map,c=new Map;if(Xo(e)){let u=El(e),d=[...new Set([...u.fields,...s,...o??[]])],f=await et(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(f.records),p=c,l=gl(e,f.records,a).flatMap(R=>R.records)}else{let u=Wr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await et(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(f.records),p=c,l=Hr(e,[...p.keys()],a).flatMap(R=>R.records)}else if(o){let d=await et(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(d.records),l=Hr(e,[...c.keys()],a).flatMap(f=>f.records)}else{let d=await fa(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Hr(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((u,d)=>u.id-d.id).map((u,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:c.get(u.id),evaluationRow:OT(p.get(u.id),e.appId),evaluationFieldTypes:zu(a,e.appId)}))}function Ha(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 PT(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 CT(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 ke(`\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 Bi(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 p=l.$id?.value,c=Number(p);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function PR(e,t){if(e.from)return[];let n=new Set;for(let r of Pc(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw we(`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 we(`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 OT(e,t){if(!e)return{};let n=Lt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function zu(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function LT(e,t,n,r,i,o,a){let s=await QR(e,t,n,i,o);On(e,s.evaluationTypes);let l=await CR(e,t,n,r,i,o,a),p=await Le(e.appId,n,i),c=ml(e,l,p).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Ha(l.map(f=>f.target)):new Map;return c.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:UI(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var _T=IR,DT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function CR(e,t,n,r,i,o,a){let s=await vT(e,t,n,i),l=await QR(e,t,n,i,o),p=[...new Set(e.assignments.filter(N=>N.value.type==="SOURCE_FIELD").map(N=>N.value.type==="SOURCE_FIELD"?N.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...p])],u=await UT(t,c,p,n,r,i,o),d=new Map,f=new Map;for(let N of u){if(!Object.prototype.hasOwnProperty.call(N,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=FE(N[t.joinKeyField],s,"source");if(d.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);d.set(b,N),f.set(b,String(N[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...QT(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":Wr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,S=0;for(let N of Bi([...f.values()],_T)){let b=`${t.targetJoinField} in (${N.map(Li).join(",")})`,v=g?`(${b}) and (${g})`:b,P=await et(n.getRecords,e.appId,v,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=P.records.length,S>R)throw new ke(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \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 k of P.records){let _=k.$id?.value;if(typeof _!="string"||_==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");m.has(_)||(m.add(_),y.push(k))}}let A=[];for(let N of y){let b=N[t.targetJoinField]?.value,v=FE(b,s,"target");if(v===null)continue;let P=d.get(v);P!==void 0&&A.push({target:N,source:P})}return A}async function vT(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function UT(e,t,n,r,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!c.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return c.rows}let s=await Le(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let c of n){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let u=c==="$id"?"RECORD_NUMBER":s.get(c);if(DT.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${c}).`)}return(await et(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>Lt(c,null))}function FE(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=Se(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function $i(e,t,n,r,i){let o=await Nc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new fe(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<u.length;d+=100)await t.putRecords({app:e.appId,records:u.slice(d,d+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),p=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),c=0;for(let u=0;u<l.length;u+=100){let d=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});c+=d.ids.length}for(let u=0;u<p.length;u+=100)await t.putRecords({app:e.appId,records:p.slice(u,u+100)});return{type:"UPSERT",insertedCount:c,updatedCount:p.length}}async function kT(e,t,n,r){if(e.applyBlocks?.length)return hT(e,t,n,r);if(e.checkGroups?.length)return $i(e,t,n,r);if(e.subtableCode)return tI(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Ut(e.appId,e.fields,i,t,r),a=await Le(e.appId,t,r),s=Jo(e,a);Cn(s.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of s){let c=await t.postRecords(p);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function MT(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Pe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function OR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=pE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!x.has(G)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let G of e.targets.filter(J=>J.kind==="SUBTABLE"))if(!G.rowIdSourceHeader||!e.replaceSubtables.includes(G.subtableCode))throw new Error(`ArgumentError: CSV subtable ${G.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,d=await te(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=d.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,E=await va(o,new Map),g=e.source.kind==="JSON"?gE(e.source,E,u,n.maxRecords??1e4):yE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=SE(g,u,d,R,y);if(e.source.kind==="CSV")return xT(e,g,m,d,t,n,i);hu(m,e.rejectLimit);let S=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],A=Tu(m.errors,S),N=[...S,...Su],b=m.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-b,invalid:b,mutationCandidates:m.parents.filter(x=>x.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.parents.length-b,invalidRows:b,errorCount:A.length,columns:N,errors:A,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&mt(i,e.validationErrorTable,N,A,n.tempTableMaxRows??ze,new Map),e.validateOnly)return P;if(IE(g),m.errors.length>0&&!e.onErrorSkip){let x=m.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");mt(i,e.errorTable,N,A,n.tempTableMaxRows??ze,new Map)}let k=m.parents.filter(x=>x.valid),_=new Map(d.map(x=>[x.code,x.fieldType])),C=k.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(L=>_.get(L)==="NUMBER"),G=new Set,J=k.map(L=>e.keyFields.map(V=>String(L.top[V]?.value??"")));for(let L of J){let V=Pn(L,x);if(G.has(V))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(V)}let B=await Ki(e.appId,e.keyFields,J,t,n,_);J.forEach((L,V)=>{C[V]=Gi(B,L)})}let U=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),w=new Map,D=C.filter(x=>x!==void 0);for(let x of Bi([...new Set(D)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let J of G.records){let B=Number(J.$id?.value),L=Number(J.$revision?.value);Number.isFinite(B)&&w.set(B,{id:B,...Number.isFinite(L)?{revision:L}:{},record:J})}}let h=wE(k,C,w),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(x=>x.mode==="INSERT").length,updatedParents:h.filter(x=>x.mode==="UPDATE").length,hasDeletes:h.some(x=>x.tables.some(G=>G.deleteRows>0)),parents:h.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new fe(e.keyFields?"UPDATE":"INSERT",h.length)}let M=x=>new Map(Object.entries(x).map(([G,J])=>[G,J.value])),O=x=>TE(M(x.top),new Map([...x.subtables].map(([G,J])=>[G,J.map(B=>({values:M(B)}))]))),F=h.filter(x=>x.mode==="INSERT"),W=h.filter(x=>x.mode==="UPDATE"),j=[];for(let x=0;x<F.length;x+=100){let G=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(O)});j.push(G.ids)}for(let x=0;x<W.length;x+=100)await t.putRecords({app:e.appId,records:W.slice(x,x+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:O(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:j.flat().length,updatedCount:W.length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:j,insertedCount:j.flat().length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return FT(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:MT(),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};ns.set(s,l);let p=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await bc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&mt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??ze,Ln.get(u)??new Map),p(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",ju(s,t,n,r,i,1));return p(u)}let c=await(s.type==="UPSERT_SELECT"?Dc(s,t,n,r,i):Oc(s,t,n,r,i));return p(c)}async function xT(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");bE(t.records);let s=t.records.map(w=>w.recordNumberSourceValue??""),l=bu(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],c=[...new Set(r.filter(w=>!w.inSubtable&&w.fieldType==="SUBTABLE").map(w=>w.code))],u=await ve(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let w of u){let D=Number(w.$id?.value),h=Number(w.$revision?.value);if(Number.isFinite(D)){d.set(D,{id:D,...Number.isFinite(h)?{revision:h}:{},record:w});for(let I of c){let M=w[I]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let F=f.get(O.id)??[];F.push({parentId:D,table:I}),f.set(O.id,F)}}}}}let R=l.normalized.map(w=>w===null?void 0:Number(w)),E=n.parents.map((w,D)=>{let h=[...w.errors];for(let M of l.errors[D])h.push({operation:"UPDATE",parentRow:w.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[D].top});let I=R[D];return I!==void 0&&!d.has(I)&&h.push({operation:"UPDATE",parentRow:w.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`,sourceValues:t.records[D].top}),{...w,valid:h.length===0,errors:h}}),g=NE(t.records,E,R,d,f),y=g.flatMap(w=>[...w.errors]),m=new Set(g.filter(w=>!w.valid).map(w=>w.parentRow)),S={...n,parents:E,errors:y,invalidParentRows:m};hu(S,e.rejectLimit);let A=g.filter(w=>w.valid),N=g.flatMap(w=>w.tables),b=(w,D)=>N.filter(h=>h.table===w).reduce((h,I)=>h+Number(I[D]),0),v=Object.fromEntries(p.map(w=>[w,{existingRows:b(w,"existingRows"),inputRows:b(w,"inputRows"),updateRows:b(w,"updateRows"),addRows:b(w,"addRows"),deleteRows:b(w,"deleteRows"),rowIdNotFound:b(w,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(w=>w.tables.some(D=>D.deleteRows>0)),totalDeleteRows:A.flatMap(w=>w.tables).reduce((w,D)=>w+D.deleteRows,0),rowIdNotFound:A.flatMap(w=>w.tables).reduce((w,D)=>w+D.rowIdNotFound,0),invalidParents:m.size,parents:A.map(w=>({parentRow:w.parentRow,mode:"UPDATE",targetId:w.targetId,tables:w.tables}))},k=[...new Set(e.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children))],_=Tu(y,k),C=[...k,...Su];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&mt(a,e.validationErrorTable,C,_,o.tempTableMaxRows??ze,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-m.size,invalidRows:m.size,errorCount:_.length,columns:C,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:A.length,invalid:m.size,mutationCandidates:A.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let w=y[0];throw new Error(`DmlValidationError: ${w.code} ${w.message} (row=${w.parentRow}, field=${w.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");mt(a,e.errorTable,C,_,o.tempTableMaxRows??ze,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new fe("UPDATE",A.length)}let U=w=>new Map(Object.entries(w).map(([D,h])=>[D,h.value]));for(let w of A){let D=Iu(U(w.top),new Map([...w.subtables].map(([h,I])=>[h,I.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:U(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:w.targetId,...w.revision===void 0?{}:{revision:w.revision},record:D}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function FT(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 st(e.appId,e.fields,n,i),s=await Ut(e.appId,e.fields,a,n,i),l=await va(t,new Map),p=yu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=p.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let u=bu(c,e.recordNumberSourceHeader),d=new Set,f=[...new Set(u.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let k=f.slice(P,P+100),_=await n.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id"]});for(let C of _.records){let U=C.$id?.value;typeof U=="string"&&U!==""&&d.add(U.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(P=>[P.code,P])),E=new Map(e.fields.map(P=>[P,R.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),g=p.rows.map((P,k)=>{let _=u.normalized[k],C=[...p.importRowErrors?.[k]??[],...u.errors[k]];return _!==null&&!d.has(_)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${_} does not exist in APP${e.appId}`}),{rowNumber:k+1,operation:"UPDATE",mode:"update",..._!==null&&d.has(_)?{targetId:Number(_)}:{},payload:new Map([[e.recordNumberSourceHeader,c[k]],...e.fields.map(U=>[U,P[U]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],m=_l(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...Zn],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:S,errors:m.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:p.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&mt(o,e.validationErrorTable,S,m.errors,r.tempTableMaxRows??ze,new Map),A}if(!e.onErrorSkip&&m.invalidRows>0){let P=m.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(mt(o,e.errorTable,S,m.errors,r.tempTableMaxRows??ze,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new Di(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let N=g.filter(P=>!m.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(N.length,"UPDATE"))throw new fe("UPDATE",N.length);let b=N.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<b.length;P+=100)await n.putRecords({app:e.appId,records:b.slice(P,P+100)});let v={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:p.importAudit}),v}async function GT(e,t,n,r,i,o){let a=ns.get(e);if(!a){let E=i&&i.size>0?await vt(e.select,t,n,i,r,!0):await Zt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:Re.get(E)}}let s=await va(a.handle,a.cache),l=n.maxRecords??1e4,p=new Map((o??[]).map(E=>[E.code,E])),c=e.fields.map(E=>({code:E,fieldType:p.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?gu(a.source,s,c,l):yu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let d=PE(a.source.projection),f=new Map(i??[]);f.set(wu,u);let R=await vt(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:Re.get(R)}}var Cc={materialize:GT};function LR(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 Oc(e,t,n,r,i){if(e.checkGroups?.length)return $i(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Ut(e.appId,e.fields,o,t,r),s=await Cc.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(LR(s),p.length!==e.fields.length){let f=p.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${p.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 fe("INSERT",l.length);let c=await Le(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((g,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(g))return;let m=f[p[y]]??"";E[g]={value:bR(m,c.get(g))}}),E});u.forEach(f=>Cn([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});d.push(E.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function qu(e,t,n,r,i){if(e.applyBlocks?.length)return _R(e,t,n,r);if(e.checkGroups?.length&&at(e.where)){let R=await st(e.appId,e.assignments.map(g=>g.field),t,r);await Ut(e.appId,e.assignments.map(g=>g.field),R,t,r);let E=await Le(e.appId,t,r);return PR(e,E),On(e,zu(E,e.appId)),await sr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return $i(e,t,n,r,i);if(e.subtableCode)return await sr(e,t,r),nI(e,t,n,r);let o=await st(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await Ut(e.appId,a,o,t,r);if(await sr(e,t,r),at(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return XT(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await xR(e.assignments,t,n,r);let p=await Le(e.appId,t,r);if(Xo(e)){let R=El(e),g=(await et(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=gl(e,g,p);if(Cn(y.flatMap(m=>m.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new fe("UPDATE",g.length);for(let m of y)await t.putRecords(m);return{type:"UPDATE",updatedCount:g.length}}let c=Wr(e),d=(await fa(t.getRecords,c.app,c.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Hr(e,d,p);if(Cn(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new fe("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function _R(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Tt(e.where))return KT(e,t,n,r,i);let o=await te(e.appId,t,r),a=Ct(e,o),s=Zo(e,o),l=wl(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(p.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(p.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let c=Number(p.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);ra(p.records[0]);let u=nf({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),d=pt(o,e.assignments.map(N=>N.field)),f=fn(u.postImage,d)?await At(e.appId,t,r):void 0,R=En(u.postImage,d,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=qe(n.dmlMaxRows,"dmlMaxRows",kt),g=qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),y=u.parentRows>E||u.changedSubtableRows>g;if(e.validateOnly){let N=ti({plans:[u],records:qr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:vi(N.branches[0]),guards:Ui(N.branches[0]),deletedRows:{total:u.tables.reduce((v,P)=>v+P.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:N};return Ln.set(b,ls(R.columns,o,e.appId)),b}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let m=ta(u,R.normalizedRecord),S=qr(m),A=ti({plans:[m],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});if(n.confirm){let N=ss(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:N,applyDiagnostic:A}))throw new fe("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:We(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function KT(e,t,n,r,i){let o=qe(n.dmlMaxRows,"dmlMaxRows",kt),a=qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),s=await te(e.appId,t,r),l=Ct(e,s),p;if(Za(e))p=await WT(e,t,n,s,r);else{let f=Zo(e,s),R=Wr(e).query,E=o+1;p=await ve(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&p.length>o)throw new Error(`ArgumentError: APPLY parent rows (${p.length}) exceed dmlMaxRows (${o}).`);let c=await sa({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});if(e.validateOnly)return qT(e,c,s);yp("phase15b",e);let u=ti(c);if(n.confirm){let f=ss(u);if(!await n.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new fe("UPDATE",c.guards.parentRows)}let d=await If(c,t,u);return{...d,diagnostic:We(u,d)}}function Za(e){return(e.applyBlocks?.length??0)>0&&!Tt(e.where)&&(Gt(e.where)||Te(e.where))}function BT(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Za(t)&&Te(t.where)}var $T=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
10
+ `,r:"\r",t:" "};if(E in g){d+=g[E];continue}E!=="u"&&_t(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||_t("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let A=Number.parseInt(y,16);if(A>=55296&&A<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&_t("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let N=0;N<4;N++)o();let m=Number.parseInt(S,16);(m<56320||m>57343)&&_t("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(A-55296<<10)+m-56320)}else A>=56320&&A<=57343?_t("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(A)}f||_t("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let p=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(p)?.[0];if(u){for(let d=0;d<u.length;d++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}_t(`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 ka(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Ma(e){if(e.byteLength===0)throw new $("JSON source is empty.");let t=RE(EE(e)),n=0,r=(p,c=t[n])=>{throw new $(`JSON ${p} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(p,c)=>p.kind==="punct"&&p.value===c,o=p=>{let c=t[n];(c.kind!=="punct"||c.value!==p)&&r(`expected ${p}; found ${ka(c)}`,c),n++},a=()=>{let p=t[n++];if(p.kind==="string")return p.value;if(p.kind==="number")return{kind:"number",lexeme:p.lexeme};if(p.kind==="literal")return p.value;if(p.kind==="punct"&&p.value==="{"){let c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${ka(u)}`,u);let d=u.value;c.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,u),o(":"),c.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(p.kind==="punct"&&p.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${ka(p)}`,p)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ka(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 $("JSON source contains no records.");return l.forEach((p,c)=>{if(!(p instanceof Map))throw new $(`JSON record ${c+1} must be an object.`)}),l}var uS=new Set(["CHECK_BOX","MULTI_SELECT"]),gE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function yt(e,t,n){throw new $(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function cS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function pS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&yt(n,t.code,"boolean is not accepted."),cS(e)){t.fieldType==="NUMBER"&&yt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&yt(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)||yt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&yt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||yt(n,t.code,"unsupported value type."),!uS.has(t.fieldType)&&!gE.has(t.fieldType)&&yt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&yt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&yt(n,t.code,"array elements must not contain duplicates."),gE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function gu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new $("JSON source is UTF-8 only.");let i=Ma(t.bytes);if(i.length>r)throw new $(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new $("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let d of l.keys())o.has(d)||yt(p+1,d,"unknown key (not declared in INTO).");let c={},u=new Set;for(let d of n)l.has(d.code)&&(u.add(d.code),c[d.code]=pS(l.get(d.code),d,p+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function yu(e,t,n,r,i,o){let a=Ua(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new $(`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 $("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,A)=>[y,A]));for(let y of r)if(!l.has(y))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let p=new Map(i.map(y=>[y.code,y])),c=new Set(r);if(o&&c.has(o))throw new $("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],d=[],f=y=>a.rows.filter(A=>A[y]!=="").length,R=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,A]of a.columns.entries()){if(c.has(A)||A===o)continue;let S=p.get(A);if(S)u.push({column:A,reason:R(S),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)d.push({column:A,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new $(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${A}".`)}for(let y of r){let A=p.get(y);if(!A)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(A.inSubtable||A.writable===!1||A.fieldType==="FILE"||A.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${A.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let A=[],S={};for(let m of r){let N=y[l.get(m)];try{S[m]=fE(N,p.get(m)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof yi))throw b;S[m]=N,A.push({field:m,code:b.code,message:b.message})}}return E.push(A),S}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:p.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((p,c)=>[p,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var mi=(e,t,n)=>{throw new $(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function yE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new $("JSON source is UTF-8 only.");let o=Ma(t.bytes);if(o.length>r)throw new $(`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 $("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,p)=>{let c=p+1;for(let R of l.keys())a.has(R)||mi(c,R,"unknown key (not declared in INTO).");let u=new Map,d=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let g=l.get(E);if(R.kind==="FIELD"){g instanceof Map&&mi(c,E,"object is not accepted for a top-level field."),u.set(E,g);continue}Array.isArray(g)||mi(c,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),A=g.map((S,m)=>{S instanceof Map||mi(c,E,`childRow=${m+1} must be an object.`);let N=S;for(let b of N.keys())y.has(b)||mi(c,b,`unknown child key in subtable ${E} at childRow=${m+1}.`);if(s++,s>i)throw new $(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:m+1,values:N}});d.set(E,A)}return{rowNumber:c,top:u,subtables:d,replacementTables:f}})}}function mE(e,t,n,r,i,o){let a=Ua(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new $('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((d,f)=>[d,f]));if(o&&!s.has(o))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),p=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new $(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of p){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new $(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new $(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new $(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(c.length>=i)throw new $(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:R,top:new Map(l.map(g=>[g.field,d[s.get(g.field)]])),subtables:new Map(p.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let y=d[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new $(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${R}.`)}if(o){let g=d[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new $(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new $(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let g of p){let y=d[s.get(g.rowIdSourceHeader)],A=new Map(g.children.map(m=>[m,d[s.get(m)]]));if(y===""&&[...A.values()].every(m=>m===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:A})}}),c.length===0)throw new $("CSV has no parent rows.");return{records:c}}var dS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),fS=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function hu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function TE(e,t,n,r,i){let o=new Map(n.filter(d=>!d.inSubtable).map(d=>[d.code,d])),a=new Map;for(let d of n)if(d.inSubtable&&d.subtableCode){let f=a.get(d.subtableCode);f||a.set(d.subtableCode,f=new Map),f.set(d.code,d)}let s=t.filter(d=>d.kind==="FIELD"),l=t.filter(d=>d.kind==="SUBTABLE");for(let d of s)AE(d.field,o.get(d.field),void 0);for(let d of l){let f=o.get(d.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${d.subtableCode} does not exist.`);let R=a.get(d.subtableCode)??new Map;for(let E of d.children)AE(E,R.get(E),d.subtableCode)}let p=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(d=>ES(d,s,l,o,a,r,i,p)),u=c.flatMap(d=>[...d.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:p}}function ES(e,t,n,r,i,o,a,s){let l=[],p={};for(let d of t)e.top.has(d.field)&&Au(e.top.get(d.field),r.get(d.field),o,p,d.field,l,mu(e,a,d.field));let c={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||hE(d,o,c,l,mu(e,a,d.code));let u=new Map;for(let d of n){if(!e.subtables.has(d.subtableCode))continue;let f=s.get(d.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(d.subtableCode)){f.childRows++;let g=l.length,y={},A=i.get(d.subtableCode);for(let S of d.children){let m=A.get(S),N=mu(e,a,S,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(S)?Au(E.values.get(S),m,o,y,S,l,N):hE(m,o,y,l,N)}l.length===g?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:u,replacementTables:e.replacementTables,errors:l}}function AE(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&&fS.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function hE(e,t,n,r,i){let o=dn(e.defaultValue)?"":e.defaultValue;Au(o,e,t,n,e.code,r,i,!dn(e.defaultValue))}function Au(e,t,n,r,i,o,a,s=!1){let l=RS(e),p=Fe(l,t,n);p.ok?r[i]={value:gS(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function RS(e){return SE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:SE(t)?t.lexeme:t):e}function SE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function gS(e,t){return dS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function mu(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 Su=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Tu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":yS(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 yS(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 Iu(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 IE(e,t){return Iu(e,t,"DROP")}function wE(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 bE(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,p])=>{let c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:p.length,addRows:p.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function mS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function NE(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 PE(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],p=l===void 0?void 0:r.get(l),c=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,d=[];for(let f of o.replacementTables){let R=mS(p.record,f),E=new Set(R.map(b=>b.id).filter(b=>!!b)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],A=0,S=0,m=0,N=g.map((b,v)=>{let C=y[v]??{};return b.rowId&&E.has(b.rowId)?(A++,{rowId:b.rowId,record:C}):(b.rowId&&((i.get(b.rowId)??[]).some(D=>D.parentId!==l||D.table!==f)&&c.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}),m++),S++,{record:C})});u.set(f,N),d.push({table:f,existingRows:R.length,inputRows:g.length,updateRows:A,addRows:S,deleteRows:R.length-A,rowIdNotFound:m})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:c.length===0,top:o.top,subtables:u,tables:d,errors:c}})}var wu="#__import_source";function CE(e){return{...e,from:{appId:0,alias:null,cteName:wu}}}function AS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function bu(e,t){let n=e.map(AS),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 hS="\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",wn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Re=new WeakMap;function YE(e){return Re.get(e)}var Ln=new WeakMap,ns=new WeakMap,OE=new WeakMap,SS=1,TS=1;function jE(e,t){if(t)return t;let n=OE.get(e);return n||(n=`client:${SS++}`,OE.set(e,n)),n}function nc(e){return`${e}\0inv:${TS++}`}async function rc(e,t,n={}){let r=Date.now(),i=nc(jE(t,n.cacheContext));try{let o=pI(e,n.enableImport===!0),a=zE(),s=JE(t,a),l={aborted:!1},p=oc(s,l,!wS(o)||$l(o)),c=await _u(o,p,n,i);a.elapsedMs=Date.now()-r;let u={...XE(c,l),metrics:a};if(c.type==="SELECT"){let d=Re.get(c);d&&Re.set(u,d)}return u}finally{Ic(i)}}function zE(){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 qE=Symbol("limitMetricsSink");function ic(e,t){let n=e[qE];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function JE(e,t){return{[qE]: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 LE=Symbol("searchAbortFailClosed");function oc(e,t,n){return n&&e[LE]?e:{...e,...n?{[LE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new wn;return i}}}function IS(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 wS(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function XE(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(hS),{...e,warnings:[...n]}}async function _E(e,t,n){let r=await xi(e,t,n);return Eu(r),r}async function xi(e,t,n){return pE(e,{select:async r=>{let{resolver:i}=await Sn(r,t,n);return ge(r.where,i)},dml:r=>lR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Sn(r,t,n);return Ru(r,i)},joinServerFunctionPlan:async r=>{await Sn(r,t,n);let i=await is(r,t,n),o=rs(r,i);return o===null?null:(ir(o.joinPlan)&&Ec.set(r,o),o.joinPlan)}})}async function _u(e,t,n,r){let i=await xi(e,t,r);e.type!=="EXPLAIN"&&Eu(i);let o=vu(e);if(o!==null&&!WT(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Gn("phase15b",e),so("phase15b",e),Qe(e),e.type!=="EXPLAIN"&&await FS(e,t,r),e.type==="IMPORT")return LR(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 qu(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 bc(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 bS(e,t,n,r);case"SELECT":return Zt(Fu(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return SR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return hc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return xT(e,t,n,r);case"INSERT_SELECT":return Oc(e,t,n,r);case"UPSERT":return nI(e,t,n,r);case"UPSERT_SELECT":return Dc(e,t,n,r);case"UPDATE":return qu(e,t,n,r);case"DELETE":return tI(e,t,n,r);case"REORDER":return lI(e,t,n,r);case"SHOW_APPS":return kR(t);case"DESCRIBE":return MR(e,t,r);case"EXPLAIN":return yI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?qe(n.dmlMaxRows,"dmlMaxRows",kt):kt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne):Ne,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 nR(e,t,n,r)}}var ac=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],sc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function lc(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 QE(e=!1){let t=e?sc:ac;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:K(n==="$id"||n==="$err_count"?"number":"string")}]))}async function bS(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ZE(e,t,n,r)}async function ZE(e,t,n,r){let i=await te(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=kl(e,i),l=new Set(s.flatMap(O=>vl(O.field))),p={present:Dl.filter(O=>l.has(O)),absent:Dl.filter(O=>!l.has(O))},c=e.checkGroups??[],u=Xn(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw be(`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 d=new Map([...o].map(([O,F])=>[O,F.fieldType]));d.set("$id","RECORD_NUMBER"),On(e,d);let f=lc(e.where),R=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,g=O=>O.field==="$id"?ee({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ee(o.get(O.field)):void 0),y=ge(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(y)}).`);let A=new Map([...o].map(([O,F])=>[O,F.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),m=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:zs(e.where,{allowUnqualifiedFields:!0,fieldTypes:A,fieldOptions:S,allowKlike:!1}),N=m===null?"":H(m),v=(await ve(t.getRecords,e.appId,N,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Lt(O,null)})).filter(O=>e.where===null||ae(e.where,O.flat,F=>d.get(F.field))),C=[],k=new Map,D=new Map,P=new Set,U=0,w=O=>{if(P.add(O.id),U+=1,e.summary){let j=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),x=D.get(j);x?x.$err_count=String(Number(x.$err_count)+1):D.set(j,{$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]),V=k.get(F);V?(V.$err_count=String(Number(V.$err_count)+1),O.subrow!==void 0&&(V.$err_subrow=`${V.$err_subrow},${O.subrow}`,V.$err_subrow_id=`${V.$err_subrow_id},${O.subrowId??""}`)):k.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),h=new Map;for(let O of s){if(!O.subtableCode)continue;let F=h.get(O.subtableCode)??[];F.push(O),h.set(O.subtableCode,F)}for(let O of v){for(let F of _){let V=O.record[F.field.code]?.value,j=Fe(V,F.field,E);j.ok||w({id:O.id,field:F.field.code,code:j.code,message:j.message,value:Xr(V,F.field.fieldType)})}for(let[F,V]of h){let j=O.record[F]?.value;if(Array.isArray(j))for(let x=0;x<j.length;x++){let G=j[x];for(let J of V){let B=G.value?.[J.field.code]?.value,L=Fe(B,J.field,E);if(!L.ok){let W=aa(F,x,G);w({id:O.id,field:J.field.code,code:L.code,message:L.message,value:Xr(B,J.field.fieldType),...W})}}}}for(let F of jo(c,O.flat,V=>d.get(V.field)))w({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...D.values());else for(let O of k.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`),C.push(O)}let M={type:"SELECT",columns:[...e.summary?sc:ac],rows:C,rowCount:C.length,validateStats:{errorRecords:P.size,errorCount:U,constraintMetadata:p}};return Re.set(M,QE(e.summary===!0)),M}var ze=1e4;function mt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,p)=>l!==n[p])||!NS(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 NS(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!So(i.semantics,r.semantics))return!1}return!0}var ar=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function eR(e,t,n={}){let r=uc(e,n.enableImport===!0),i=ol(r);if(r.forEach(f=>so("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Os(f)||f.type==="UPSERT"&&PS(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Bl(r,n.variables),a=tR(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let R=r[f.index];if(!(R?.type==="UPDATE"&&R.from?.cteName!=null))throw new re(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=zE(),p=JE(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,d=nc(jE(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],g=new Set,y=null;for(let A=0;A<r.length;A++){let S=i.statements[A],m={index:A,type:S.statementType};if(y){E.push({...m,status:"skipped",skippedReason:y}),g.add(A);continue}let N=S.dependsOn.find(b=>g.has(b));if(N!==void 0){let b=i.statements[N].tempTablesCreated[0]??`statement ${N}`;E.push({...m,status:"skipped",skippedReason:`dependency: ${b}`}),g.add(A);continue}if(u!==null&&Date.now()>=u){E.push({...m,status:"skipped",skippedReason:"timeout"}),g.add(A),y="timeout";continue}try{let b=u!==null?u-Date.now():null,v=s.confirm,C=v?{...s,confirm:(w,_,h)=>v(w,_,{statementIndex:A,statementCount:r.length,statementType:S.statementType,targetAppId:S.targetAppId,...h?.importDetail?{importDetail:h.importDetail}:{},...h?.applyDetail?{applyDetail:h.applyDetail}:{},...h?.applyDiagnostic?{applyDiagnostic:h.applyDiagnostic}:{}})}:s,k={aborted:!1},D=oc(p,k,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||$l(r[A])),P=IS(D),U=await LS(CS(r[A],S,P.client,C,d,f,R,a),b,P.closeActive);U.result&&(U.result=XE(U.result,k)),E.push({...m,status:"success",...U})}catch(b){E.push({...m,status:"error",error:_S(b),...b instanceof Di?{result:b.diagnostic}:{}}),g.add(A),b instanceof ar?y="timeout":b instanceof lr?y="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:E.every(A=>A.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{Ic(d)}}function PS(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 CS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let p=za(e,a);if(Qe(p),await _E(p,n,i),p.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:p.expr.elements.map(c=>({type:"string",value:c.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let c=await rR(p.expr.query,n,r,i,o),u=p.expr.query.columns[0],d=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let R=(await Qa(p.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(c):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof hn?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,DE(p.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let p=r.variables??{};if(Object.prototype.hasOwnProperty.call(p,e.name))a.set(e.name,{type:"string",value:p[e.name]});else{let c=DE(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=za(e,a);if(Gn("phase15b",l),so("phase15b",l),Qe(l),await _E(l,n,i),l.type==="VALIDATE"){let p=await ZE(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&mt(o,l.errorTable,p.columns,p.rows,r.tempTableMaxRows??ze,Re.get(p)??QE(l.summary===!0)),{result:p}}if(l.type==="IMPORT")return{result:await LR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let p=await bc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&mt(o,l.validationErrorTable,p.columns,p.errors,r.tempTableMaxRows??ze,Ln.get(p)??new Map),{result:p}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await ju(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let p={...r,maxRecords:r.tempTableMaxRows??ze,onLimitReached:"error"},c=await OS(l.query,n,p,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:Re.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let p=l;tc.set(p,o);try{return{result:await _u(p,n,r,i)}}finally{tc.delete(p)}}if(l.type==="ASSERT")return await nR(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await vt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await hc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Oc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Dc(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await qu(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await _u(l,n,r,i)}}async function OS(e,t,n,r,i){return e.type==="WITH"?hc(e,t,n,r,i,!0):vt(e,t,n,i,r,!0)}async function LS(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new ar;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(p=>{l=setTimeout(p,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new ar)})()},t)})])}catch(a){throw a instanceof ar&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function _S(e){let t;if(e instanceof ft)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Nu(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:DS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Nu(r),message:r}}else{let n=String(e);t={code:Nu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Nu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function DS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function uc(e,t=!1){let n=new jt(e).tokenize();return new zt(n,{import:t}).parseStatements()}function vS(e,t){try{let n=uc(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function tR(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?vS(r.name,t[r.name]):r.default);return n}function DE(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:Y(e)};case"KINTONE_FUNC":return{type:"string",value:Fd(e.name)};case"STRING_FUNC":return{type:"string",value:de(e,{})};case"ARITH":{let t=pe(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 za(e,t){return Du(e,t,!1)}function Du(e,t,n){if(Array.isArray(e))return e.map(r=>Du(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,Du(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=US(i);if(o.type==="SELECT"&&Ye(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ye(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 Ye(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function US(e){if(e.type==="NOT"&&Ye(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ye(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ye(t,!1)||Ye(n,!1))return{type:"BOOLEAN",value:!1};if(Ye(t,!0))return n;if(Ye(n,!0))return t}else if(e.op==="OR"){if(Ye(t,!0)||Ye(n,!0))return{type:"BOOLEAN",value:!0};if(Ye(t,!1))return n;if(Ye(n,!1))return t}}return e}function vu(e){if(Array.isArray(e)){for(let t of e){let n=vu(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=vu(n);if(r!==null)return r}}return null}var lr=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},hn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function nR(e,t,n,r,i){let o=await xa(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?K("number"):K("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await xa(e.low,t,n,r,i),p=await xa(e.high,t,n,r,i);if(!cn(">=",o,l,a)||!cn("<=",o,p,a))throw new lr(`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 xa(e.right,t,n,r,i);if(!cn(e.op,o,s,a))throw new lr(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function xa(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return Y(e);case"STRING":return e.value;case"ARITH":return String(Uu(e));case"SCALAR_SUBQUERY":try{return await rR(e.query,t,n,r,i)}catch(o){throw o instanceof hn?new lr(o.message):o}}}async function rR(e,t,n,r,i){let{query:o,probed:a}=kS(e),s=await Ni(o,t,n,r,i);if(s.columns.length!==1)throw new hn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new hn("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 hn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function kS(e){return Z(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 Uu(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=Uu(e.left),n=Uu(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 Fi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Et(e.where)?[...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))]:[],s=new Map(await Promise.all(a.map(async d=>{let f=await te(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,p=d=>{if(Array.isArray(d)){d.forEach(p);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,g=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||g)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(p)};p(e.where),p(e.having);for(let d of e.columns)d.type==="CASE_COL"&&p(d.expr);let c=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let E=await wc(d,t,n);E&&c.set(d,E)}));let u=(d,f,R)=>{if(f==="$id")return Hn(ee({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return K("string");if(f==="_idx"||f==="_pid")return K("number")}let E=s.get(d.appId)?.get(fe(d,f));if(!E)return;let g=E.semantics??ee(E),y=E.fieldType==="STATUS"&&c.has(d.appId)?{...g,optionOrder:c.get(d.appId)}:g;return Hn(y,d.appId,E.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,d.field,!1);let R=o.find(E=>ye(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??K("string"):u(R,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(d.field)?.semantics??K("string"):u(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:u(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>$a(R,d.field)!==void 0))return f.length>1?K("string"):void 0}}var iR=new WeakMap;async function Sn(e,t,n,r,i=!1){let o=await Fi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Qp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&iR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function MS(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function oR(e){return MS(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function vE(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Ge(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ye(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Ge(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function UE(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3081\u3066\u3044\u308B\u306A\u3089\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function aR(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||vE(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+UE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||vE(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+UE(n,"VALUE"));return i}function cc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Re.get(e);return r&&Re.set(n,r),n}function pc(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=>Et(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function sR(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(Ge(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=K("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=K("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Nn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Nn(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"?K("string"):K("number"):r.type==="STRFUNC_COL"?i=bn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=K("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function Tn(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 qa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function lR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Et(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ge(null,()=>{}):ge(e.where,o=>{if(o.field==="$id")return ee({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ee(a):void 0)})}async function sr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await lR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ie(`WHERE predicate cannot be represented by kintone REST (${Tn(r)})`)}async function Zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,p=new Set;if(await Oi(e,t,r,i),BS(e))return l=VS(e),o&&Re.set(l,await Qa(e,l.columns,t,r,i,a)),l;let{resolver:c}=await Sn(e,t,r,i,oR(e)),u=aR(e,c,s),d=await ur(e,t,r,i);await xR(e,t,n,r,p,i);let f=oT(e,ge(e.where,c));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(f)}).`);let R=$e(e),E,g;if(f.capability==="SUPERSET_PREFILTER"){let C=await Fi(e,t,r,i),k=Ru(e,C);k.eligible&&fu(e,k)&&(E=k.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=H(e.where)}catch{C=null}g=Do({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Ae(e.where)})??void 0,g&&(E=g.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",A=await _i(e,t,r,i),S=qa(e)?(e.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:A.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ie(e.where)}):null,m=await YS(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),N=dc(e,n,S),v=g!==void 0&&(R==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?oc(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await HS(e,v,N.effectiveOptions,r,S,A):l=await lT(e,v,N.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,A,E,d)}catch(C){cR(N,C)}return o&&Re.set(l,await Qa(e,l.columns,t,r,i,a)),cc(l,[...p,...u,...m])}function ku(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function uR(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function ur(e,t,n,r){let i=Z(e);if(!Wn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await te(u.appId,t,n);if(!u.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let g=s.get(E.code)??[];g.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,uR(g))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}})),p=Op(e,(u,d)=>l[d]),c=vp(o,e.columns,p);return xS(e,o,c,s),wr(e,xp(e,c,p)),c}function xS(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let p=t[l],c=p?.type==="FIELD_NAME"?p.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,d=s.name.indexOf("."),f=d>=0?s.name.slice(d+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(ku(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${c} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${c} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${c} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Ci=new WeakMap;async function FS(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;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Oi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function GS(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let d=await te(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),s=(u,d)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,d)=>{if(d==="$id")return"$id";let f=fe(u,d);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},p=(u,d)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(d):!0},c=(u,d,f,R)=>{let E=i.filter(A=>A.cteName===null&&l(A,f.field)!==null).length,g=i.some(A=>p(A,f.field)),y=ye(u);return{canonicalId:`source:${d}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(S=>ye(S)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let A=l(y,u.field);if(A===null){let S=s(y,fe(y,u.field));throw S!==null&&S!==""?new Error(ku(u.field,[{appId:y.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return c(y,g,u,A)}let d=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let A=l(g,u.field);return A===null?[]:[{table:g,tableIndex:y,code:A}]}),f=i.filter(g=>p(g,u.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let g=d[0];return c(g.table,g.tableIndex,u,g.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,fe(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),E=uR(R);throw E.length>0?new Error(ku(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Oi(e,t,n,r){Ci.delete(e);let i=Z(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await GS(e,t,n,r),p=Kp(e,l,Gp);p&&Ci.set(e,p);return}if(!Wn(e))return;if(i.type==="NONE"){fo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await ur(e,t,n,r)}function KS(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":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 dc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?xt({...e,orderBy:[]}):xt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function cR(e,t){throw e.reasons.size>0&&t instanceof Me&&!t.completeInputWrapped?new Me(KS(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Mu(e,t){try{return await t()}catch(n){cR(e,n)}}function at(e){return e?.type==="BOOLEAN"&&e.value===!1}function BS(e){return e.from.appId===0&&e.from.cteName===Pe}function Ja(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"?Ja(e.left)||Ja(e.right):e.type==="STRING_FUNC"?fc(e):!1}function $S(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Si(e)}function Si(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?fc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Si(e.left)||Si(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"?Ja(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Si(n))):!1}function fc(e){return e.args.some(t=>$S(t))}function WS(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(Ja(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(fc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Si(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 VS(e){if(e.joins.length>0||e.where||Z(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.");WS(e);let t=ou([{}],e.columns),{rows:n,columns:r}=yn(t,e.columns),i=Na(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function HS(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?ER(e):e,s=mo(a),l=i?.kind==="CANONICAL_LOCAL"?sn(e,e.from):s.fields,p=await gc(e,t,r),c=mc(e,p),u=e.columns.some(C=>C.type==="CASE_COL")?await Fi(e,t,r,void 0,pc(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,g=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,A=e.orderBy.length===0&&y!==null&&y<=d&&!Ie(e.where)?y:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let C=await xf({client:t,app:s.app,fields:s.fields,query:Xl(e),offset:e.offset??0,limit:e.limit});S=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(g)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?H(e.where):"";S=await ve(t.getRecords,s.app,C,l,{parallel:E,maxRecords:d,stopAfter:A,onLimit:R,onTruncate:k=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${k} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${k} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(t,e.from.appId)}})}let m=S.map(C=>Lt(C,null));g||(m=ru(m,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,iu(e.columns,void 0,c.row,u)),m=Na(m,e.limit,e.offset));let{rows:N,columns:b}=yn(m,e.columns,void 0,c.row,void 0,u),v=await Sc(e,N,b,t,r);return{type:"SELECT",rows:N,columns:v,rowCount:N.length,warnings:[...f]}}async function YS(e,t,n,r){let i=[],o=new Map,a=(p,c)=>{if(c.length===0)return;let u=o.get(p);u||(u=new Set,o.set(p,u));for(let d of c)u.add(d)},s=new Map,l=(p,c)=>{let u=s.get(p);u||(u=new Set,s.set(p,u));for(let d of c)u.add(d)};if(t==="SIMPLE"){let p=mo(e);a(p.app,p.fields),e.from.subtableCode||l(p.app,p.fields)}else{let p=[e.from,...e.joins.map(c=>c.table)].filter(c=>c.cteName===null);for(let c of p){let u=sn(e,c);a(c.appId,u),c.subtableCode||l(c.appId,u)}}for(let[p,c]of o.entries()){let u=[...c].filter(g=>!Us(g));if(u.length===0)continue;let d=await te(p,n,r);if(d.length===0)continue;let f=new Set(d.map(g=>g.code)),R=u.filter(g=>!f.has(g));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${p})`);let E=s.get(p);if(E){let g=d.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of g){let A=y.subtableCode??"",S=A?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${A}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${p} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(A?`APP${p}$${A} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function kE(e){return e.cteName??`APP${e.appId}`}function jS(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function zS(e,t){return Us(t)||e.validCodes.has(t)}function Pu(e,t){return e.table.cteName!==null?e.validCodes.has(t):zS(e,t)}function qS(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 JS(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=ye(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Pe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:kE(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Pe)return;let d=await te(c.appId,t,r);s.set(c,{table:c,label:kE(c),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of jS(c.table))l.set(u,c);for(let c of e.joins)if(c.type!=="CROSS")for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let d=l.get(u.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Pu(d,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let p=Yp(e);for(let[c,u]of p.bySource){let d=s.get(c);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...u].filter(R=>!Pu(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let c of p.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Pu(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${d})`)}}async function Ba(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Ba(e.left,t,n,r,i),await Ba(e.right,t,n,r,i);return}await JS(e,t,n,r);for(let o of qS(e))await Ba(o,t,n,r,i)}}function pR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Dr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Dr(e.where,{tableAlias:e.from.alias}):null}function Ti(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Ti(e.left)||Ti(e.right):e.type==="GROUP"||e.type==="NOT"?Ti(e.expr):!1}var Ec=new WeakMap;function rs(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=_f(e.where,r),o=Df(i,r),a=new Map,s=new Map;for(let[f,R]of o.fetchQueriesByAlias)s.set(f,R);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,rr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,p=a.get(l)??null,c=new Map(a);c.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:p,mainRelation:d,joinConditions:c,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function is(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let p=r.get(s);p?p.push(l):r.set(s,[l])};if(i(e.from.appId,pR(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[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=Dr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[p,c]=await Promise.all([Le(s,t,n),fT(s,t,n)]),u=XS(l).filter(d=>p.get(d)==="STATUS");if(u.length>0){let d=await as(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(R=>R.name));for(let R of u)c.set(R,f)}}return[s,p,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function XS(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 Dt(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"&&Xa(e.left.expr,t),e.right.type==="CASE_VALUE"&&Xa(e.right.expr,t);return;case"LOGICAL":Dt(e.left,t),Dt(e.right,t);return;case"NOT":case"GROUP":Dt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Xa(e,t){for(let n of e.branches)Dt(n.condition,t)}function QS(e){let t=[];Dt(e.where,t),Dt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Xa(n.expr,t);return t}function ye(e){return e.alias??e.cteName}function dR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ye(n)===t)}function Rc(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function gc(e,t,n){let r=QS(e);if(r.length===0)return new Map;let i=new Set,o=Rc(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=dR(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 Le(s,t,n)]));return new Map(a)}function Ge(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 yc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||mn(t,n)}function mn(e,t){if(e.type==="FIELD_REF"){t.push(Ge(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){mn(e.left,t),mn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){mn(e.left,t),mn(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&mn(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?cr(n,t):n.type!=="ARRAY"&&mn(n,t)}function cr(e,t){if(e.type==="AGG_REF"){yc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(cr(e.left,t),cr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function xu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")cr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Ii(n,t)}}function Ii(e,t){if(e.type==="STRING_FUNC"){xu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ii(e.left,t),Ii(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"?xu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?cr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ii(r,t)}}function ZS(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;yc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function eT(e){let t=[];for(let n of e)n.type==="AGGREGATE"?yc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?cr(n.expr,t):n.type==="STRFUNC_COL"?xu(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ii(n.expr,t):n.type==="CASE_COL"&&ZS(n.expr,t);return t}var tT=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function nT(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":tT.has(e.fieldType)?"string":void 0}async function fR(e,t,n,r){let i=eT(e.columns);if(i.length===0)return;let o=new Set,a=Rc(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 R=dR(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await te(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,p=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...p].some(g=>R.get(g)?.fieldType==="STATUS"))return;let E=await wc(f,t,n);E&&l.set(f,E)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ee(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let g=c.find(y=>ye(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??K("string");R=s.get(g.appId)?.get(fe(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??K("string");R=s.get(e.from.appId)?.get(fe(e.from,f.field))}else{let g=c.flatMap(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??K("string")]:[]}let A=s.get(y.appId)?.get(fe(y,f.field));return A?[u(A,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!R)return;let E=f.tableAlias!==null?c.find(g=>ye(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function fe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function $a(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ke(e,t){let n=e.semantics??ee(e);return{sortKind:nT(e),fieldType:e.fieldType,semantics:t===void 0?n:Hn(n,t,e.code)}}function ER(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:K(e)}}function je(){return{semantics:K("string","KSQL_UNKNOWN")}}function RR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function it(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ee({fieldType:"__ID__"})};if(e==="_rid")return Q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Q("number")}var rT=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function bn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Q("number"):Q("string")}return rT.has(e.func)?Q("number"):Q("string")}function pr(e,t){return e.type==="STRING"?Q("string"):e.type==="ARRAY"?RR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?je():Nn(e.arg,t):e.func==="GROUP_CONCAT"?Q("string"):Q("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Q("number"):e.type==="STRING_FUNC"?bn(e):e.type==="FIELD_REF"?t(Ge(e.field))??je():e.type==="FIELD"?t(e)??je():je()}function os(e){if(e.length===0)return je();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&&So(n(r.semantics),n(t.semantics)))?e.every(i=>So(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?RR("KSQL_MIXED_UNSUPPORTED"):je()}function Nn(e,t){if(e.type==="FIELD_REF")return t(Ge(e.field))??je();if(e.type==="FIELD")return t(e)??je();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 bn(e);let n=e.branches.map(r=>pr(r.result,t));return e.elseResult&&n.push(pr(e.elseResult,t)),os(n)}function gR(e,t){return e.windowKind==="VALUE"?Nn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Q("number"):e.arg.type==="WILDCARD"?je():Nn(e.arg,t):Q("number")}function Wa(e,t){return{...e??{},displayName:t}}function iT(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function Qa(e,t,n,r,i,o=!1){let a=new Map;iT(e)&&await Promise.all(Rc(e).map(async E=>{if(a.has(E.appId))return;let g=await te(E.appId,n,r);a.set(E.appId,new Map(g.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),p=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(E.field);return S?ke(S,e.from.appId):void 0}let y=s.find(S=>ye(S)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let A=a.get(y.appId)?.get(fe(y,E.field));return A?ke(A,y.appId):it(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let y=a.get(e.from.appId)?.get(fe(e.from,E.field));return y?ke(y,e.from.appId):it(E.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let m=i?.get(y.cteName);return m?.columns.includes(E.field)?[m.columnMeta?.get(E.field)]:[]}let A=a.get(y.appId)?.get(fe(y,E.field)),S=A?ke(A,y.appId):it(E.field);return S?[S]:[]});return g.length===1?g[0]:void 0},c=E=>{if(!l)return;let g=s.filter(y=>{if(E.tableAlias!==null&&ye(y)!==E.tableAlias)return!1;let A=fe(y,E.field);return a.get(y.appId)?.has(A)===!0||it(E.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(E,g)=>{let y=c(g);return E&&y!==void 0?{...E,publicSourceApp:y}:E},d=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let g=Ge(E),y=u(p(g),g);d.set(E,Wa(y,y?.displayName??E))}return d}if(f)for(let E of t){let g=Ge(E),y=u(p(g),g);d.set(E,Wa(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,g)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[g];if(!y)return;let A;if(E.type==="FIELD"){let S=Ge(E.field);A=u(p(S),S)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?A=Q("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?A=Q("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(A=Nn(E.arg,p));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")A=Q("number");else if(E.type==="GROUPING_COL")A=Q("number");else if(E.type==="LITERAL_COL")A=Q("string");else if(E.type==="SCALAR_VALUE_COL"){let S=E.expr;S.type==="STRING_FUNC"?A=bn(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?A=Q("number"):S.type==="FIELD"?A=p(S):A=Q("string")}else if(E.type==="STRFUNC_COL")A=bn(E.expr);else if(E.type==="WINDOW_COL")A=gR(E,p);else if(E.type==="CASE_COL"){let S=E.expr.branches.map(m=>pr(m.result,p));E.expr.elseResult&&S.push(pr(E.expr.elseResult,p)),A=os(S)}else E.type==="SCALAR_SUBQUERY_COL"&&(A=je());d.set(y,Wa(A,E.aliasDisplay??y))}),d}function yR(e,t){let n=Re.get(e),r=Re.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],p=l===void 0?void 0:r?.get(l),c;if(s&&p){let u=os([s,p]),d=s.publicSourceApp===p.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;c=d===void 0?R:{...R,publicSourceApp:d}}else c=je();i.set(o,Wa(c,s?.displayName??o))}),i}function mc(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 p=n.find(c=>ye(c)===s.tableAlias);return!p||p.cteName!==null?void 0:$a(p,s.field)??t.get(p.appId)?.get(fe(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:$a(e.from,s.field)??t.get(e.from.appId)?.get(fe(e.from,s.field));if(n.some(p=>p.cteName!==null))return;let l=r.flatMap(p=>{let c=$a(p,s.field)??t.get(p.appId)?.get(fe(p,s.field));return c?[c]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var mR=new WeakSet,Ac=new WeakMap;function Fu(e){return mR.add(e),e}function oT(e,t){return Ac.set(e,t),t}function AR(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&&Z(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function aT(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function sT(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":H(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new wn;if(!aT(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=yn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function lT(e,t,n,r,i,o=!0,a,s,l){let p=Ac.get(e);if(mR.has(e)&&p!==void 0&&AR(e,p)){let L=await sT(e,t);if(L!==null)return L}let c=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([ki(e.where,t,n,r,u,i),ki(e.having,t,n,r,u,i)]);let[f,R,E]=await Promise.all([is(e,t,r),gc(e,t,r),fR(e,t,r,i)]),g=mc(e,R),y=await Fi(e,t,r,i,Et(e.having)||pc(e)),A=sR(e,y),S=Ec.get(e);if(S&&!ir(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let m=S??rs(e,f)??ln(e,f);Xs(m);let N="joinPlan"in m?m:null,b=N&&ir(N.joinPlan)?N:null,v=t,C=m.mainCondition,k=m.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let D=s?s.prefilterWhere:b?null:C,P=b?.queriesByAlias.get(e.from.alias)??"",U=await GR(e.columns,t,n,r,u,i),w=at(e.where),_=w?Promise.resolve([]):wi(e,e.from,v,c,d,!0,n.onLimitReached??"error",u,D,b?!1:o,l,P),h=[],I=[];for(let L of e.joins){if(w){h.push({join:L,promise:Promise.resolve([])});continue}let W=L.table.alias?b?.queriesByAlias.get(L.table.alias)??"":"",Se=b?null:L.table.alias?k.get(L.table.alias)??null:null;Se!==null||W!==""?h.push({join:L,promise:wi(e,L.table,v,c,d,!1,n.onLimitReached??"error",u,Se,!0,l,W)}):I.push(L)}let M=a?Promise.resolve(a):_i(e,t,r,i);M.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:W}of h)F.set(L.table.alias,await W);await Promise.all(I.map(async L=>{let Se=await bR(e,L,F,v,c,d,n.onLimitReached??"error",u,r,i,null,l,"")??await wi(e,L.table,v,c,d,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,Se)}));let{optionOrders:V,sortKinds:j,semantics:x}=await M,{rows:G,columns:J}=lu({tables:F,stmt:e,scalarCache:U,optionOrders:V,sortKinds:j,orderSemantics:x,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:A,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??m.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:Ci.get(e),plainGroupByPlan:l,warnings:u}),B=await Sc(e,G,J,t,r);return{type:"SELECT",rows:G,columns:B,rowCount:G.length,warnings:[...u]}}function hR(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
11
+ UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}async function SR(e,t,n,r,i=!1,o=!1){let a=dc(e,n,null);return Mu(a,async()=>{let s=a.effectiveOptions,[l,p]=await Promise.all([e.left.type==="UNION"?SR(e.left,t,s,r,i,o):Zt(Fu(e.left),t,s,r,void 0,i,o,"DERIVED"),Zt(Fu(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=p.columns;hR(c,u);let d=p.rows.map(y=>{let A={};return c.forEach((S,m)=>{A[S]=y[u[m]??S]??""}),A}),f=[...l.rows,...d],R=e.all?f:TR(f,c),E=[...new Set([...l.warnings??[],...p.warnings??[]])],g={type:"SELECT",rows:R,columns:c,rowCount:R.length,warnings:E};return i&&Re.set(g,yR(l,p)),g})}function TR(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 hc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&$t(e))return Zt(Wt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let p of e.ctes){let c;p.query.type==="SHOW_APPS"?c=await kR(t):p.query.type==="DESCRIBE"?c=await MR(p.query,t,r):p.query.type==="GENERATE_SERIES"?c=IR(p.query):c=await vt(p.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(p.name,{rows:c.rows,columns:c.columns,columnMeta:Re.get(c),...p.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:p.query.columnAlias}:{}})}let l=await vt(e.query,t,n,a,r,o);return cc(l,[...s])}function IR(e){let t=Go(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:ee({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ee({fieldType:"DATE"})};return Re.set(n,new Map([[e.columnAlias,r]])),n}async function vt(e,t,n,r,i,o=!1,a=!1){if(a||await Ba(e,t,r,i),e.type==="UNION"){let[p,c]=await Promise.all([vt(e.left,t,n,r,i,o,!0),vt(e.right,t,n,r,i,o,!0)]),u=p.columns,d=c.columns;hR(u,d);let f=c.rows.map(A=>{let S={};return u.forEach((m,N)=>{S[m]=A[d[N]??m]??""}),S}),R=[...p.rows,...f],E=e.all?R:TR(R,u),g=[...new Set([...p.warnings??[],...c.warnings??[]])],y={type:"SELECT",rows:E,columns:u,rowCount:E.length,warnings:g};return o&&Re.set(y,yR(p,c)),y}if(!(e.from.cteName!=null&&e.from.cteName!==Pe||e.joins.some(p=>p.table.cteName!=null)))return Zt(e,t,n,i,r,o,!1,"DERIVED");let l=await uT(e,t,n,r,i);return o&&Re.set(l,await Qa(e,l.columns,t,i,r)),l}async function uT(e,t,n,r,i){await Oi(e,t,i,r);let o=Ci.get(e),a=await ur(e,t,i,r),s=new Set,l=B=>{if(B.alias!==null||B.cteName===null)return B;let L=ye(B);return s.add(L),{...B,alias:L}};e={...e,from:l(e.from),joins:e.joins.map(B=>({...B,table:l(B.table)}))};let p=new Set;for(let B of[e.from,...e.joins.map(L=>L.table)]){let L=ye(B);if(L!==null){if(p.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);p.add(L)}}let c=B=>{let L=r.get(B);if(!L)throw new Error(`ArgumentError: materialized source ${B} is not available.`);return L};for(let B of[e.from,...e.joins.map(L=>L.table)])B.cteName!==null&&c(B.cteName);let{resolver:u}=await Sn(e,t,i,r,oR(e)),d=aR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([ki(e.where,t,n,i,R,r),ki(e.having,t,n,i,R,r),xR(e,t,n,i,R,r)]);let g=ge(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(g)}).`);let y=await _i(e,t,i,r),A=qa(e)?(e.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Ie(e.where)}):null,S=dc(e,n,A),m=S.effectiveOptions,[N,b,v]=await Promise.all([is(e,t,i),gc(e,t,i),fR(e,t,i,r)]),C=mc(e,b),k=await Fi(e,t,i,r,Et(e.having)||pc(e)),D=sR(e,k),P=rs(e,N)??ln(e,N);Xs(P);let U=t,w=await GR(e.columns,t,m,i,R,r),_=Promise.resolve(y);_.catch(()=>{});let h=new Map,I=new Map;if(e.from.cteName!=null){let B=c(e.from.cteName);h.set(e.from.alias,B.rows.map(ME)),I.set(e.from.alias,B.columns)}else{let B=await Mu(S,()=>wi(e,e.from,U,f,E,!0,m.onLimitReached??"error",R,P.mainCondition,g.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,B)}let M=e.joins.map(B=>Mu(S,async()=>{if(B.table.cteName!=null){let L=c(B.table.cteName);h.set(B.table.alias,L.rows.map(ME)),I.set(B.table.alias,L.columns)}else{let L=B.table.alias?P.joinConditions.get(B.table.alias)??null:null,Se=await bR(e,B,h,U,f,E,m.onLimitReached??"error",R,i,r,L,a)??await wi(e,B.table,U,f,E,!1,m.onLimitReached??"error",R,L,!0,a);h.set(B.table.alias,Se)}}));await Promise.all(M);let{optionOrders:O,sortKinds:F,semantics:V}=await _,j=e.joins.length===0&&e.from.cteName!=null?c(e.from.cteName).columns:void 0,{rows:x,columns:G}=lu({tables:h,stmt:e,scalarCache:w,optionOrders:O,sortKinds:F,orderSemantics:V,fieldTypeResolver:C.row,fieldSemanticsResolver:k,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:D,aggregateSortKindResolver:v,appliedKlikes:P.appliedKlikes,sourceColumns:j,tableColumns:I,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),J=await Sc(e,x,G,t,i);return cc({type:"SELECT",rows:x,columns:J,rowCount:x.length,warnings:[...R]},d)}async function Sc(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await te(e.from.appId,r,i);return Gf(o,e.from.subtableCode,()=>as(e.from.appId,r,i))}function ME(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function wi(e,t,n,r,i,o,a,s,l=null,p=!0,c,u=""){let d=sn(e,t,c),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(n,t.appId),Nf(e,t,o))throw new Me(`\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&&p?Vp(e,t.appId).query:"",A=[l!==null?H(l):"",u].filter(b=>b!==""),S=A.length>1?A.map(b=>`(${b})`).join(" and "):A[0]??"",m=y&&S?`(${y}) and (${S})`:y||S;return(await et(n.getRecords,t.appId,m,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&p&&e.joins.length===0&&e.where!==null&&Ac.get(e)?.capability==="EXACT_PUSHDOWN"&&!It(e.where)?H(e.where):"",g=(await et(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return iE(g,t.subtableCode)}var wR=50;function cT(e){let t=Te(e);return t!==null?JSON.stringify(t):e}function Gu(e){return JSON.stringify(e)}function Pn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?cT(n):n))}function Gi(e,t){let n=e.raw.get(Gu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Pn(t,e.numericKey))}async function Ki(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},c=(g,y,A)=>{let S=g.get(y);(S===void 0||A>S)&&g.set(y,A)},u=(g,y)=>{c(p.raw,Gu(g),y),l.some(Boolean)&&c(p.normalized,Pn(g,l),y)},d=new Set,f=[],R=new Set;for(let g of n){let y=Gu(g);R.has(y)||(R.add(y),g.some(A=>A==="")?f.push(g):d.add(g[0]))}let E=["$id",...t];for(let g of Bi([...d],wR)){let y=`${t[0]} in (${g.map(Li).join(",")})`,A=await ve(r.getRecords,e,y,E,{maxRecords:a,parallel:s});for(let S of A){let m=Number(S.$id?.value);Number.isFinite(m)&&u(t.map(N=>Tc(S[N]?.value)),m)}}for(let g of f){let y=t.map((S,m)=>`${S} = ${Li(g[m])}`).join(" and "),A=await ve(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});A.length!==0&&u(g,pT(A))}return p}function pT(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 Tc(e){return typeof e=="string"?e:e==null?"":String(e)}function Li(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Bi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var dT=6,Va=pa*dT;async function bR(e,t,n,r,i,o,a,s,l,p,c=null,u,d=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,g,y;if(f===t.table.alias&&R!==t.table.alias)E=R,g=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,g=t.on.left.field,y=t.on.right.field;else return null;let A=n.get(E);if(!A)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>ye(h)===E),m=(await te(t.table.appId,r,l)).find(h=>h.code===fe(t.table,y)),N=m?ke(m,t.table.appId):it(y),b;if(S?.cteName!==null&&S?.cteName!==void 0)b=p?.get(S.cteName)?.columnMeta?.get(g);else if(S){let h=(await te(S.appId,r,l)).find(I=>I.code===fe(S,g));b=h?ke(h,S.appId):it(g)}let v=[],C=!1;for(let h of A){let I=h[g]?.value,M=Tc(I);(I==null||M.length===0)&&(C=!0),v.push(M)}let k=Hl({fieldType:N?.fieldType,sourceSemantics:b?.semantics,sourceRowCount:A.length,values:v,hasEmptyValue:C,maxInKeys:Va});if(k.kind==="EMPTY_SOURCE")return[];if(k.kind==="FALLBACK"){if(k.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${h} \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 ${Va} \u4EF6\uFF09\u3002`)}return null}if(k.kind==="RANGE_CANDIDATE")return null;let D=Vl(k,y,Li);if(D.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \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 ${Va} \u4EF6\uFF09\u3002`),null;let P=sn(e,t.table,u),U=h=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${h} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${h} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ic(r,t.table.appId)},w=[],_=new Set;for(let h of D){let M=[c!==null?H(c):"",d].filter(F=>F!=="").reduce((F,V)=>`(${F}) and (${V})`,h),O=await et(r.getRecords,t.table.appId,M,P,{parallel:o,maxRecords:i,onLimit:a,onTruncate:U});for(let F of O.records){let V=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(V)||(_.add(V),w.push(F))}}return w}var Ku=new Map,Bu=new Map,$u=new Map,Wu=new Map,Vu=new Map,Hu=new Map;function Ic(e){Ku.delete(e),Bu.delete(e),$u.delete(e),Wu.delete(e),Vu.delete(e),Hu.delete(e)}function dr(e,t,n){return e.get(t)?.get(n)}function fr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=dr(Wu,n,e);if(r)return r;let i=t.getFields(e);return fr(Wu,n,e,i),i}async function At(e,t,n){let r=dr(Hu,n,e);if(r)return r;let i=t.getNumberPrecision(e);return fr(Hu,n,e,i),i}async function as(e,t,n){let r=dr(Vu,n,e);if(r)return r;let i=t.getProcessStatuses(e);return fr(Vu,n,e,i),i}async function wc(e,t,n){let r=await as(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Le(e,t,n){let r=dr(Ku,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return fr(Ku,n,e,o),o}async function Yu(e,t,n){let r=dr(Bu,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return fr(Bu,n,e,o),o}async function fT(e,t,n){let r=await Yu(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function xE(e,t,n){let r=dr($u,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return fr($u,n,e,o),o}function ET(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 RT(e,t,n,r){let i=ET(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let d=await te(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ke(E,e.from.appId):void 0}let f=o.find(E=>ye(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(fe(f,u.field));return R?ke(R,f.appId):it(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(fe(e.from,u.field));return f?ke(f,e.from.appId):it(u.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(fe(f,u.field)),E=R?ke(R,f.appId):it(u.field);return E?[E]:[]});return d.length>1&&a.add(u.field),d.length===1?d[0]:void 0},p=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let d;if(u.type==="FIELD")d=l(Ge(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")d=Q("number");else if(u.type==="WINDOW_COL")d=gR(u,l);else if(u.type==="GROUPING_COL")d=Q("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")d=Q("string");else if(u.type==="STRFUNC_COL")d=bn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")d=je();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>pr(R.result,l));u.expr.elseResult&&f.push(pr(u.expr.elseResult,l)),d=os(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(d=Nn(u.arg,l)):d=u.func==="GROUP_CONCAT"?Q("string"):Q("number"));d?.semantics&&p.set(u.alias,d.semantics)}let c=new Map;for(let u of i){let d=p.get(u)??l(Ge(u))?.semantics;if(!d){let R=Ge(u);R.tableAlias===null&&a.has(R.field)&&c.set(u,ee({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await as(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}c.set(u,f)}return c}async function _i(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([gT(e,t,n),yT(e,t,n),RT(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function gT(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 Yu(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Yu(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}async function yT(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 xE(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await xE(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}function NR(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 mT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function AT(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||mT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function st(e,t,n,r){let i=await te(e,n,r);return AT(e,t,i),i}async function Ut(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?At(e,r,i):void 0}function Cn(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),p=o[s]?.value??"",c=Fe(p,l,r);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:u?p:c.value}}})}async function hT(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=await Zr({statement:e,fieldInfos:o,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return JT(e,a,o)}async function ST(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await PR(e,t,n,r,i);return QT(e,a,o)}async function PR(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=vR(e),l=new Set;for(let g of s){let y=Pn(g,e.keyFields.map(A=>a.get(A)==="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 p=await Ki(e.appId,e.keyFields,s,t,n,a),c=s.map(g=>Gi(p,g)),u=new Map,d=[...new Set(c.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of Bi(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let A of y.records){let S=Number(A.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,A)}}let R=c.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),E=await Af({statement:e,matches:R,fieldInfos:o,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function TT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await st(e.appId,e.fields,t,r),o=await Zr({statement:e,fieldInfos:i,dmlMaxRows:qe(n.dmlMaxRows,"dmlMaxRows",kt),dmlMaxSubtableRows:qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),loadNumberPrecision:()=>At(e.appId,t,r)}),a=Gl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ss(a),applyDiagnostic:a}))throw new Ee("INSERT",o.guards.parentRows);let s=await wf(o,t,a);return{...s,diagnostic:Ve(a,s)}}async function IT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await PR(e,t,n,r,1),o=Kl(i);if(n.confirm){let s=ss(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Ee("UPDATE",i.guards.parentRows)}let a=await bf(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:Ve(o,a)}}function wT(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 ss(e,t=!0){let n=e.branches.find(d=>d.branch==="insert"),r=e.branches.find(d=>d.branch==="update"),i=e.branches.flatMap(d=>d.targets),o=wT(n?Fa(n):[],r?Fa(r):[]),a=bT(i),s=e.branches.reduce((d,f)=>d+(f.parentRows??0),0),l=i.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0),p=o.reduce((d,f)=>d+f.appendRows,0),c=o.reduce((d,f)=>d+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:p,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:c,deletedParentRows:e.branches.reduce((d,f)=>d+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(d=>d.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let d=Fa(n),f=Fa(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((R,E)=>R+E.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function Fa(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=In(t,"APPEND"),r=In(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function In(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function bT(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:In(n,"ADD"),removedValues:In(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 bc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return hT(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return ST(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await DR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Nc(e,t,n,r,i,o)).result}var Di=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Nc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let c=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await st(e.appId,c,t,r);e.type==="UPDATE"&&await sr(e,t,r);let d=new Map(u.map(_=>[_.code,_])),f=await Ut(e.appId,c,u,t,r),R=pt(u,p),E=oE(R),g=(await NT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((_,h)=>_.rowNumber-h.rowNumber),y=g.filter(_=>_.mode==="update"),A=e.type==="UPDATE"?OT:e.type.startsWith("UPSERT")?_=>LT(_,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??A,m=y.length>0&&S!==void 0,N=new Map;if(m){Ll(y,c,u);let _=await S({appId:e.appId,candidates:y,fields:E}),h=new Map;for(let I of y){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let M=_.get(I.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let O=aE(M,I.record??{});h.set(I.rowNumber,O)}f===void 0&&[...h.values()].some(I=>fn(I,R))&&(f=await At(e.appId,t,r));for(let I of y){let M=h.get(I.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);N.set(I.rowNumber,En(M,R,f,o,I.rowNumber,l))}}let b=_l(g,l,p,c,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!m}),{errors:v,invalidRows:C,invalidRowNumbers:k}=b;if(m){let _=new Map(b.candidateResults.map(h=>[h.rowNumber,h]));v=[],k=new Set;for(let h of g){let I=_.get(h.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...I.preErrors,...I.builtInErrors,...I.checkErrors];v.push(...F),F.length>0&&k.add(h.rowNumber);continue}let M=N.get(h.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let O=sE({rowNumber:h.rowNumber,setFields:c,normalizedPostImage:M.normalizedRecord,preErrors:I.preErrors,postImageErrors:M.errors,checkErrors:I.checkErrors});h.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)k.add(F)}C=k.size}let D=[...p,...Zn],P={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-C,invalidRows:C,errorCount:v.length,columns:D,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let _ of p){if(_==="$id"){U.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ee({fieldType:"RECORD_NUMBER"})});continue}let h=d.get(_);h&&U.set(_,ke(h,e.appId))}let w=new Set(["$err_statement","$err_row"]);for(let _ of Zn)U.set(_,Q(w.has(_)?"number":"string"));return Ln.set(P,U),{result:P,candidates:g,invalidRowNumbers:k,columnMeta:U}}async function ju(e,t,n,r,i,o){let a=await Nc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");mt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??ze,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Di(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(p.length,R))throw new Ee(R,p.length)}let c={affectedRows:p.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<p.length;E+=100){let g=await t.postRecords({app:e.appId,records:p.slice(E,E+100).map(y=>y.record)});R.push(g.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...c}}if(e.type==="UPDATE"){let R=p.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...c}}let u=p.filter(R=>R.mode==="create"),d=p.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(g=>g.record)});f+=E.ids.length}for(let R=0;R<d.length;R+=100)await t.putRecords({app:e.appId,records:d.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...c}}async function NT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return CT(e,n,r,i,o,s);let l,p,c,u,d;if(e.type==="INSERT"||e.type==="UPSERT")FE(e,e.fields),d=new Map(e.fields.map(m=>[m,a.get(m)?.fieldType??""])),On(e,d),l=e.values.map(m=>m.map((N,b)=>N.type==="CASE_VALUE"?Jt(N.expr,{},a.get(e.fields[b])?.fieldType):N));else{let m=await Cc.materialize(e,n,r,i,o,[...a.values()]),N=(e.checkGroups?.length??0)>0;if(m.columns.length<e.fields.length||!N&&m.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${m.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(N&&new Set(m.columns).size!==m.columns.length)throw be("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");FE(e,m.columns),p=m.rows,c=m.importPresence,u=m.importRowErrors;let b=m.columnMeta;d=new Map(m.columns.map(v=>{let C=b?.get(v),k=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,k]})),On(e,d),l=m.rows.map(v=>m.columns.map(C=>v[C]??""))}let f=l.map((m,N)=>({rowNumber:N+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,v)=>c&&!c[N]?.has(b)?[]:[[b,m[v]]])),preErrors:[...u?.[N]??[]],record:{},evaluationRow:p?.[N]??Object.fromEntries(e.fields.map((b,v)=>[b,ct(m[v])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;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 R=new Map([...a].map(([m,N])=>[m,N.fieldType])),E=f.map(m=>e.keyFields.map(N=>ct(m.payload.get(N)))),g=e.keyFields.map(m=>R.get(m)==="NUMBER"),y=new Map;for(let m of E){let N=Pn(m,g);y.set(N,(y.get(N)??0)+1)}let A=ns.has(e);if(A&&[...y.values()].some(m=>m>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let S=await Ki(e.appId,e.keyFields,E,n,r,R);return f.forEach((m,N)=>{let b=E[N],v=Gi(S,b);m.mode=v===void 0?"create":"update",v!==void 0&&(m.targetId=v),e.keyFields.forEach((C,k)=>{b[k]===""&&m.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!A&&(y.get(Pn(b,g))??0)>1&&m.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 Pc(e){return e.checkGroups?Xn(e.checkGroups):[]}function FE(e,t){let n=new Set(t);for(let r of Pc(e)){if(r.tableAlias!==null)throw be(`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 be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var PT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function On(e,t){if(e.checkGroups)for(let n of Gd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(PT.has(i??""))throw be(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function CT(e,t,n,r,i,o){if(e.from)return DT(e,e.from,t,n,r,i,o);await FR(e.assignments,t,n,r);let a=await Le(e.appId,t,r),s=CR(e,a);On(e,zu(a,e.appId));let l,p=new Map,c=new Map;if(Xo(e)){let u=El(e),d=[...new Set([...u.fields,...s,...o??[]])],f=await et(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(f.records),p=c,l=gl(e,f.records,a).flatMap(R=>R.records)}else{let u=Vr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await et(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(f.records),p=c,l=Hr(e,[...p.keys()],a).flatMap(R=>R.records)}else if(o){let d=await et(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=Ha(d.records),l=Hr(e,[...c.keys()],a).flatMap(f=>f.records)}else{let d=await fa(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Hr(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((u,d)=>u.id-d.id).map((u,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:c.get(u.id),evaluationRow:_T(p.get(u.id),e.appId),evaluationFieldTypes:zu(a,e.appId)}))}function Ha(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 OT(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 LT(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 Me(`\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 Bi(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 p=l.$id?.value,c=Number(p);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function CR(e,t){if(e.from)return[];let n=new Set;for(let r of Pc(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw be(`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 be(`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 _T(e,t){if(!e)return{};let n=Lt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function zu(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function DT(e,t,n,r,i,o,a){let s=await ZR(e,t,n,i,o);On(e,s.evaluationTypes);let l=await OR(e,t,n,r,i,o,a),p=await Le(e.appId,n,i),c=ml(e,l,p).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Ha(l.map(f=>f.target)):new Map;return c.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:MI(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var vT=wR,UT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function OR(e,t,n,r,i,o,a){let s=await kT(e,t,n,i),l=await ZR(e,t,n,i,o),p=[...new Set(e.assignments.filter(N=>N.value.type==="SOURCE_FIELD").map(N=>N.value.type==="SOURCE_FIELD"?N.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...p])],u=await MT(t,c,p,n,r,i,o),d=new Map,f=new Map;for(let N of u){if(!Object.prototype.hasOwnProperty.call(N,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=GE(N[t.joinKeyField],s,"source");if(d.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);d.set(b,N),f.set(b,String(N[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...eI(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":Vr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],A=new Set,S=0;for(let N of Bi([...f.values()],vT)){let b=`${t.targetJoinField} in (${N.map(Li).join(",")})`,v=g?`(${b}) and (${g})`:b,C=await et(n.getRecords,e.appId,v,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=C.records.length,S>R)throw new Me(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \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 k of C.records){let D=k.$id?.value;if(typeof D!="string"||D==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");A.has(D)||(A.add(D),y.push(k))}}let m=[];for(let N of y){let b=N[t.targetJoinField]?.value,v=GE(b,s,"target");if(v===null)continue;let C=d.get(v);C!==void 0&&m.push({target:N,source:C})}return m}async function kT(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function MT(e,t,n,r,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!c.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return c.rows}let s=await Le(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let c of n){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let u=c==="$id"?"RECORD_NUMBER":s.get(c);if(UT.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${c}).`)}return(await et(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>Lt(c,null))}function GE(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=Te(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function $i(e,t,n,r,i){let o=await Nc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new Ee(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<u.length;d+=100)await t.putRecords({app:e.appId,records:u.slice(d,d+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),p=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),c=0;for(let u=0;u<l.length;u+=100){let d=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});c+=d.ids.length}for(let u=0;u<p.length;u+=100)await t.putRecords({app:e.appId,records:p.slice(u,u+100)});return{type:"UPSERT",insertedCount:c,updatedCount:p.length}}async function xT(e,t,n,r){if(e.applyBlocks?.length)return TT(e,t,n,r);if(e.checkGroups?.length)return $i(e,t,n,r);if(e.subtableCode)return rI(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Ut(e.appId,e.fields,i,t,r),a=await Le(e.appId,t,r),s=Jo(e,a);Cn(s.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of s){let c=await t.postRecords(p);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function FT(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Pe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function LR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=dE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!x.has(G)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let G of e.targets.filter(J=>J.kind==="SUBTABLE"))if(!G.rowIdSourceHeader||!e.replaceSubtables.includes(G.subtableCode))throw new Error(`ArgumentError: CSV subtable ${G.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,d=await te(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=d.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,E=await va(o,new Map),g=e.source.kind==="JSON"?yE(e.source,E,u,n.maxRecords??1e4):mE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",A=TE(g,u,d,R,y);if(e.source.kind==="CSV")return GT(e,g,A,d,t,n,i);hu(A,e.rejectLimit);let S=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],m=Tu(A.errors,S),N=[...S,...Su],b=A.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:A.parents.length,valid:A.parents.length-b,invalid:b,mutationCandidates:A.parents.filter(x=>x.valid).length},tables:Object.fromEntries(A.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:y,validatedRows:A.parents.length,validRows:A.parents.length-b,invalidRows:b,errorCount:m.length,columns:N,errors:m,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&mt(i,e.validationErrorTable,N,m,n.tempTableMaxRows??ze,new Map),e.validateOnly)return C;if(wE(g),A.errors.length>0&&!e.onErrorSkip){let x=A.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");mt(i,e.errorTable,N,m,n.tempTableMaxRows??ze,new Map)}let k=A.parents.filter(x=>x.valid),D=new Map(d.map(x=>[x.code,x.fieldType])),P=k.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(L=>D.get(L)==="NUMBER"),G=new Set,J=k.map(L=>e.keyFields.map(W=>String(L.top[W]?.value??"")));for(let L of J){let W=Pn(L,x);if(G.has(W))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(W)}let B=await Ki(e.appId,e.keyFields,J,t,n,D);J.forEach((L,W)=>{P[W]=Gi(B,L)})}let U=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),w=new Map,_=P.filter(x=>x!==void 0);for(let x of Bi([...new Set(_)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let J of G.records){let B=Number(J.$id?.value),L=Number(J.$revision?.value);Number.isFinite(B)&&w.set(B,{id:B,...Number.isFinite(L)?{revision:L}:{},record:J})}}let h=bE(k,P,w),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(x=>x.mode==="INSERT").length,updatedParents:h.filter(x=>x.mode==="UPDATE").length,hasDeletes:h.some(x=>x.tables.some(G=>G.deleteRows>0)),parents:h.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new Ee(e.keyFields?"UPDATE":"INSERT",h.length)}let M=x=>new Map(Object.entries(x).map(([G,J])=>[G,J.value])),O=x=>IE(M(x.top),new Map([...x.subtables].map(([G,J])=>[G,J.map(B=>({values:M(B)}))]))),F=h.filter(x=>x.mode==="INSERT"),V=h.filter(x=>x.mode==="UPDATE"),j=[];for(let x=0;x<F.length;x+=100){let G=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(O)});j.push(G.ids)}for(let x=0;x<V.length;x+=100)await t.putRecords({app:e.appId,records:V.slice(x,x+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:O(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:j.flat().length,updatedCount:V.length,affectedRows:h.length,skippedRows:A.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:j,insertedCount:j.flat().length,affectedRows:h.length,skippedRows:A.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return KT(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:FT(),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};ns.set(s,l);let p=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await bc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&mt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??ze,Ln.get(u)??new Map),p(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",ju(s,t,n,r,i,1));return p(u)}let c=await(s.type==="UPSERT_SELECT"?Dc(s,t,n,r,i):Oc(s,t,n,r,i));return p(c)}async function GT(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");NE(t.records);let s=t.records.map(w=>w.recordNumberSourceValue??""),l=bu(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],c=[...new Set(r.filter(w=>!w.inSubtable&&w.fieldType==="SUBTABLE").map(w=>w.code))],u=await ve(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let w of u){let _=Number(w.$id?.value),h=Number(w.$revision?.value);if(Number.isFinite(_)){d.set(_,{id:_,...Number.isFinite(h)?{revision:h}:{},record:w});for(let I of c){let M=w[I]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:I}),f.set(O.id,F)}}}}}let R=l.normalized.map(w=>w===null?void 0:Number(w)),E=n.parents.map((w,_)=>{let h=[...w.errors];for(let M of l.errors[_])h.push({operation:"UPDATE",parentRow:w.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[_].top});let I=R[_];return I!==void 0&&!d.has(I)&&h.push({operation:"UPDATE",parentRow:w.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...w,valid:h.length===0,errors:h}}),g=PE(t.records,E,R,d,f),y=g.flatMap(w=>[...w.errors]),A=new Set(g.filter(w=>!w.valid).map(w=>w.parentRow)),S={...n,parents:E,errors:y,invalidParentRows:A};hu(S,e.rejectLimit);let m=g.filter(w=>w.valid),N=g.flatMap(w=>w.tables),b=(w,_)=>N.filter(h=>h.table===w).reduce((h,I)=>h+Number(I[_]),0),v=Object.fromEntries(p.map(w=>[w,{existingRows:b(w,"existingRows"),inputRows:b(w,"inputRows"),updateRows:b(w,"updateRows"),addRows:b(w,"addRows"),deleteRows:b(w,"deleteRows"),rowIdNotFound:b(w,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:m.length,insertedParents:0,updatedParents:m.length,hasDeletes:m.some(w=>w.tables.some(_=>_.deleteRows>0)),totalDeleteRows:m.flatMap(w=>w.tables).reduce((w,_)=>w+_.deleteRows,0),rowIdNotFound:m.flatMap(w=>w.tables).reduce((w,_)=>w+_.rowIdNotFound,0),invalidParents:A.size,parents:m.map(w=>({parentRow:w.parentRow,mode:"UPDATE",targetId:w.targetId,tables:w.tables}))},k=[...new Set(e.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children))],D=Tu(y,k),P=[...k,...Su];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&mt(a,e.validationErrorTable,P,D,o.tempTableMaxRows??ze,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-A.size,invalidRows:A.size,errorCount:D.length,columns:P,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:m.length,invalid:A.size,mutationCandidates:m.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let w=y[0];throw new Error(`DmlValidationError: ${w.code} ${w.message} (row=${w.parentRow}, field=${w.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");mt(a,e.errorTable,P,D,o.tempTableMaxRows??ze,new Map)}if(m.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(m.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new Ee("UPDATE",m.length)}let U=w=>new Map(Object.entries(w).map(([_,h])=>[_,h.value]));for(let w of m){let _=Iu(U(w.top),new Map([...w.subtables].map(([h,I])=>[h,I.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:U(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:w.targetId,...w.revision===void 0?{}:{revision:w.revision},record:_}]})}return{type:"UPDATE",updatedCount:m.length,affectedRows:m.length,skippedRows:A.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function KT(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 st(e.appId,e.fields,n,i),s=await Ut(e.appId,e.fields,a,n,i),l=await va(t,new Map),p=yu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=p.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let u=bu(c,e.recordNumberSourceHeader),d=new Set,f=[...new Set(u.normalized.filter(C=>C!==null))];for(let C=0;C<f.length;C+=100){let k=f.slice(C,C+100),D=await n.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id"]});for(let P of D.records){let U=P.$id?.value;typeof U=="string"&&U!==""&&d.add(U.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(C=>[C.code,C])),E=new Map(e.fields.map(C=>[C,R.get(C)?.fieldType??"SINGLE_LINE_TEXT"])),g=p.rows.map((C,k)=>{let D=u.normalized[k],P=[...p.importRowErrors?.[k]??[],...u.errors[k]];return D!==null&&!d.has(D)&&P.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${D} does not exist in APP${e.appId}`}),{rowNumber:k+1,operation:"UPDATE",mode:"update",...D!==null&&d.has(D)?{targetId:Number(D)}:{},payload:new Map([[e.recordNumberSourceHeader,c[k]],...e.fields.map(U=>[U,C[U]??""])]),preErrors:P,record:{},evaluationRow:C,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],A=_l(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...Zn],m={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-A.invalidRows,invalidRows:A.invalidRows,errorCount:A.errors.length,columns:S,errors:A.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(m,{importAudit:p.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&mt(o,e.validationErrorTable,S,A.errors,r.tempTableMaxRows??ze,new Map),m}if(!e.onErrorSkip&&A.invalidRows>0){let C=A.errors[0];throw new Error(`DmlValidationError: ${C.$err_code} ${C.$err_message} (row=${C.$err_row}, field=${C.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(mt(o,e.errorTable,S,A.errors,r.tempTableMaxRows??ze,new Map),e.rejectLimit!=null&&A.invalidRows>e.rejectLimit)throw new Di(`rejected rows (${A.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,m)}let N=g.filter(C=>!A.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(N.length,"UPDATE"))throw new Ee("UPDATE",N.length);let b=N.map(C=>({id:C.targetId,record:C.record}));for(let C=0;C<b.length;C+=100)await n.putRecords({app:e.appId,records:b.slice(C,C+100)});let v={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:A.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:p.importAudit}),v}async function BT(e,t,n,r,i,o){let a=ns.get(e);if(!a){let E=i&&i.size>0?await vt(e.select,t,n,i,r,!0):await Zt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:Re.get(E)}}let s=await va(a.handle,a.cache),l=n.maxRecords??1e4,p=new Map((o??[]).map(E=>[E.code,E])),c=e.fields.map(E=>({code:E,fieldType:p.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?gu(a.source,s,c,l):yu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let d=CE(a.source.projection),f=new Map(i??[]);f.set(wu,u);let R=await vt(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:Re.get(R)}}var Cc={materialize:BT};function _R(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 Oc(e,t,n,r,i){if(e.checkGroups?.length)return $i(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Ut(e.appId,e.fields,o,t,r),s=await Cc.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(_R(s),p.length!==e.fields.length){let f=p.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${p.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 Ee("INSERT",l.length);let c=await Le(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((g,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(g))return;let A=f[p[y]]??"";E[g]={value:NR(A,c.get(g))}}),E});u.forEach(f=>Cn([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});d.push(E.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function qu(e,t,n,r,i){if(e.applyBlocks?.length)return DR(e,t,n,r);if(e.checkGroups?.length&&at(e.where)){let R=await st(e.appId,e.assignments.map(g=>g.field),t,r);await Ut(e.appId,e.assignments.map(g=>g.field),R,t,r);let E=await Le(e.appId,t,r);return CR(e,E),On(e,zu(E,e.appId)),await sr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return $i(e,t,n,r,i);if(e.subtableCode)return await sr(e,t,r),iI(e,t,n,r);let o=await st(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await Ut(e.appId,a,o,t,r);if(await sr(e,t,r),at(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return ZT(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await FR(e.assignments,t,n,r);let p=await Le(e.appId,t,r);if(Xo(e)){let R=El(e),g=(await et(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=gl(e,g,p);if(Cn(y.flatMap(A=>A.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new Ee("UPDATE",g.length);for(let A of y)await t.putRecords(A);return{type:"UPDATE",updatedCount:g.length}}let c=Vr(e),d=(await fa(t.getRecords,c.app,c.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Hr(e,d,p);if(Cn(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new Ee("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function DR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Tt(e.where))return $T(e,t,n,r,i);let o=await te(e.appId,t,r),a=Ct(e,o),s=Zo(e,o),l=wl(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(p.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(p.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let c=Number(p.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);ra(p.records[0]);let u=nf({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),d=pt(o,e.assignments.map(N=>N.field)),f=fn(u.postImage,d)?await At(e.appId,t,r):void 0,R=En(u.postImage,d,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=qe(n.dmlMaxRows,"dmlMaxRows",kt),g=qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),y=u.parentRows>E||u.changedSubtableRows>g;if(e.validateOnly){let N=ti({plans:[u],records:qr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:vi(N.branches[0]),guards:Ui(N.branches[0]),deletedRows:{total:u.tables.reduce((v,C)=>v+C.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:N};return Ln.set(b,ls(R.columns,o,e.appId)),b}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let A=ta(u,R.normalizedRecord),S=qr(A),m=ti({plans:[A],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});if(n.confirm){let N=ss(m,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:N,applyDiagnostic:m}))throw new Ee("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Ve(m,{successfulChunks:1,successfulParents:u.parentRows})}}async function $T(e,t,n,r,i){let o=qe(n.dmlMaxRows,"dmlMaxRows",kt),a=qe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),s=await te(e.appId,t,r),l=Ct(e,s),p;if(Za(e))p=await YT(e,t,n,s,r);else{let f=Zo(e,s),R=Vr(e).query,E=o+1;p=await ve(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&p.length>o)throw new Error(`ArgumentError: APPLY parent rows (${p.length}) exceed dmlMaxRows (${o}).`);let c=await sa({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});if(e.validateOnly)return XT(e,c,s);yp("phase15b",e);let u=ti(c);if(n.confirm){let f=ss(u);if(!await n.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new Ee("UPDATE",c.guards.parentRows)}let d=await If(c,t,u);return{...d,diagnostic:Ve(u,d)}}function Za(e){return(e.applyBlocks?.length??0)>0&&!Tt(e.where)&&(Gt(e.where)||Ie(e.where))}function WT(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Za(t)&&Ie(t.where)}var VT=`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
12
12
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
13
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function VT(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${$T}`)}async function WT(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),p=Jl(e.where,{fieldTypes:s,fieldOptions:l});VT(p);let c=p.prefilter===null?"":H(p.prefilter),u=new Set(Zo(e,r));for(let R of HT(e.where))u.add(R);let d=await YT(e.appId,e.where,a,t,i);return(await ve(t.getRecords,e.appId,c,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Lt(R,null)})).filter(({row:R})=>ae(e.where,R,d.fieldTypeResolver,p.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function HT(e){return lc(e)}async function YT(e,t,n,r,i){let s=[...jT(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await wc(e,r,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":n.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return Hn(ee({fieldType:"__ID__"}),e,"$id");let u=n.get(c.field);if(!u)return;let d=u.semantics??ee(u),f=u.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return Hn(f,e,u.code)}}}function jT(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 zT(e,t,n){let r=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,u)=>c+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...pt(n,e.fields).payloadFields,...Qr],a=t.guards.parentRows,s=Gl(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:vi(l),guards:Ui(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Ln.set(p,ls(o,n,e.appId)),p}function qT(e,t,n){let r=t.validations,i=r.flatMap(p=>p.errors),o=r.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...pt(n,e.assignments.map(p=>p.field)).payloadFields,...Qr],s=ti(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:vi(s.branches[0]),guards:Ui(s.branches[0]),deletedRows:{total:t.plans.reduce((p,c)=>p+c.tables.reduce((u,d)=>u+d.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return Ln.set(l,ls(a,n,e.appId)),l}function JT(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...pt(n,e.fields).payloadFields,...Qr],l=Kl(t),p=l.branches.find(R=>R.branch==="insert"),c=l.branches.find(R=>R.branch==="update"),u=vi(p),d=vi(c),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...d],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:Ui(p)},update:{apply:d,guards:Ui(c)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((g,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Ln.set(f,ls([...s],n,e.appId)),f}function vi(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:In(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:In(t,"ADD"),removedValues:In(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Ui(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 kt=100,Ne=500;function qe(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 ls(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:ee({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,Ue(s,n));continue}o.set(a,Q(i.has(a)?"number":"string"))}return o}async function XT(e,t,n,r,i,o){let a=await CR(e,t,n,r,i,o),s=await Le(e.appId,n,i),l=ml(e,a,s),p=e.assignments.map(d=>d.field),c=await te(e.appId,n,i),u=await Ut(e.appId,p,c,n,i);if(Cn(l.flatMap(d=>d.records.map(f=>f.record)),p,c,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new fe("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function QT(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 ZT(e,t,n,r){if(await sr(e,t,r),at(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return rI(e,t,n,r);let i=zd(e),a=(await fa(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 fe("DELETE",a.length);let s=qd(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function eI(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ST(e,t,n,r);if(e.checkGroups?.length)return $i(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Ut(e.appId,e.fields,i,t,r),a=[],s=[],l=await Le(e.appId,t,r),p=DR(e),c=await Ki(e.appId,e.keyFields,p,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((g,y)=>{let m=d[y];m.type==="CASE_VALUE"?R[g]={value:Jt(m.expr,{},l.get(g))}:R[g]={value:Pt(m,l.get(g))}});let E=Gi(c,p[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),Cn([...a,...s.map(d=>d.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let d=a.length+s.length;if(!await n.confirm(d,"UPDATE"))throw new fe("UPDATE",d)}let u=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100)});u.push(f.ids)}for(let d=0;d<s.length;d+=100)await t.putRecords({app:e.appId,records:s.slice(d,d+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function DR(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"?Y(i):i.type==="CASE_VALUE"?xe(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Lc(e,t,n,r){if(t.length===0)return;let i=await Le(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 tI(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 ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=us(a),l=new Map;for(let c of e.values){let u=GE(c[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,g)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:GE(c[g])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let p=[];for(let[c,u]of l.entries()){let d=s.get(c),R=[...Vi(d,i),...u];p.push(vR(e.appId,c,Wi(d),i,R))}for(let c of p)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function nI(e,t,n,r){let i=e.subtableCode;if(!bi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Dt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&Xa(d.value.expr,o);let a=await Lc(e.appId,o,t,r),s=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=_c(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new fe("UPDATE",p.length);let c=new Map;for(let d of p){if(!d.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=c.get(d.parentId);f||(f=new Map,c.set(d.parentId,f));let R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:Qo(E.value,d.flat,a)}}f.set(d.rowId,R)}let u=us(s);for(let[d,f]of c.entries()){let R=u.get(d);if(!R)continue;let g=Vi(R,i).map(y=>{let m=y.id??"";if(!m)return y;let S=f.get(m);return S?{id:m,value:S}:{id:m}});await t.putRecords(iI(e.appId,d,Wi(R),i,g))}return{type:"UPDATE",updatedCount:p.length}}async function rI(e,t,n,r){let i=e.subtableCode;if(!bi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Dt(e.where,o);let a=await Lc(e.appId,o,t,r),s=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=_c(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(p.length,"DELETE"))throw new fe("DELETE",p.length);let c=new Map;for(let d of p){let f=c.get(d.parentId);f?f.push(d.rowIndex):c.set(d.parentId,[d.rowIndex])}let u=us(s);for(let[d,f]of c.entries()){let R=u.get(d);if(!R)continue;let E=Vi(R,i),g=new Set(f),y=E.filter((m,S)=>!g.has(S));await t.putRecords(vR(e.appId,d,Wi(R),i,y))}return{type:"DELETE",deletedCount:p.length}}function us(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function _c(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Wi(r),a=Vi(r,t);for(let s=0;s<a.length;s++){let l=a[s],p={...ea(l,s),_pid:i};for(let[c,u]of Object.entries(r))c!==t&&(p[`_p.${c}`]=Ju(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return n}function Vi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Wi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function vR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function iI(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function oI(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 GE(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?Y(e):e.type==="CASE_VALUE"?xe(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Ju(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 bi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return bi(e.left)||bi(e.right);case"NOT":case"GROUP":return bi(e.expr);default:return!1}}async function aI(e,t,n,r){let i=[];Dt(e.where,i);let o=await Lc(e.appId,i,t,r),a=await te(e.appId,t,r);if(at(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ee(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return K("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??K("string")},p=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=_c(p,e.subtableCode),u=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&ae(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new fe("UPDATE",u.size);let d=us(p);for(let f of u){let R=d.get(f);if(!R)continue;let g=Vi(R,e.subtableCode).map((m,S)=>({row:m,i:S,flat:sI(R,e.subtableCode,m,S)}));g.sort((m,S)=>lI(m.flat,S.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(oI(e.appId,f,Wi(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function sI(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}`]=Ju(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Ju(a?.value);return i}function lI(e,t,n,r){for(let i of n){let o=KE(i.key,e),a=KE(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ge(i.key.name)):i.key.type==="ARITH_KEY"?K("number"):i.key.type==="FUNC_KEY"?bn(i.key.expr).semantics??K("string"):K("number"),l=Ze(o,a,s??K("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function KE(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ce(e.expr,t));case"FUNC_KEY":return pe(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Dc(e,t,n,r,i){if(e.checkGroups?.length)return $i(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Ut(e.appId,e.fields,o,t,r),s=await Cc.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(LR(s),p.length!==e.fields.length){let y=p.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${p.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let c=[],u=[],d=await Le(e.appId,t,r),f=l.map((y,m)=>{let S={};return e.fields.forEach((A,N)=>{if(s.importPresence&&!s.importPresence[m]?.has(A))return;let b=y[p[N]]??"";S[A]={value:bR(b,d.get(A))}}),S});f.forEach(y=>Cn([y],e.fields.filter(m=>m in y),o,a));let R=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(ns.has(e)){let y=e.keyFields.map(S=>d.get(S)==="NUMBER"),m=new Set;for(let S of R){let A=Pn(S,y);if(m.has(A))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");m.add(A)}}let E=await Ki(e.appId,e.keyFields,R,t,n,d);if(f.forEach((y,m)=>{let S=Gi(E,R[m]);S!==void 0?u.push({id:S,record:y}):c.push(y)}),n.confirm&&c.length+u.length>0){let y=c.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new fe("UPDATE",y)}let g=[];for(let y=0;y<c.length;y+=100){let m=await t.postRecords({app:e.appId,records:c.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var vc=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),Uc=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function UR(e){let t=await e.getApps(),n=[...vc],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 kR(e,t,n){let r=await te(e.appId,t,n),i=[...Uc],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function uI(e,t=!1){try{let n=new jt(e).tokenize(),r=new zt(n,{import:t}).parse();return Gn("phase15b",r),Qe(r),r}catch(n){throw n instanceof Oe||n instanceof T,n}}async function ki(e,t,n,r,i){let o=[];Ya(e,t,n,r,o,i),await Promise.all(o)}async function MR(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(ki(s.condition,t,n,r,i));await Promise.all(o)}function Ni(e,t,n,r,i){return i!==void 0&&i.size>0?vt(e,t,n,i,r):Zt(e,t,n,r)}function Ya(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Ni(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(p=>p[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Ni(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":Ya(e.left,t,n,r,i,o),Ya(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Ya(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Ni(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function xR(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Zt(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 FR(e,t,n,r,i){let o=new Map,a=[];for(let p=0;p<e.length;p++){let c=e[p];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(c.query),d=o.get(u);d||(d=Ni(c.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let R=f.columns[0]??"";return f.rows[0]?.[R]??""}),o.set(u,d)),a.push([p,d])}let s=await Promise.all(a.map(([,p])=>p)),l=new Map;return a.forEach(([p],c)=>l.set(p,s[c])),l}var GR=new WeakMap,KR=new WeakMap,BR=new WeakMap,Xu=new WeakMap,kc=new WeakMap,$R=new WeakMap,VR=new WeakMap;async function WR(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,p={...t,getFields:async C=>(a.add(C),t.getFields(C)),getProcessStatuses:async C=>(s.add(C),t.getProcessStatuses(C)),getNumberPrecision:async C=>(l.add(C),t.getNumberPrecision(C))},c=new Map,u=new Map,d=new Map,f=new Set,R=i??await xi(e,p,n),E=C=>R.nodes.find(U=>U.source===C||JSON.stringify(U.source)===JSON.stringify(C)),g=new Map(o??[]),y=new Set(o?.keys()??[]),m=new Map([...o??new Map].map(([C,U])=>[C,U.rows.length])),S=new WeakMap,A=C=>ye(C)??(C.appId>0?`APP${C.appId}`:"source"),N=C=>C.cteName===Pe?1:C.cteName!==null?m.get(C.cteName)??null:null,b=C=>{let U=N(C.from),w=A(C.from),D=[];for(let I of C.joins){let M=N(I.table),O=A(I.table);if(I.type==="CROSS"){let F=U!==null&&M!==null?ni(U,M):null;D.push({leftLabel:w,rightLabel:O,leftRows:U,rightRows:M,plan:F,rightRuntimeLabel:I.table.cteName===null?`APP${I.table.appId} fetched rows`:`${O} materialized rows`}),U=F?.outputRows??null,w=`${w} \xD7 ${O}`}else U=null,w=`${w} ${I.type} JOIN ${O}`}if(D.length>0&&kc.set(C,D),at(C.where)?U=0:C.where!==null&&(U=null),(Z(C).type!=="NONE"||C.distinct||C.having!==null||Vn(C)||C.columns.some(I=>I.type==="WINDOW_COL"))&&(U=null),U!==null){let I=C.offset??0;U=Math.max(0,U-I),C.limit!==null&&(U=Math.min(U,C.limit)),S.set(C,U)}},v=async C=>{let U=[C.from,...C.joins.map(D=>D.table)];if(U.length>1&&C.columns.some(D=>D.type==="WILDCARD"||D.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let w=[];for(let D of U){if(D.cteName!==null){if(D.cteName===Pe)continue;let I=g.get(D.cteName);if(!I)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${D.cteName}.`);w.push(...I.columns);continue}let h=await te(D.appId,p,n);D.subtableCode?(w.push(...h.filter(I=>I.inSubtable&&(I.subtableCode===D.subtableCode||I.subtableCode===void 0)).map(I=>I.code)),w.push("_pid","_rid","_idx"),w.push(...h.filter(I=>!I.inSubtable).map(I=>`_p.${I.code}`))):(w.push(...h.filter(I=>!I.inSubtable).map(I=>I.code)),w.push(...uo))}return[...new Set(w)]},P=async C=>{if(C===null||typeof C!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let U=C;if(U.type==="SELECT"){let w=C,D=await v(w);if(w.columns.length===1&&w.columns[0].type==="WILDCARD")return D;let h=[];for(let I of w.columns)I.type==="WILDCARD"?h.push(...D):I.type==="PARENT_WILDCARD"?h.push(...D.filter(M=>M.startsWith("_p."))):h.push(...yn([],[I]).columns);return h}if(U.type==="UNION")return P(U.left);if(U.type==="SHOW_APPS")return[...vc];if(U.type==="DESCRIBE")return[...Uc];if(U.type==="GENERATE_SERIES")return[C.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},k=async C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){for(let w of C)await k(w);return}let U=C;if(U.type==="WITH"){let w=C;for(let D of w.ctes){if(await k(D.query),D.query.type==="GENERATE_SERIES"){if(D.query.args.some(M=>M.type==="VARIABLE")){g.set(D.name,{rows:[],columns:[D.query.columnAlias]});continue}let I=TR(D.query);g.set(D.name,{rows:I.rows,columns:I.columns,columnMeta:Re.get(I),uniqueGeneratedColumn:D.query.columnAlias}),y.add(D.name),m.set(D.name,I.rows.length);continue}let h=await P(D.query);if(g.set(D.name,{rows:[],columns:h}),D.query.type==="SELECT"){let I=S.get(D.query);I!==void 0&&m.set(D.name,I)}}await k(w.query);return}if(U.type==="UNION"){await k(U.left),await k(U.right);return}if(U.type==="SELECT"){let w=C;b(w);for(let I of w.columns)I.type==="SCALAR_SUBQUERY_COL"&&await k(I.query);if(await k(w.where),await k(w.having),await Oi(w,p,n,g),![w.from,...w.joins.map(I=>I.table)].some(I=>I.cteName!==null&&!g.has(I.cteName))){let I=await ur(w,p,n,g);I&&d.set(w,I)}return}for(let w of Object.values(U))await k(w)};await k(e);let _=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(_));return}let U=C;if(U.type==="SELECT"){let w=C;await Oi(w,p,n);let D=[w.from,...w.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(Z(w).type==="PLAIN"&&!D){let L=await ur(w,p,n);L&&d.set(w,L)}let h=[w.from,...w.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Et(w.where)||w.orderBy.length>0||w.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&h.forEach(L=>a.add(L));let{resolver:M,rewrites:O}=await Sn(w,p,n);O.length>0&&Xu.set(w,O);let F=ge(w.where,M),W=E(w);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(F)}).`);c.set(w,F);let j=await is(w,p,n),G=Ec.get(w)??rs(w,j);G&&GR.set(w,G);let J=G??ln(w,j);KR.set(w,J);let B=new Map;for(let L of w.joins){let V=L.table.alias;if(L.type!=="INNER"||!V||L.table.subtableCode)continue;let he=L.on.left.tableAlias,lt=L.on.right.tableAlias;if(!he||!lt)continue;let yr=he===V&&lt!==V?lt:lt===V&&he!==V?he:void 0,oe=he===V?L.on.right.field:L.on.left.field,tn=he===V?L.on.left.field:L.on.right.field;if(!yr)continue;let Mt=[w.from,...w.joins.map(De=>De.table)].find(De=>ye(De)===yr),jc=(await te(L.table.appId,p,n)).find(De=>De.code===de(L.table,tn)),Cg=jc?Ue(jc,L.table.appId):it(tn),As,hs,zc,qc;if(Mt?.cteName!==null&&Mt?.cteName!==void 0){let De=g.get(Mt.cteName);As=De?.columnMeta?.get(oe),y.has(Mt.cteName)&&De&&(zc=De.rows.length,hs=De.rows.map(ht=>Tc(ht[oe])),qc=hs.some(ht=>ht.length===0))}else if(Mt){let De=(await te(Mt.appId,p,n)).find(ht=>ht.code===de(Mt,oe));As=De?Ue(De,Mt.appId):it(oe)}let Qi=Hl({fieldType:Cg?.fieldType,sourceSemantics:As?.semantics,sourceRowCount:zc,values:hs,hasEmptyValue:qc,maxInKeys:Wa});if(Qi.kind==="FALLBACK"&&Qi.reason==="JOIN_KEY_VALUES_RUNTIME"&&(G?.joinPlan.items.some(ht=>ht.targetAlias===V)||G?.joinPlan.serverFunctionConsumptions.some(ht=>ht.targetAlias===V)))continue;let Og=Wl(Qi,tn,Li),Jc=J.joinConditions.get(V),Lg=Jc?H(Jc):void 0,_g=J.joinRelations.get(V);B.set(V,{plan:Qi,queries:Og,additionalQuery:Lg,additionalRelation:_g})}if(B.size>0&&BR.set(w,B),w.orderBy.length>0||w.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await _i(w,p,n);if(w.orderMode!=="KINTONE_NATIVE")for(let V of L.semantics.values())V.fieldType==="STATUS"&&V.source&&s.add(V.source.appId);if(qa(w)&&!D&&W?.allowed!==!1){let V=F.capability==="EXACT_PUSHDOWN"?$e(w):"FULL_SCAN";u.set(w,(w.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:w,staticMode:V,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:Te(w.where)}))}}}else if(U.type==="VALIDATE"){let w=C;a.add(w.appId);let D=await te(w.appId,p,n),h=new Map(D.filter(L=>!L.inSubtable).map(L=>[L.code,L])),I=new Set(D.filter(L=>L.inSubtable).map(L=>L.code)),M=kl(w,D),O=Xn(w.checkGroups??[]),F=lc(w.where);for(let L of O){if(L.field!=="$id"&&!h.has(L.field)&&!I.has(L.field))throw we(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${w.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!h.has(L.field)&&I.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let L of F){if(L!=="$id"&&!h.has(L)&&!I.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${w.appId}.`);if(L!=="$id"&&!h.has(L)&&I.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...h].map(([L,V])=>[L,V.fieldType]));W.set("$id","RECORD_NUMBER"),On(w,W);let j=ge(w.where,L=>L.field==="$id"?ee({fieldType:"__ID__"}):h.get(L.field)?.semantics??(h.has(L.field)?ee(h.get(L.field)):void 0));if(j.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(j)}).`);let x=new Map([...h].map(([L,V])=>[L,V.fieldType])),G=new Map([...h.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),J=w.where===null?null:j.capability==="EXACT_PUSHDOWN"?w.where:zs(w.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:G,allowKlike:!1}),B=M.some(L=>L.field.fieldType==="NUMBER");B&&(l.add(w.appId),await At(w.appId,p,n)),$R.set(w,{targetFields:M.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...M.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(M.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,M.filter(V=>V.subtableCode===L).length])),capability:j,prefilter:J,numberPrecision:B})}else if(U.type==="UPDATE"||U.type==="DELETE"){if(a.add(C.appId),U.type==="UPDATE"&&C.applyBlocks?.length){let D=C,h=await te(D.appId,p,n);if(Ct(D,h),Za(D)){let I=h.filter(O=>!O.inSubtable),M=Jl(D.where,{fieldTypes:new Map(I.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(I.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});VR.set(D,M)}}let w=C;(w.type!=="UPDATE"||!Za(w))&&E(w)?.allowed!==!1&&await sr(w,p,n)}await Promise.all(Object.values(U).map(_))};if(await _(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&$t(e)){let C=Vt(e),{resolver:U,rewrites:w}=await Sn(C,p,n);w.length>0&&Xu.set(C,w);let D=ge(C.where,U),h=E(C);if(D.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(D)}).`);if(c.set(C,D),qa(C)&&h?.allowed!==!1){let I=await _i(C,p,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:C,staticMode:D.capability==="EXACT_PUSHDOWN"?$e(C):"FULL_SCAN",whereCapability:D.capability,whereReasons:D.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:Te(C.where)}))}}return{capabilities:c,orderPlans:u,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Qu(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 cI(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 BE(e){return e==="<>"?"!=":e}function rt(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(rt).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return rt(t.expr);case"GROUPING_FIELD":return`GROUPING(${rt(t.ref)})`;case"GROUPING_REF":return rt(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${rt(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${rt(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(rt).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(rt).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function An(e){try{let t=e;switch(t.type){case"BINARY":return`${rt(t.left)} ${cI(t.op)} ${rt(t.right)}`;case"NULL_CHECK":return`${rt(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${An(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${An(t.right)})`;case"NOT":return`NOT (${An(t.expr)})`;case"GROUP":return`(${An(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Zu(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(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?pI(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 p=Ou(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Cu(p)}: ${p}`,` ${Lu(p)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${c}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":An(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(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=Ou(s),p=s.left.type==="FIELD"?s.left.field:void 0,c=BE(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(p===void 0||d.field===p)&&d.operator===c);t.push(` ${Cu(l)}: ${l}`,` ${Lu(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??p??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${$E(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=Ou(s),p=s.left.type==="FIELD"?s.left.field:void 0,c=BE(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(p===void 0||d.field===p)&&d.operator===c);t.push(` ${Cu(l)}: ${l}`,` ${Lu(l)}: kintone server exact prefilter`,` field: ${u?.field??p??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=H(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${An(o.residualWhere)}`,` ${$E(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(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 pI(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,p=l?.type==="KINTONE_FUNC"&&l.name===t,c=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((p||c)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Cu(e){return ne(e)?"relative date function":"kintone function"}function Ou(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 Lu(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function $E(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var HR=new WeakMap;function ec(e,t){if(Array.isArray(e))return e.map(r=>ec(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let p=s.value.slice(1);r.set(l,p);let c=t.get(p);return c===void 0?{type:"VARIABLE",name:p}:(i.add(l),{type:"STRING",value:c,fromVariable:!0})}),a={...n,args:o};return HR.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,ec(i,t)]))}function hi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...vc]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...Uc]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let p=hi(l.query,s);s.set(l.name,p)}return hi(e.query,s)}if(e.type==="UNION"){let s=hi(e.left,t),l=hi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Pe);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...yn([],[s]).columns);return{status:"STATIC",columns:a}}function dI(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function fI(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,p=[l.from,...l.joins.map(c=>c.table)];if(p.some(c=>c.cteName!==null)&&p.every(c=>c.cteName===Pe||c.cteName!==null&&r.has(c.cteName))){let c=await ur(l,t,n,r);c&&i.set(l,c)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var YR=Symbol("ksql.explainFetchPlan");function Mc(e){return e[YR]}function jR(e,t){e[YR]=t}async function zR(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ne,p=!0){let c=nc(r);try{let u=uc(e,a),d=ol(u),f=Bl(u,n),R=eR(u,f),E=new Map,g=new Map,y=new Map,m=[],S=[];for(let N=0;N<u.length;N++){let b=u[N],v=b.type==="SET_VARIABLE"?b.expr.type==="SCALAR_SUBQUERY"?{...b,expr:za(b.expr,E)}:b:za(b,E),P=ec(v,g);Qe(P);let k=await xi(P,t,c),_=dI(y),C=p?await WR(P,t,c,i,k,_):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:k};if(!p){let I=await fI(P,t,c,_);for(let[M,O]of I)C.plainGroupByPlans.set(M,O)}let U;if(P.type==="CREATE_TEMP_TABLE"){let I=new Map([...y].map(([O,F])=>[O,F.status==="STATIC"?{status:"STATIC",columns:F.columns}:{status:"DEFERRED"}])),M=hi(P.query,I);U=M.status==="STATIC"?{status:"STATIC",columns:M.columns,relation:{rows:[],columns:[...M.columns]},producerStatement:N+1}:{status:"DEFERRED",producerStatement:N+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},y.set(P.name,U)}let w={sources:[]},D=k.hasServerOnlyWhereFunction&&!k.allowed?Zu(k):[...Zu(k),...qR(EI(P,d.statements[N],C.capabilities,C.orderPlans,C.plainGroupByPlans,s,l,w,y,U),o)],h=Qu(C);m.push({index:N,type:d.statements[N].statementType,plan:D.length===0?h:[D[0],...h,...D.slice(1)]}),S.push({index:N,fetch:xc(w.sources),sources:w.sources}),P.type==="DROP_TEMP_TABLE"&&y.delete(P.name),(b.type==="SET_VARIABLE"||b.type==="DECLARE_VARIABLE")&&(E.set(b.name,b.type==="DECLARE_VARIABLE"&&b.annotation==="RELATIVE_DATE"?{type:"relative-date",value:R.get(b.name)}:b.type==="SET_VARIABLE"&&b.expr.type==="ARRAY"?{type:"array",elements:b.expr.elements.map(I=>({type:"string",value:I.value}))}:{type:"string",value:`@${b.name}`,placeholder:!0}),b.type==="DECLARE_VARIABLE"&&b.annotation===void 0&&(b.default.type==="STRING"||b.default.type==="NUMBER")&&g.set(b.name,b.default.type==="STRING"?b.default.value:Y(b.default)))}let A={statementCount:u.length,statements:m};return jR(A,{statements:S}),A}finally{Ic(c)}}function EI(e,t,n,r,i,o=100,a=Ne,s={sources:[]},l=new Map,p){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",...p?.status==="STATIC"?[` schema: ${p.columns.join(", ")}`,` schema source: SELECT output of statement ${p.producerStatement}`]:p?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${p.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${ze} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ai(e.query,t,n,r,i,s,"main",l).map(c=>` ${c}`)];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 c=es(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:",...Ai(e.expr.query,c,n,r,i,s,"main",l).map(u=>` ${u}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Ai(e.query,t,n,r,i,s,"main",l);if(e.type==="ASSERT"){let c=[`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"],u=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return u.forEach((d,f)=>{c.push(u.length>1?` subquery[${f+1}]:`:" subquery:");let R=es(d.query)?t:{...t,tempTablesReferenced:[]};c.push(...Ai(d.query,R,n,r,i,s,"main",l).map(E=>` ${E}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?cs(e,void 0,n,r,o,a,1e4,i):Ai(e,t,n,r,i,s,"main",l)}function es(e){if(Array.isArray(e))return e.some(es);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(es)}return!1}function Ai(e,t,n,r,i,o={sources:[]},a="main",s=new Map){if(t.tempTablesReferenced.length===0)return cs(e,void 0,n,r,100,Ne,1e4,i,!0,o,a);let l=[];e.type==="INSERT_SELECT"?l.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"&&l.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`),l.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),l.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 p=t.tempTablesReferenced.map(d=>[d,s.get(d)]);for(let[d,f]of p)f?.status==="STATIC"?l.push(` source: temp table ${d} (schema from statement ${f.producerStatement})`):(l.push(` source: temp table ${d}`),l.push(" schema: deferred (could not be derived statically)"));l.push(" rows: runtime (not materialized by EXPLAIN)");let c=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;c&&l.push(...JR(c,i?.get(c),p.some(([,d])=>d?.status!=="STATIC"))),l.push(p.every(([,d])=>d?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),l.push(" records API: none");let u=t.appIds.filter(d=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||d!==e.appId);return u.length>0&&l.push(` app: ${u.map(d=>`APP${d}`).join(", ")}`),l.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),l}var tc=new WeakMap;async function RI(e,t,n,r,i,o=100,a=Ne,s){let l=s??await xi(e.query,t,n),p=await WR(e.query,t,n,r,l,tc.get(e)),c={sources:[]},u=Zu(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...Qu(p),...u]:[...Qu(p),...u,...qR(cs(e.query,void 0,p.capabilities,p.orderPlans,o,a,r,p.plainGroupByPlans,!0,c),i)],f=ja(d,c.sources),R={type:"SELECT",columns:["plan"],rows:f.map(E=>({plan:E})),rowCount:f.length};return jR(R,{statements:[{index:0,fetch:xc(c.sources),sources:c.sources}]}),R}function qR(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 cs(e,t,n,r,i=100,o=Ne,a=1e4,s,l=!0,p,c="main"){let u=p??{sources:[]};if(e.type==="UNION"){let f=hI(e,n,r,s,u);return l?ja(f,u.sources):f}if(e.type==="WITH"){let f=TI(e,n,r,s,u);return l?ja(f,u.sources):f}if(e.type==="INSERT")return bI(e,t,i,o);if(e.type==="INSERT_SELECT")return NI(e,t,n,r,s);if(e.type==="UPSERT")return LI(e,t,i,o);if(e.type==="UPSERT_SELECT")return _I(e,t,n,r,s);if(e.type==="UPDATE")return PI(e,t,n,r,i,o,a);if(e.type==="DELETE")return OI(e,t);if(e.type==="REORDER")return DI(e,t);if(e.type==="VALIDATE")return mI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let E=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...E.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let f=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(E=>E.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...R?[" 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&&R?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...R?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let d=ot(e,t,n,r,s,!0,!0,u,c);return l?ja(d,u.sources):d}var VE={none:0,count_only:1,exact:2,prefiltered:3,all:4};function xc(e){return e.reduce((t,n)=>VE[t]>=VE[n.fetch]?t:n.fetch,"none")}function ja(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${xc(t).toUpperCase()}`,...n]}function gI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Ga(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:gI(o)};return e.sources.push(s),s}function yI(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ka(e){return` fetch: ${yI(e)}`}function mI(e,t){let n=$R.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)":H(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?sc:ac).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 AI(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function JR(e,t,n){let r=Z(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function ot(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let p=n?.get(e)??(n?[...n].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),c=r?.get(e)??(r?[...r].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),d=o&&p!==void 0&&mR(e,p),f=d?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||p&&p.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":$e(e),R=II(e);p&&p.capability!=="EXACT_PUSHDOWN"&&R.push(...p.reasons.map(A=>A.code));let E=[],g=Pf(e,Ci.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let A of kc.get(e)??[]){if(E.push(` cross join: ${A.leftLabel} \xD7 ${A.rightLabel}`),E.push(` left rows: ${A.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${A.rightRows??`runtime (${A.rightRuntimeLabel})`}`),A.plan)E.push(` rows: ${A.plan.outputRows}`),E.push(` row guard: ${A.plan.outputRows} / ${A.plan.limit}`),E.push(" guard timing: before row materialization");else{let N=A.leftRows===null?"left rows":String(A.leftRows),b=A.rightRows===null?"right rows":String(A.rightRows);E.push(` rows: runtime (${N} \xD7 ${b})`),E.push(` row guard: runtime checked / ${Yl}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let A of Xu.get(e)??rR.get(e)??[])E.push(AI(A));g&&(E.push(` grouping source: ${g.source}`),E.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),E.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...JR(e,u,[e.from,...e.joins.map(A=>A.table)].some(A=>A.cteName!==null)));for(let A of e.columns){if(A.type!=="WINDOW_COL"||A.windowKind===void 0||A.windowKind==="RANKING")continue;let N=[];A.partitionBy.length>0&&N.push(`PARTITION BY ${A.partitionBy.map(b=>b.tableAlias?`${b.tableAlias}.${b.field}`:b.field).join(", ")}`),A.orderBy.length>0&&N.push(`ORDER BY ${A.orderBy.map(XR).join(", ")}`),A.windowKind==="VALUE"?E.push(` window ${A.alias}: ${A.valueFunc}(offset=${A.offset}) OVER (${N.join(" ")})`):A.windowKind==="AGGREGATE"&&(E.push(` window ${A.alias}: ${A.aggFunc} OVER (${N.join(" ")})`),E.push(A.frame===null?" frame: PARTITION ENTIRE":` frame: ${A.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${A.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let A=e.where===null?"":H(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${A}${A?" ":""}limit 1`),a){let N=Ga(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${A}${A?" ":""}limit 1`);E.push(Ka(N))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}c?(E.push(` order plan: ${c.kind}`),c.reasonCodes.length>0&&E.push(` order reason: ${c.reasonCodes.join(", ")}`),c.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):c.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${c.scanRows}`))):g&&E.push(" order plan: CANONICAL_LOCAL");let y=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,m=xt(y);c?.requiresCompleteInput&&m.add("LOCAL_ORDER");let S=at(e.where);if(m.size>0&&(!S||g!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...m].join(", ")}`),E.push(" onLimit=truncate: disabled")),S)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let A=mo(c?.kind==="CANONICAL_REST_TOP_N"?fR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let N=c?.kind==="KORDER_CURSOR"?Xl(e):A.query;if(E.push(` kintone query: ${N||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let b=N?"EXACT":"ALL";E.push(Ka(Ga(s,e.from.appId,e.from.alias,l,b,N)))}E.push(` fields: ${A.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":A.fields.join(", ")}`)}else{let A=GR.get(e),N=KR.get(e),b=N??ln(e);if(e.joins.length>0)if(A){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),A.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${A.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${A.joinPlan.residualWhere===null?"(none)":An(A.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${A.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${A.joinPlan.allKlikes.length-A.joinPlan.appliedKlikes.size}`),A.joinPlan.residualWhere!==null)for(let I of A.joinPlan.rejections)E.push(` join pushdown not applied: ${I.reason}`)}else{let I=e.joins.some(M=>M.type!=="INNER"&&M.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${I}`)}let v=sn(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",k=b.mainCondition,_=cR(e),C=e.joins.length===0&&p?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!It(e.where)?H(e.where):"",U=e.from.alias?A?.queriesByAlias.get(e.from.alias):void 0,w=U||(k!==null?H(k):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${w}`);let D=A?.joinPlan.items.find(I=>I.targetAlias===e.from.alias),h=A?.joinPlan.serverFunctionConsumptions.find(I=>I.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let I=!N&&_!==null,M=w==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":I?"PREFILTERED":D?.relation==="exact"||h||C!==""?"EXACT":"PREFILTERED";E.push(Ka(Ga(s,e.from.appId,e.from.alias,l,M,w,I)))}D||h?(E.push(` pushdown applied: ${U}`),E.push(` relation: ${D?.relation??"exact"}`)):N&&k!==null?(E.push(` pushdown applied: ${w}`),E.push(` relation: ${b.mainRelation??"exact"}`)):_!==null&&(!N||Ti(_))&&E.push(` pushdown candidate: ${H(_)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let I of e.joins){let M=sn(e,I.table,u),O=I.table.alias?` AS ${I.table.alias}`:"",F=I.type==="INNER"?"JOIN":`${I.type} JOIN`,W=I.table.alias?b.joinConditions.get(I.table.alias)??null:null,j=I.table.alias&&!I.table.subtableCode&&I.table.cteName===null&&e.where?Dr(e.where,{tableAlias:I.table.alias}):null,x=I.table.alias?A?.queriesByAlias.get(I.table.alias):void 0,G=I.table.alias?BR.get(e)?.get(I.table.alias):void 0,J=!N&&I.type==="INNER"&&I.table.cteName===null&&!I.table.subtableCode&&[e.from,...e.joins.map(oe=>oe.table)].some(oe=>oe.cteName!==null),B=x||(W!==null?H(W):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=J||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",V=G&&G.queries.length>0?G.queries.map(oe=>B!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${oe}) and (${B})`:oe):[L?"(runtime source keys)":B],he=V.join(" | ");E.push(` ${F}: APP${I.table.appId}${O} (${I.table.appId})`);for(let oe of V)E.push(` kintone query: ${oe}`);let lt=A?.joinPlan.items.find(oe=>oe.targetAlias===I.table.alias),yr=A?.joinPlan.serverFunctionConsumptions.find(oe=>oe.targetAlias===I.table.alias);if(a&&I.table.cteName===null){let oe=L||!G&&!N&&j!==null,tn=he==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":oe?"PREFILTERED":G?.plan.kind==="IN"&&lt?.relation!=="superset"&&G.additionalRelation!=="superset"||lt?.relation==="exact"||yr?"EXACT":"PREFILTERED";E.push(Ka(Ga(s,I.table.appId,I.table.alias,"join",tn,he,oe)))}if(G)if(G.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let oe of V)E.push(` pushdown applied: ${oe}`);E.push(" relation: superset")}else if(G.plan.kind==="IN"){let oe=lt?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let tn of V)E.push(` pushdown applied: ${tn}`);E.push(` relation: ${oe}`)}else G.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${G.plan.reason}`)):G.plan.kind==="FALLBACK"&&(E.push(G.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${G.plan.reason}`));else J?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),j!==null&&E.push(` pushdown candidate: ${H(j)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):lt||yr?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${lt?.relation??"exact"}`)):N&&W!==null?(E.push(` pushdown applied: ${B}`),E.push(` relation: ${b.joinRelations.get(I.table.alias)??"exact"}`)):j!==null&&(!N||Ti(j))&&E.push(` pushdown candidate: ${H(j)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return E.push(...wI(e,n,r,i,s)),E}function hI(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,p)=>{p>0&&s.push(""),s.push(...ot(l,`[union:${p+1}]`,t,n,r,!0,!0,i,"union"))}),s}function SI(e){let t=new Map,n=a=>ye(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Pe?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),p=[];for(let c of a.joins){let u=r(c.table),d=n(c.table);if(c.type==="CROSS"){let f=s!==null&&u!==null?ni(s,u):null;p.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:c.table.cteName===null?`APP${c.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${c.type} JOIN ${d}`}return p.length>0&&kc.set(a,p),at(a.where)?s=0:a.where!==null&&(s=null),Z(a).type!=="NONE"||a.distinct||a.having!==null||Vn(a)||a.columns.some(c=>c.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Go(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function TI(e,t,n,r,i={sources:[]}){SI(e);let o=[];for(let a of e.ctes)if(a.query.type==="SELECT")o.push(...ot(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push("");else if(a.query.type==="GENERATE_SERIES"){let s=a.query,l=HR.get(s);if(s.args.some(d=>d.type==="VARIABLE")){let d=f=>{let R=s.args[f];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:f<2?"literal":R.type==="NUMBER"?Y(R):R.value:f===2?"runtime":"deferred"};o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${s.columnAlias}`," series type: deferred (variable)",` start: ${d(0)}`,` stop: ${d(1)}`,` step: ${d(2)}`," rows: runtime",` row guard: runtime / ${wt}`," records API: none","");continue}let c=Go(s),u=c.kind==="DATE"?`${c.step} ${String(c.dateUnit??"DAY").toLowerCase()}${Math.abs(c.step)===1?"":"s"}`:String(c.step);o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${s.columnAlias}`,` series type: ${c.kind}${l?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${l?.variableNames.has(0)?`@${l.variableNames.get(0)} (DECLARE default; value hidden)`:c.start}`,` stop: ${l?.variableNames.has(1)?`@${l.variableNames.get(1)} (DECLARE default; value hidden)`:c.stop}`,` step: ${u}`,` rows: ${c.rowCount}${l?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${c.rowCount} / ${wt}`,...l?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...cs(e.query,"[main]",t,n,100,Ne,1e4,r,!1,i)),$t(e)){o.push("");let a=Vt(e);o.push(...ot(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function II(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.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=Z(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"),It(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Gt(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 wI(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...ot(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ot(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ot(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...ot(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function bI(e,t,n=kt,r=Ne){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,...Fc(ca(e,n,r))]:a}function NI(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(...ot(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function PI(e,t,n,r,i=100,o=Ne,a=1e4){if(e.applyBlocks?.length)return CI(e,t,i,o,a);let s=Wd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=Xo(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Mi(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Mi(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let d=[];if(s&&d.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&d.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),c&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!c&&d.push("\u5358\u7D14 SET"),u.push(` set type: ${d.join(", ")}`),p){let f=vI(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${kI(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ot(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function CI(e,t,n,r,i){let o=ca(e,n,r),a=o.branches[0],p=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),c=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=c.includes("REMOVE"),d=VR.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":H(d.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${d.appliedKlikes.size}`,`unapplied KLIKE: ${d.unappliedKlikes.length}${d.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: ${Mi(e.where)}`,`parent cardinality: ${Tt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${c.join(" | ")}`,`selector: ${p.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Fc(o)]}function OI(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Mi(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(at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function LI(e,t,n=kt,r=Ne){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,...Fc(ca(e,n,r))]:a}function Fc(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 _I(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(...ot(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function DI(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(XR).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,at(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: ${Mi(e.where)}`),o}function XR(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Mi(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return H(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function vI(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&ts(n,t),n.type==="STRING_FUNC"&&ts(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Pi(n,t);return[...t]}function ts(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"&&(ts(e.left,t),ts(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Pi(n,t)}async function QR(e,t,n,r,i){let o=Pc(e),a=await Le(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(d=>[d,i?.get(s)?.columnMeta?.get(d)?.fieldType??(i?.get(s)?.columnMeta?.get(d)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Le(t.appId,n,r),p=new Set,c=new Set;for(let d of o){if(d.tableAlias!==null){if(d.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(d.field!=="$id"&&!a.has(d.field))throw we(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(d.field)}else if(d.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(d.field!=="$id"&&!l.has(d.field))throw we(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(d.field)}else throw we(`CHECK \u306E\u4FEE\u98FE\u5B50 ${d.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=d.field==="$id"||a.has(d.field),R=d.field==="$id"||l.has(d.field);if(!f)throw we(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw we(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(d.field)}let u=new Map;for(let[d,f]of a)u.set(d,f),u.set(`APP${e.appId}.${d}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)u.set(`${t.alias}.${d}`,f);return{targetFields:[...p],sourceFields:[...c],evaluationTypes:u}}function UI(e,t,n){if(!e)return{};let r=Lt(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 Pi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Pi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Pi(e.left,t),Pi(e.right,t))}function kI(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} = ${ZR(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 ZR(e){return`${WE(e.left)} ${e.op} ${WE(e.right)}`}function WE(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"?Y(e):e.type==="ARITH"?`(${ZR(e)})`:"..."}var fe=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 _e=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 Gc(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 Je(e){return new _e("READ_ONLY_VIOLATION",e)}function Er(e,t){return new _e("PARSE_ERROR",e,t)}function eg(){let e=new wn;return new _e("SEARCH_ABORTED",e.message,e)}function Hi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function MI(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 _n(e){return e instanceof _e?e:e instanceof Oe||e instanceof T?new _e("PARSE_ERROR",Hi(e),e):e instanceof wn||e?.name==="SearchAbortedError"?new _e("SEARCH_ABORTED",Hi(e),e):e instanceof ke||e?.name==="FetchAllLimitError"?new _e("FETCH_LIMIT_EXCEEDED",Hi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new _e("CLIENT_ERROR",e.message,e.cause):MI(e)?new _e("CLIENT_ERROR",Hi(e),e):new _e("EXECUTION_ERROR",Hi(e),e)}function ps(e,t){let n=_n(e);if(e instanceof re){let r=t[e.statementIndex];if(r!==void 0)return Gc(n,e.statementIndex,r.type)}return n}var xI=2,ds=5,FI=3e4,GI=10*6e4+3e4,fs=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??xI;if(!Number.isSafeInteger(r)||r<1||r>ds)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ds}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??FI,this.quarantineMs=n.quarantineMs??GI}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 Sa(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>ds)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ds}.`)}};function KI(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function BI(e,t=r=>new Promise(i=>setTimeout(i,r)),n=KI){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 $I(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 tg(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 p=await t.get();return p.next||(n=!0,t.onReleased?.()),p});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await $I(BI(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function ng(e){return rg(e,WI(e))}function rg(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=HI(o.options),s=YI(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Es(o.minValue),maxValue:Es(o.maxValue),minLength:Es(o.minLength),maxLength:Es(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!VI.has(o.type)};l.semantics=ee(l),i.push(l),o.fields&&i.push(...rg(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var VI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function WI(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 Es(e){return e==null||e===""?void 0:e}function HI(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 YI(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function ig(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 jI="Filter aborted because of too many search results";function og(e){return e?.includes(jI)===!0}var ag="/k/v1/records.json",Rs="/k/v1/records/cursor.json",zI=4096,qI=2,Kc=e=>kintone.api.url(e,!0);function JI(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(ag,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=zI?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Kc(ag),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 Yi(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
14
- `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function XI(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Yi({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}),Yi(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}),Yi(n)}}function QI(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Dn(e,t,n){try{return await kintone.api(Kc(e),t,n)}catch(r){throw Yi(r)}}function ZI(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function ew(e={}){let t=e.cursorMaxActive??qI;ZI(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=JI(a),l=await fetch(s.url,s.init);if(!l.ok)throw await XI(l);let p=await l.json();return og(l.headers.get("X-Cybozu-Warning"))?{...p,searchAborted:!0}:p}catch(s){throw Yi(s)}},async openCursor(a){let s=Kc(Rs),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??(n=new fs(l,{maxActive:t})),n.snapshot().active>=t){let E=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw E.name="CursorCapacityError",E}let p=await n.acquire(),c;try{c=await n.runCreate(()=>Dn(Rs,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(E){throw typeof E?.code=="string"?(p.release(),E):(p.quarantine(),new Ta(E))}let u=c.id,d=tg(Number(c.totalCount),{get:()=>Dn(Rs,"GET",{id:u}),delete:()=>Dn(Rs,"DELETE",{id:u}),isAlreadyReleasedError:QI,onReleased:()=>p.release(),onReleaseUnknown:()=>p.quarantine()}),f=null,R={totalCount:d.totalCount,async nextPage(){let E=await d.nextPage();return E.next||i.delete(R),E},close(){return f||(f=d.close().finally(()=>{i.delete(R)}),f)}};return i.add(R),R},async getApps(){let s=[],l=0;for(;;){let p=await Dn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of p.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(p.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Dn("/k/v1/app/form/fields.json","GET",{app:a});return ng(s.properties)},async getNumberPrecision(a){let s=await Dn("/k/v1/app/settings.json","GET",{app:a});return cf(s)},async getProcessStatuses(a){let s=await Dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:ig(s.states)}}}}var sg=new Set(["postRecords","putRecords","deleteRecords"]),ji=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 en(e){try{return await e()}catch(t){throw new ji(t)}}function tw(e){return()=>{throw Je(`${String(e)} is blocked by the readonly client`)}}function Rr(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 p=await en(()=>t(l));if(p.searchAborted===!0)throw eg();return p},openCursor:async l=>{let p=await en(()=>n(l)),c=p.nextPage.bind(p),u=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>en(()=>c()),close:()=>en(()=>u())}},getApps:()=>en(()=>r()),getFields:l=>en(()=>i(l)),getNumberPrecision:l=>en(()=>o(l)),getProcessStatuses:l=>en(()=>a(l))});return new Proxy(s,{get(l,p,c){return sg.has(p)?tw(p):Reflect.get(l,p,c)},has(l,p){return sg.has(p)?!1:Reflect.has(l,p)}})}function nw(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 ji(o.reason)})(),n)}}}async function gr(e,t){let n=nw(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 rw="A-Za-z",iw="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",$c=`${rw}${iw}`,ug=`${$c}0-9_`,ow=new RegExp(`^[${$c}]$`,"u"),aw=new RegExp(`^[${ug}]$`,"u"),sw=new RegExp(`^[${$c}][${ug}]{0,63}$`,"u");function lw(e){return ow.test(e)}function uw(e){return aw.test(e)}function Vc(e){let t=e.normalize("NFC").toUpperCase();if(!sw.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 Bc(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 cw(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 pw(e,t){let n=t>0?e[t-1]:"";if(Bc(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,!lw(e[l]??""))return null;for(l++;l<e.length&&uw(e[l]);)l++;s=l;try{o=Vc(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&&Bc(e[l]);)l++;if(l===f)return null}let p=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&cw(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Bc(u))return null;let d={profile:c,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:p,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Wc(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
15
- `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=pw(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function lg(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function cg(e,t="dev",n){let r=Wc(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,y);l.set(m,S),s.add(S)}let p=new Map,c=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let S of m){let A=lg(s);p.set(`physical:${g}@${S}`,A),c.set(A,{source:"physical",mappedAppId:A,appId:g,profile:S})}}let u=[],d=[],f=0,R=0,E=(g,y,m,S)=>{if(!g&&y===m)return;let A=f;u.push(g),f+=g.length,d.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:m,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:p.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let N=`logical:${g.logicalName}@${y}`,b=p.get(N);b===void 0&&(b=lg(s),p.set(N,b)),m={source:"logical",logicalName:g.logicalName,mappedAppId:b,appId:l.get(N),profile:y}}c.set(m.mappedAppId,m),E(e.slice(R,g.start),R,g.start);let S=e.slice(g.referenceValueEnd,g.appEnd),A=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${m.mappedAppId}${S}`:`APP${m.mappedAppId}${S}`;E(A,g.start,g.fullEnd,m.mappedAppId),R=g.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:d}}var pg=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),dg=new Set([...pg,"onLimitReached"]),dw=new Set([...dg,"variables","tempTableMaxRows"]);function fg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function zi(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Eg(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 fw(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 Rg(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=Vc(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`);zi(r,`logicalApps.${n}`),t[i]=r}return t}function gg(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&&zi(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&zi(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(zi(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 Hc(e,t){fg(e);let n=t==="run"?dg:pg;Eg(e.client);let r=gg(e,n,t==="run"?"runQuery":"explainQuery"),i=Rg(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function yg(e){fg(e),Eg(e.client),e.variables!==void 0&&fw(e.variables),e.tempTableMaxRows!==void 0&&zi(e.tempTableMaxRows,"tempTableMaxRows");let t=gg(e,dw,"runBatch"),n=Rg(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={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,p)=>{let c=t.get(Number(l));return`${c.source==="logical"?r==="physical"?`LAPP_${c.logicalName} -> APP${c.appId}`:`LAPP_${c.logicalName}@${c.profile}`:r==="physical"?`APP${c.appId}`:`APP${c.appId}@${c.profile}`}${p??""}`})}return Array.isArray(e)?e.map(i=>gs(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,gs(o,t,n)])):e}function Ew(e,t,n){return e.slice(t,n)}function qi(e,t,n){let r=Wc(e),i=r.find(p=>p.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${Ew(e,i.start,i.fullEnd)}).`);if(!r.some(p=>p.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=cg(e,"browser",{resolveLogicalApp(p){let c=n?.[p];if(c===void 0)throw new Error(`ArgumentError: logical app LAPP_${p} is not defined.`);return c}}),a=[...o.appBindingByMappedApp.values()].filter(p=>p.source==="logical"),s=p=>o.appBindingByMappedApp.get(p)?.appId??p,l={getRecords:p=>t.getRecords({...p,app:s(p.app)}),openCursor:p=>t.openCursor({...p,app:s(p.app)}),getApps:()=>t.getApps(),getFields:p=>t.getFields(s(p)),getNumberPrecision:p=>t.getNumberPrecision(s(p)),getProcessStatuses:p=>t.getProcessStatuses(s(p))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function Ji(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 Xi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return gs(e,n,{logicalAppDisplay:"physical"})}function ys(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 Rw(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function gw(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function ms(e,t=e.metrics){let n=HE(e);return{type:"query",rows:e.rows.map(Rw),columns:e.columns.map(r=>gw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ys(t)}}function mg(e,t={}){let n=new jt(e).tokenize(),r=new zt(n,t).parse();return Qe(r),r}function Ag(e,t={}){let n=new jt(e).tokenize(),r=new zt(n,t).parseStatements();return r.forEach(Qe),r}function Yc(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 hg(e){if(e instanceof ue)return Er(e.message,e);let t=_n(e);return t.code==="PARSE_ERROR"?t:Er("SQL statement could not be parsed",e)}function yw(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return mg(e,{import:!0})}catch(t){let n=hg(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Er("This API accepts one statement; use runBatch for multiple statements",t):n}}function Sg(e){if(io(e)==="UNKNOWN")throw Je("Unclassifiable statement is not allowed");return e}function Tg(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return Ag(e,{import:!0})}catch(t){throw hg(t)}}function mw(e){let t=Sg(e),n=t.type;if(n==="IMPORT")throw Je("IMPORT is disabled by default in engine library queries");if(!kn(t))throw Je(`${n} statements are not read-only`);if(Yc(t))throw Je("APPLY statements are not allowed in engine library queries");if(!ap(t))throw Je(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Ig(e){let t=Sg(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Je("IMPORT is disabled by default in engine library batches");if(!kn(n))throw Je(`${n.type} statements are not read-only`);if(Yc(n))throw Je("APPLY statements are not allowed in engine library batches");if(Ft(n.type))throw Je("DML VALIDATE ONLY statements are not supported by runBatch")}function wg(e){let t=yw(e);return mw(t),t}function bg(e){let t=Tg(e);return t.forEach(Ig),t}function Ng(e){let t=e.trim(),n=Tg(t);n.forEach(Ig);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 Aw(e){let t=e.error,n=t?.cause!==void 0?_n(t.cause):new _e("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Gc(n,e.index,e.type)}async function hw(e,t){let n=[],r=[];try{let i=yg(t),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings,n=bg(o.sql);let a=await gr(o.client,c=>ZE(o.sql,Rr(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw Aw(s);let l=[],p=a.statements.map(c=>{let u={index:c.index,type:c.type,status:c.status};if(c.tempTable!==void 0&&(u.tempTable=c.tempTable),c.rowCount!==void 0&&(u.rowCount=c.rowCount),c.error!==void 0&&(u.error={code:c.error.code,message:c.error.message}),c.skippedReason!==void 0&&(u.skippedReason=c.skippedReason),c.status==="success"&&c.result?.type==="SELECT"){u.resultIndex=l.length;let d=ms(c.result,a.metrics);l.push(n[c.index]?.type==="EXPLAIN"?Xi(d,r):d)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:p,results:l,warnings:[]}}catch(i){throw Ji(ps(i,n),r)}}function Pg(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Sw(e,t){let n=[];try{let r=Hc(t,"run"),i=qi(e,r.client,r.logicalApps);n=i.logicalBindings;let a=wg(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await gr(i.client,l=>rc(i.sql,Rr(l),{...a,captureColumnMeta:!0}));return Pg(s),ms(s)}catch(r){throw Ji(_n(r),n)}}async function Tw(e,t){let n=[],r=[];try{let i=Hc(t,"explain"),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Ng(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await gr(o.client,f=>rc(a.legacySql,Rr(f),i.executeOptions));Pg(c);let u=Xi(c.rows.map(f=>String(f.plan??"")),r),d=Mc(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
16
- `),plan:d,metrics:ys(c.metrics)}}let s=await gr(o.client,c=>zR(o.sql,Rr(c),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=Xi(s.statements.flatMap(c=>[...s.statementCount>1?[`[${c.index+1}] ${c.type}`]:[],...c.plan]),r),p=Mc(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
- `),plan:p,metrics:ys()}}catch(i){throw Ji(ps(i,n),r)}}var cD="3.64.0";export{_e as KsqlEngineError,ew as createReadonlyKintoneClient,Tw as explainQuery,hw as runBatch,Sw as runQuery,cD as version};
13
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function HT(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${VT}`)}async function YT(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),p=Jl(e.where,{fieldTypes:s,fieldOptions:l});HT(p);let c=p.prefilter===null?"":H(p.prefilter),u=new Set(Zo(e,r));for(let R of jT(e.where))u.add(R);let d=await zT(e.appId,e.where,a,t,i);return(await ve(t.getRecords,e.appId,c,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Lt(R,null)})).filter(({row:R})=>ae(e.where,R,d.fieldTypeResolver,p.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function jT(e){return lc(e)}async function zT(e,t,n,r,i){let s=[...qT(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await wc(e,r,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":n.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return Hn(ee({fieldType:"__ID__"}),e,"$id");let u=n.get(c.field);if(!u)return;let d=u.semantics??ee(u),f=u.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return Hn(f,e,u.code)}}}function qT(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 JT(e,t,n){let r=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,u)=>c+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...pt(n,e.fields).payloadFields,...Qr],a=t.guards.parentRows,s=Gl(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:vi(l),guards:Ui(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Ln.set(p,ls(o,n,e.appId)),p}function XT(e,t,n){let r=t.validations,i=r.flatMap(p=>p.errors),o=r.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...pt(n,e.assignments.map(p=>p.field)).payloadFields,...Qr],s=ti(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:vi(s.branches[0]),guards:Ui(s.branches[0]),deletedRows:{total:t.plans.reduce((p,c)=>p+c.tables.reduce((u,d)=>u+d.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return Ln.set(l,ls(a,n,e.appId)),l}function QT(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...pt(n,e.fields).payloadFields,...Qr],l=Kl(t),p=l.branches.find(R=>R.branch==="insert"),c=l.branches.find(R=>R.branch==="update"),u=vi(p),d=vi(c),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...d],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:Ui(p)},update:{apply:d,guards:Ui(c)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((g,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Ln.set(f,ls([...s],n,e.appId)),f}function vi(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:In(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:In(t,"ADD"),removedValues:In(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Ui(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 kt=100,Ne=500;function qe(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 ls(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:ee({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ke(s,n));continue}o.set(a,Q(i.has(a)?"number":"string"))}return o}async function ZT(e,t,n,r,i,o){let a=await OR(e,t,n,r,i,o),s=await Le(e.appId,n,i),l=ml(e,a,s),p=e.assignments.map(d=>d.field),c=await te(e.appId,n,i),u=await Ut(e.appId,p,c,n,i);if(Cn(l.flatMap(d=>d.records.map(f=>f.record)),p,c,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new Ee("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function eI(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 tI(e,t,n,r){if(await sr(e,t,r),at(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return oI(e,t,n,r);let i=zd(e),a=(await fa(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 Ee("DELETE",a.length);let s=qd(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function nI(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return IT(e,t,n,r);if(e.checkGroups?.length)return $i(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Ut(e.appId,e.fields,i,t,r),a=[],s=[],l=await Le(e.appId,t,r),p=vR(e),c=await Ki(e.appId,e.keyFields,p,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((g,y)=>{let A=d[y];A.type==="CASE_VALUE"?R[g]={value:Jt(A.expr,{},l.get(g))}:R[g]={value:Pt(A,l.get(g))}});let E=Gi(c,p[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),Cn([...a,...s.map(d=>d.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let d=a.length+s.length;if(!await n.confirm(d,"UPDATE"))throw new Ee("UPDATE",d)}let u=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100)});u.push(f.ids)}for(let d=0;d<s.length;d+=100)await t.putRecords({app:e.appId,records:s.slice(d,d+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function vR(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"?Y(i):i.type==="CASE_VALUE"?xe(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Lc(e,t,n,r){if(t.length===0)return;let i=await Le(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 rI(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 ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=us(a),l=new Map;for(let c of e.values){let u=KE(c[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,g)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:KE(c[g])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let p=[];for(let[c,u]of l.entries()){let d=s.get(c),R=[...Wi(d,i),...u];p.push(UR(e.appId,c,Vi(d),i,R))}for(let c of p)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function iI(e,t,n,r){let i=e.subtableCode;if(!bi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Dt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&Xa(d.value.expr,o);let a=await Lc(e.appId,o,t,r),s=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=_c(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new Ee("UPDATE",p.length);let c=new Map;for(let d of p){if(!d.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=c.get(d.parentId);f||(f=new Map,c.set(d.parentId,f));let R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:Qo(E.value,d.flat,a)}}f.set(d.rowId,R)}let u=us(s);for(let[d,f]of c.entries()){let R=u.get(d);if(!R)continue;let g=Wi(R,i).map(y=>{let A=y.id??"";if(!A)return y;let S=f.get(A);return S?{id:A,value:S}:{id:A}});await t.putRecords(aI(e.appId,d,Vi(R),i,g))}return{type:"UPDATE",updatedCount:p.length}}async function oI(e,t,n,r){let i=e.subtableCode;if(!bi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Dt(e.where,o);let a=await Lc(e.appId,o,t,r),s=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=_c(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(p.length,"DELETE"))throw new Ee("DELETE",p.length);let c=new Map;for(let d of p){let f=c.get(d.parentId);f?f.push(d.rowIndex):c.set(d.parentId,[d.rowIndex])}let u=us(s);for(let[d,f]of c.entries()){let R=u.get(d);if(!R)continue;let E=Wi(R,i),g=new Set(f),y=E.filter((A,S)=>!g.has(S));await t.putRecords(UR(e.appId,d,Vi(R),i,y))}return{type:"DELETE",deletedCount:p.length}}function us(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function _c(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Vi(r),a=Wi(r,t);for(let s=0;s<a.length;s++){let l=a[s],p={...ea(l,s),_pid:i};for(let[c,u]of Object.entries(r))c!==t&&(p[`_p.${c}`]=Ju(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return n}function Wi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Vi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function UR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function aI(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function sI(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 KE(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?Y(e):e.type==="CASE_VALUE"?xe(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Ju(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 bi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return bi(e.left)||bi(e.right);case"NOT":case"GROUP":return bi(e.expr);default:return!1}}async function lI(e,t,n,r){let i=[];Dt(e.where,i);let o=await Lc(e.appId,i,t,r),a=await te(e.appId,t,r);if(at(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ee(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return K("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??K("string")},p=await ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=_c(p,e.subtableCode),u=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&ae(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new Ee("UPDATE",u.size);let d=us(p);for(let f of u){let R=d.get(f);if(!R)continue;let g=Wi(R,e.subtableCode).map((A,S)=>({row:A,i:S,flat:uI(R,e.subtableCode,A,S)}));g.sort((A,S)=>cI(A.flat,S.flat,e.by,l));let y=g.map(A=>A.row.id??"");await t.putRecords(sI(e.appId,f,Vi(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function uI(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}`]=Ju(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Ju(a?.value);return i}function cI(e,t,n,r){for(let i of n){let o=BE(i.key,e),a=BE(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ge(i.key.name)):i.key.type==="ARITH_KEY"?K("number"):i.key.type==="FUNC_KEY"?bn(i.key.expr).semantics??K("string"):K("number"),l=Ze(o,a,s??K("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function BE(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(pe(e.expr,t));case"FUNC_KEY":return de(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Dc(e,t,n,r,i){if(e.checkGroups?.length)return $i(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Ut(e.appId,e.fields,o,t,r),s=await Cc.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(_R(s),p.length!==e.fields.length){let y=p.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${p.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let c=[],u=[],d=await Le(e.appId,t,r),f=l.map((y,A)=>{let S={};return e.fields.forEach((m,N)=>{if(s.importPresence&&!s.importPresence[A]?.has(m))return;let b=y[p[N]]??"";S[m]={value:NR(b,d.get(m))}}),S});f.forEach(y=>Cn([y],e.fields.filter(A=>A in y),o,a));let R=f.map(y=>e.keyFields.map(A=>String(y[A]?.value??"")));if(ns.has(e)){let y=e.keyFields.map(S=>d.get(S)==="NUMBER"),A=new Set;for(let S of R){let m=Pn(S,y);if(A.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");A.add(m)}}let E=await Ki(e.appId,e.keyFields,R,t,n,d);if(f.forEach((y,A)=>{let S=Gi(E,R[A]);S!==void 0?u.push({id:S,record:y}):c.push(y)}),n.confirm&&c.length+u.length>0){let y=c.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new Ee("UPDATE",y)}let g=[];for(let y=0;y<c.length;y+=100){let A=await t.postRecords({app:e.appId,records:c.slice(y,y+100)});g.push(A.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var vc=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),Uc=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function kR(e){let t=await e.getApps(),n=[...vc],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 MR(e,t,n){let r=await te(e.appId,t,n),i=[...Uc],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function pI(e,t=!1){try{let n=new jt(e).tokenize(),r=new zt(n,{import:t}).parse();return Gn("phase15b",r),Qe(r),r}catch(n){throw n instanceof Oe||n instanceof T,n}}async function ki(e,t,n,r,i,o){let a=[];Ya(e,t,n,r,a,i,o),await Promise.all(a)}async function xR(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(ki(l.condition,t,n,r,i,o));await Promise.all(a)}function Ni(e,t,n,r,i){return i!==void 0&&i.size>0?vt(e,t,n,i,r):Zt(e,t,n,r)}function Ya(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Ni(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);let p=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(c=>c[p]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Ni(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);if(l.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(l.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 p=l.columns[0]??"";s.resolved=l.rows[0]?.[p]??""}));break}case"LOGICAL":Ya(e.left,t,n,r,i,o,a),Ya(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Ya(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Ni(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function FR(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Zt(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 GR(e,t,n,r,i,o){let a=new Map,s=[];for(let c=0;c<e.length;c++){let u=e[c];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(u.query),f=a.get(d);f||(f=Ni(u.query,t,n,r,o).then(R=>{for(let g of R.warnings??[])i.add(g);if(R.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(R.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=R.columns[0]??"";return R.rows[0]?.[E]??""}),a.set(d,f)),s.push([c,f])}let l=await Promise.all(s.map(([,c])=>c)),p=new Map;return s.forEach(([c],u)=>p.set(c,l[u])),p}var KR=new WeakMap,BR=new WeakMap,$R=new WeakMap,Xu=new WeakMap,kc=new WeakMap,WR=new WeakMap,VR=new WeakMap;async function HR(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,p={...t,getFields:async P=>(a.add(P),t.getFields(P)),getProcessStatuses:async P=>(s.add(P),t.getProcessStatuses(P)),getNumberPrecision:async P=>(l.add(P),t.getNumberPrecision(P))},c=new Map,u=new Map,d=new Map,f=new Set,R=i??await xi(e,p,n),E=P=>R.nodes.find(U=>U.source===P||JSON.stringify(U.source)===JSON.stringify(P)),g=new Map(o??[]),y=new Set(o?.keys()??[]),A=new Map([...o??new Map].map(([P,U])=>[P,U.rows.length])),S=new WeakMap,m=P=>ye(P)??(P.appId>0?`APP${P.appId}`:"source"),N=P=>P.cteName===Pe?1:P.cteName!==null?A.get(P.cteName)??null:null,b=P=>{let U=N(P.from),w=m(P.from),_=[];for(let I of P.joins){let M=N(I.table),O=m(I.table);if(I.type==="CROSS"){let F=U!==null&&M!==null?ni(U,M):null;_.push({leftLabel:w,rightLabel:O,leftRows:U,rightRows:M,plan:F,rightRuntimeLabel:I.table.cteName===null?`APP${I.table.appId} fetched rows`:`${O} materialized rows`}),U=F?.outputRows??null,w=`${w} \xD7 ${O}`}else U=null,w=`${w} ${I.type} JOIN ${O}`}if(_.length>0&&kc.set(P,_),at(P.where)?U=0:P.where!==null&&(U=null),(Z(P).type!=="NONE"||P.distinct||P.having!==null||Wn(P)||P.columns.some(I=>I.type==="WINDOW_COL"))&&(U=null),U!==null){let I=P.offset??0;U=Math.max(0,U-I),P.limit!==null&&(U=Math.min(U,P.limit)),S.set(P,U)}},v=async P=>{let U=[P.from,...P.joins.map(_=>_.table)];if(U.length>1&&P.columns.some(_=>_.type==="WILDCARD"||_.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let w=[];for(let _ of U){if(_.cteName!==null){if(_.cteName===Pe)continue;let I=g.get(_.cteName);if(!I)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);w.push(...I.columns);continue}let h=await te(_.appId,p,n);_.subtableCode?(w.push(...h.filter(I=>I.inSubtable&&(I.subtableCode===_.subtableCode||I.subtableCode===void 0)).map(I=>I.code)),w.push("_pid","_rid","_idx"),w.push(...h.filter(I=>!I.inSubtable).map(I=>`_p.${I.code}`))):(w.push(...h.filter(I=>!I.inSubtable).map(I=>I.code)),w.push(...uo))}return[...new Set(w)]},C=async P=>{if(P===null||typeof P!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let U=P;if(U.type==="SELECT"){let w=P,_=await v(w);if(w.columns.length===1&&w.columns[0].type==="WILDCARD")return _;let h=[];for(let I of w.columns)I.type==="WILDCARD"?h.push(..._):I.type==="PARENT_WILDCARD"?h.push(..._.filter(M=>M.startsWith("_p."))):h.push(...yn([],[I]).columns);return h}if(U.type==="UNION")return C(U.left);if(U.type==="SHOW_APPS")return[...vc];if(U.type==="DESCRIBE")return[...Uc];if(U.type==="GENERATE_SERIES")return[P.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},k=async P=>{if(P===null||typeof P!="object")return;if(Array.isArray(P)){for(let w of P)await k(w);return}let U=P;if(U.type==="WITH"){let w=P;for(let _ of w.ctes){if(await k(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(M=>M.type==="VARIABLE")){g.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let I=IR(_.query);g.set(_.name,{rows:I.rows,columns:I.columns,columnMeta:Re.get(I),uniqueGeneratedColumn:_.query.columnAlias}),y.add(_.name),A.set(_.name,I.rows.length);continue}let h=await C(_.query);if(g.set(_.name,{rows:[],columns:h}),_.query.type==="SELECT"){let I=S.get(_.query);I!==void 0&&A.set(_.name,I)}}await k(w.query);return}if(U.type==="UNION"){await k(U.left),await k(U.right);return}if(U.type==="SELECT"){let w=P;b(w);for(let I of w.columns)I.type==="SCALAR_SUBQUERY_COL"&&await k(I.query);if(await k(w.where),await k(w.having),await Oi(w,p,n,g),![w.from,...w.joins.map(I=>I.table)].some(I=>I.cteName!==null&&!g.has(I.cteName))){let I=await ur(w,p,n,g);I&&d.set(w,I)}return}for(let w of Object.values(U))await k(w)};await k(e);let D=async P=>{if(P===null||typeof P!="object"||f.has(P))return;if(f.add(P),Array.isArray(P)){await Promise.all(P.map(D));return}let U=P;if(U.type==="SELECT"){let w=P;await Oi(w,p,n);let _=[w.from,...w.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(Z(w).type==="PLAIN"&&!_){let L=await ur(w,p,n);L&&d.set(w,L)}let h=[w.from,...w.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Et(w.where)||w.orderBy.length>0||w.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&h.forEach(L=>a.add(L));let{resolver:M,rewrites:O}=await Sn(w,p,n);O.length>0&&Xu.set(w,O);let F=ge(w.where,M),V=E(w);if(F.capability==="UNSUPPORTED"&&!V)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(F)}).`);c.set(w,F);let j=await is(w,p,n),G=Ec.get(w)??rs(w,j);G&&KR.set(w,G);let J=G??ln(w,j);BR.set(w,J);let B=new Map;for(let L of w.joins){let W=L.table.alias;if(L.type!=="INNER"||!W||L.table.subtableCode)continue;let Se=L.on.left.tableAlias,lt=L.on.right.tableAlias;if(!Se||!lt)continue;let yr=Se===W&&lt!==W?lt:lt===W&&Se!==W?Se:void 0,oe=Se===W?L.on.right.field:L.on.left.field,tn=Se===W?L.on.left.field:L.on.right.field;if(!yr)continue;let Mt=[w.from,...w.joins.map(De=>De.table)].find(De=>ye(De)===yr),jc=(await te(L.table.appId,p,n)).find(De=>De.code===fe(L.table,tn)),Og=jc?ke(jc,L.table.appId):it(tn),As,hs,zc,qc;if(Mt?.cteName!==null&&Mt?.cteName!==void 0){let De=g.get(Mt.cteName);As=De?.columnMeta?.get(oe),y.has(Mt.cteName)&&De&&(zc=De.rows.length,hs=De.rows.map(ht=>Tc(ht[oe])),qc=hs.some(ht=>ht.length===0))}else if(Mt){let De=(await te(Mt.appId,p,n)).find(ht=>ht.code===fe(Mt,oe));As=De?ke(De,Mt.appId):it(oe)}let Qi=Hl({fieldType:Og?.fieldType,sourceSemantics:As?.semantics,sourceRowCount:zc,values:hs,hasEmptyValue:qc,maxInKeys:Va});if(Qi.kind==="FALLBACK"&&Qi.reason==="JOIN_KEY_VALUES_RUNTIME"&&(G?.joinPlan.items.some(ht=>ht.targetAlias===W)||G?.joinPlan.serverFunctionConsumptions.some(ht=>ht.targetAlias===W)))continue;let Lg=Vl(Qi,tn,Li),Jc=J.joinConditions.get(W),_g=Jc?H(Jc):void 0,Dg=J.joinRelations.get(W);B.set(W,{plan:Qi,queries:Lg,additionalQuery:_g,additionalRelation:Dg})}if(B.size>0&&$R.set(w,B),w.orderBy.length>0||w.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await _i(w,p,n);if(w.orderMode!=="KINTONE_NATIVE")for(let W of L.semantics.values())W.fieldType==="STATUS"&&W.source&&s.add(W.source.appId);if(qa(w)&&!_&&V?.allowed!==!1){let W=F.capability==="EXACT_PUSHDOWN"?$e(w):"FULL_SCAN";u.set(w,(w.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:w,staticMode:W,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:Ie(w.where)}))}}}else if(U.type==="VALIDATE"){let w=P;a.add(w.appId);let _=await te(w.appId,p,n),h=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),I=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),M=kl(w,_),O=Xn(w.checkGroups??[]),F=lc(w.where);for(let L of O){if(L.field!=="$id"&&!h.has(L.field)&&!I.has(L.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${w.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!h.has(L.field)&&I.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let L of F){if(L!=="$id"&&!h.has(L)&&!I.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${w.appId}.`);if(L!=="$id"&&!h.has(L)&&I.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let V=new Map([...h].map(([L,W])=>[L,W.fieldType]));V.set("$id","RECORD_NUMBER"),On(w,V);let j=ge(w.where,L=>L.field==="$id"?ee({fieldType:"__ID__"}):h.get(L.field)?.semantics??(h.has(L.field)?ee(h.get(L.field)):void 0));if(j.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(j)}).`);let x=new Map([...h].map(([L,W])=>[L,W.fieldType])),G=new Map([...h.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),J=w.where===null?null:j.capability==="EXACT_PUSHDOWN"?w.where:zs(w.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:G,allowKlike:!1}),B=M.some(L=>L.field.fieldType==="NUMBER");B&&(l.add(w.appId),await At(w.appId,p,n)),WR.set(w,{targetFields:M.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...M.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(M.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,M.filter(W=>W.subtableCode===L).length])),capability:j,prefilter:J,numberPrecision:B})}else if(U.type==="UPDATE"||U.type==="DELETE"){if(a.add(P.appId),U.type==="UPDATE"&&P.applyBlocks?.length){let _=P,h=await te(_.appId,p,n);if(Ct(_,h),Za(_)){let I=h.filter(O=>!O.inSubtable),M=Jl(_.where,{fieldTypes:new Map(I.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(I.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});VR.set(_,M)}}let w=P;(w.type!=="UPDATE"||!Za(w))&&E(w)?.allowed!==!1&&await sr(w,p,n)}await Promise.all(Object.values(U).map(D))};if(await D(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&$t(e)){let P=Wt(e),{resolver:U,rewrites:w}=await Sn(P,p,n);w.length>0&&Xu.set(P,w);let _=ge(P.where,U),h=E(P);if(_.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(_)}).`);if(c.set(P,_),qa(P)&&h?.allowed!==!1){let I=await _i(P,p,n);u.set(P,(P.orderMode==="KINTONE_NATIVE"?ai:oi)({stmt:P,staticMode:_.capability==="EXACT_PUSHDOWN"?$e(P):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:Ie(P.where)}))}}return{capabilities:c,orderPlans:u,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Qu(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 dI(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 $E(e){return e==="<>"?"!=":e}function rt(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(rt).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return rt(t.expr);case"GROUPING_FIELD":return`GROUPING(${rt(t.ref)})`;case"GROUPING_REF":return rt(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${rt(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${rt(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(rt).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(rt).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function An(e){try{let t=e;switch(t.type){case"BINARY":return`${rt(t.left)} ${dI(t.op)} ${rt(t.right)}`;case"NULL_CHECK":return`${rt(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${An(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${An(t.right)})`;case"NOT":return`NOT (${An(t.expr)})`;case"GROUP":return`(${An(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Zu(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(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?fI(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 p=Ou(l),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Cu(p)}: ${p}`,` ${Lu(p)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${c}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":An(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(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=Ou(s),p=s.left.type==="FIELD"?s.left.field:void 0,c=$E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(p===void 0||d.field===p)&&d.operator===c);t.push(` ${Cu(l)}: ${l}`,` ${Lu(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??p??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${WE(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=Ou(s),p=s.left.type==="FIELD"?s.left.field:void 0,c=$E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(p===void 0||d.field===p)&&d.operator===c);t.push(` ${Cu(l)}: ${l}`,` ${Lu(l)}: kintone server exact prefilter`,` field: ${u?.field??p??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=H(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${An(o.residualWhere)}`,` ${WE(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(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 fI(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,p=l?.type==="KINTONE_FUNC"&&l.name===t,c=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((p||c)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Cu(e){return ne(e)?"relative date function":"kintone function"}function Ou(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 Lu(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function WE(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var YR=new WeakMap;function ec(e,t){if(Array.isArray(e))return e.map(r=>ec(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let p=s.value.slice(1);r.set(l,p);let c=t.get(p);return c===void 0?{type:"VARIABLE",name:p}:(i.add(l),{type:"STRING",value:c,fromVariable:!0})}),a={...n,args:o};return YR.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,ec(i,t)]))}function hi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...vc]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...Uc]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let p=hi(l.query,s);s.set(l.name,p)}return hi(e.query,s)}if(e.type==="UNION"){let s=hi(e.left,t),l=hi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Pe);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...yn([],[s]).columns);return{status:"STATIC",columns:a}}function EI(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function RI(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,p=[l.from,...l.joins.map(c=>c.table)];if(p.some(c=>c.cteName!==null)&&p.every(c=>c.cteName===Pe||c.cteName!==null&&r.has(c.cteName))){let c=await ur(l,t,n,r);c&&i.set(l,c)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var jR=Symbol("ksql.explainFetchPlan");function Mc(e){return e[jR]}function zR(e,t){e[jR]=t}async function qR(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ne,p=!0){let c=nc(r);try{let u=uc(e,a),d=ol(u),f=Bl(u,n),R=tR(u,f),E=new Map,g=new Map,y=new Map,A=[],S=[];for(let N=0;N<u.length;N++){let b=u[N],v=b.type==="SET_VARIABLE"?b.expr.type==="SCALAR_SUBQUERY"?{...b,expr:za(b.expr,E)}:b:za(b,E),C=ec(v,g);Qe(C);let k=await xi(C,t,c),D=EI(y),P=p?await HR(C,t,c,i,k,D):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:k};if(!p){let I=await RI(C,t,c,D);for(let[M,O]of I)P.plainGroupByPlans.set(M,O)}let U;if(C.type==="CREATE_TEMP_TABLE"){let I=new Map([...y].map(([O,F])=>[O,F.status==="STATIC"?{status:"STATIC",columns:F.columns}:{status:"DEFERRED"}])),M=hi(C.query,I);U=M.status==="STATIC"?{status:"STATIC",columns:M.columns,relation:{rows:[],columns:[...M.columns]},producerStatement:N+1}:{status:"DEFERRED",producerStatement:N+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},y.set(C.name,U)}let w={sources:[]},_=k.hasServerOnlyWhereFunction&&!k.allowed?Zu(k):[...Zu(k),...JR(gI(C,d.statements[N],P.capabilities,P.orderPlans,P.plainGroupByPlans,s,l,w,y,U),o)],h=Qu(P);A.push({index:N,type:d.statements[N].statementType,plan:_.length===0?h:[_[0],...h,..._.slice(1)]}),S.push({index:N,fetch:xc(w.sources),sources:w.sources}),C.type==="DROP_TEMP_TABLE"&&y.delete(C.name),(b.type==="SET_VARIABLE"||b.type==="DECLARE_VARIABLE")&&(E.set(b.name,b.type==="DECLARE_VARIABLE"&&b.annotation==="RELATIVE_DATE"?{type:"relative-date",value:R.get(b.name)}:b.type==="SET_VARIABLE"&&b.expr.type==="ARRAY"?{type:"array",elements:b.expr.elements.map(I=>({type:"string",value:I.value}))}:{type:"string",value:`@${b.name}`,placeholder:!0}),b.type==="DECLARE_VARIABLE"&&b.annotation===void 0&&(b.default.type==="STRING"||b.default.type==="NUMBER")&&g.set(b.name,b.default.type==="STRING"?b.default.value:Y(b.default)))}let m={statementCount:u.length,statements:A};return zR(m,{statements:S}),m}finally{Ic(c)}}function gI(e,t,n,r,i,o=100,a=Ne,s={sources:[]},l=new Map,p){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",...p?.status==="STATIC"?[` schema: ${p.columns.join(", ")}`,` schema source: SELECT output of statement ${p.producerStatement}`]:p?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${p.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${ze} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ai(e.query,t,n,r,i,s,"main",l).map(c=>` ${c}`)];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 c=es(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:",...Ai(e.expr.query,c,n,r,i,s,"main",l).map(u=>` ${u}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Ai(e.query,t,n,r,i,s,"main",l);if(e.type==="ASSERT"){let c=[`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"],u=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return u.forEach((d,f)=>{c.push(u.length>1?` subquery[${f+1}]:`:" subquery:");let R=es(d.query)?t:{...t,tempTablesReferenced:[]};c.push(...Ai(d.query,R,n,r,i,s,"main",l).map(E=>` ${E}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?cs(e,void 0,n,r,o,a,1e4,i):Ai(e,t,n,r,i,s,"main",l)}function es(e){if(Array.isArray(e))return e.some(es);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(es)}return!1}function Ai(e,t,n,r,i,o={sources:[]},a="main",s=new Map){if(t.tempTablesReferenced.length===0)return cs(e,void 0,n,r,100,Ne,1e4,i,!0,o,a);let l=[];e.type==="INSERT_SELECT"?l.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"&&l.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`),l.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),l.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 p=t.tempTablesReferenced.map(d=>[d,s.get(d)]);for(let[d,f]of p)f?.status==="STATIC"?l.push(` source: temp table ${d} (schema from statement ${f.producerStatement})`):(l.push(` source: temp table ${d}`),l.push(" schema: deferred (could not be derived statically)"));l.push(" rows: runtime (not materialized by EXPLAIN)");let c=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;c&&l.push(...XR(c,i?.get(c),p.some(([,d])=>d?.status!=="STATIC"))),l.push(p.every(([,d])=>d?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),l.push(" records API: none");let u=t.appIds.filter(d=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||d!==e.appId);return u.length>0&&l.push(` app: ${u.map(d=>`APP${d}`).join(", ")}`),l.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),l}var tc=new WeakMap;async function yI(e,t,n,r,i,o=100,a=Ne,s){let l=s??await xi(e.query,t,n),p=await HR(e.query,t,n,r,l,tc.get(e)),c={sources:[]},u=Zu(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...Qu(p),...u]:[...Qu(p),...u,...JR(cs(e.query,void 0,p.capabilities,p.orderPlans,o,a,r,p.plainGroupByPlans,!0,c),i)],f=ja(d,c.sources),R={type:"SELECT",columns:["plan"],rows:f.map(E=>({plan:E})),rowCount:f.length};return zR(R,{statements:[{index:0,fetch:xc(c.sources),sources:c.sources}]}),R}function JR(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 cs(e,t,n,r,i=100,o=Ne,a=1e4,s,l=!0,p,c="main"){let u=p??{sources:[]};if(e.type==="UNION"){let f=TI(e,n,r,s,u);return l?ja(f,u.sources):f}if(e.type==="WITH"){let f=wI(e,n,r,s,u);return l?ja(f,u.sources):f}if(e.type==="INSERT")return PI(e,t,i,o);if(e.type==="INSERT_SELECT")return CI(e,t,n,r,s);if(e.type==="UPSERT")return DI(e,t,i,o);if(e.type==="UPSERT_SELECT")return vI(e,t,n,r,s);if(e.type==="UPDATE")return OI(e,t,n,r,i,o,a);if(e.type==="DELETE")return _I(e,t);if(e.type==="REORDER")return UI(e,t);if(e.type==="VALIDATE")return hI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let E=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...E.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let f=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(E=>E.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...R?[" 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&&R?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...R?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let d=ot(e,t,n,r,s,!0,!0,u,c);return l?ja(d,u.sources):d}var VE={none:0,count_only:1,exact:2,prefiltered:3,all:4};function xc(e){return e.reduce((t,n)=>VE[t]>=VE[n.fetch]?t:n.fetch,"none")}function ja(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${xc(t).toUpperCase()}`,...n]}function mI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Ga(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:mI(o)};return e.sources.push(s),s}function AI(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ka(e){return` fetch: ${AI(e)}`}function hI(e,t){let n=WR.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)":H(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?sc:ac).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 SI(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function XR(e,t,n){let r=Z(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function ot(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let p=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),c=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),d=o&&p!==void 0&&AR(e,p),f=d?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||p&&p.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":$e(e),R=bI(e);p&&p.capability!=="EXACT_PUSHDOWN"&&R.push(...p.reasons.map(m=>m.code));let E=[],g=Pf(e,Ci.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let m of kc.get(e)??[]){if(E.push(` cross join: ${m.leftLabel} \xD7 ${m.rightLabel}`),E.push(` left rows: ${m.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${m.rightRows??`runtime (${m.rightRuntimeLabel})`}`),m.plan)E.push(` rows: ${m.plan.outputRows}`),E.push(` row guard: ${m.plan.outputRows} / ${m.plan.limit}`),E.push(" guard timing: before row materialization");else{let N=m.leftRows===null?"left rows":String(m.leftRows),b=m.rightRows===null?"right rows":String(m.rightRows);E.push(` rows: runtime (${N} \xD7 ${b})`),E.push(` row guard: runtime checked / ${Yl}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let m of Xu.get(e)??iR.get(e)??[])E.push(SI(m));g&&(E.push(` grouping source: ${g.source}`),E.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),E.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...XR(e,u,[e.from,...e.joins.map(m=>m.table)].some(m=>m.cteName!==null)));for(let m of e.columns){if(m.type!=="WINDOW_COL"||m.windowKind===void 0||m.windowKind==="RANKING")continue;let N=[];m.partitionBy.length>0&&N.push(`PARTITION BY ${m.partitionBy.map(b=>b.tableAlias?`${b.tableAlias}.${b.field}`:b.field).join(", ")}`),m.orderBy.length>0&&N.push(`ORDER BY ${m.orderBy.map(QR).join(", ")}`),m.windowKind==="VALUE"?E.push(` window ${m.alias}: ${m.valueFunc}(offset=${m.offset}) OVER (${N.join(" ")})`):m.windowKind==="AGGREGATE"&&(E.push(` window ${m.alias}: ${m.aggFunc} OVER (${N.join(" ")})`),E.push(m.frame===null?" frame: PARTITION ENTIRE":` frame: ${m.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${m.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let m=e.where===null?"":H(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${m}${m?" ":""}limit 1`),a){let N=Ga(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${m}${m?" ":""}limit 1`);E.push(Ka(N))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}c?(E.push(` order plan: ${c.kind}`),c.reasonCodes.length>0&&E.push(` order reason: ${c.reasonCodes.join(", ")}`),c.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):c.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${c.scanRows}`))):g&&E.push(" order plan: CANONICAL_LOCAL");let y=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,A=xt(y);c?.requiresCompleteInput&&A.add("LOCAL_ORDER");let S=at(e.where);if(A.size>0&&(!S||g!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...A].join(", ")}`),E.push(" onLimit=truncate: disabled")),S)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let m=mo(c?.kind==="CANONICAL_REST_TOP_N"?ER(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let N=c?.kind==="KORDER_CURSOR"?Xl(e):m.query;if(E.push(` kintone query: ${N||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let b=N?"EXACT":"ALL";E.push(Ka(Ga(s,e.from.appId,e.from.alias,l,b,N)))}E.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=KR.get(e),N=BR.get(e),b=N??ln(e);if(e.joins.length>0)if(m){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),m.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${m.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${m.joinPlan.residualWhere===null?"(none)":An(m.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${m.joinPlan.allKlikes.length-m.joinPlan.appliedKlikes.size}`),m.joinPlan.residualWhere!==null)for(let I of m.joinPlan.rejections)E.push(` join pushdown not applied: ${I.reason}`)}else{let I=e.joins.some(M=>M.type!=="INNER"&&M.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${I}`)}let v=sn(e,e.from,u),C=e.from.alias?` AS ${e.from.alias}`:"",k=b.mainCondition,D=pR(e),P=e.joins.length===0&&p?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!It(e.where)?H(e.where):"",U=e.from.alias?m?.queriesByAlias.get(e.from.alias):void 0,w=U||(k!==null?H(k):P||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),E.push(` kintone query: ${w}`);let _=m?.joinPlan.items.find(I=>I.targetAlias===e.from.alias),h=m?.joinPlan.serverFunctionConsumptions.find(I=>I.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let I=!N&&D!==null,M=w==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":I?"PREFILTERED":_?.relation==="exact"||h||P!==""?"EXACT":"PREFILTERED";E.push(Ka(Ga(s,e.from.appId,e.from.alias,l,M,w,I)))}_||h?(E.push(` pushdown applied: ${U}`),E.push(` relation: ${_?.relation??"exact"}`)):N&&k!==null?(E.push(` pushdown applied: ${w}`),E.push(` relation: ${b.mainRelation??"exact"}`)):D!==null&&(!N||Ti(D))&&E.push(` pushdown candidate: ${H(D)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let I of e.joins){let M=sn(e,I.table,u),O=I.table.alias?` AS ${I.table.alias}`:"",F=I.type==="INNER"?"JOIN":`${I.type} JOIN`,V=I.table.alias?b.joinConditions.get(I.table.alias)??null:null,j=I.table.alias&&!I.table.subtableCode&&I.table.cteName===null&&e.where?Dr(e.where,{tableAlias:I.table.alias}):null,x=I.table.alias?m?.queriesByAlias.get(I.table.alias):void 0,G=I.table.alias?$R.get(e)?.get(I.table.alias):void 0,J=!N&&I.type==="INNER"&&I.table.cteName===null&&!I.table.subtableCode&&[e.from,...e.joins.map(oe=>oe.table)].some(oe=>oe.cteName!==null),B=x||(V!==null?H(V):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=J||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",W=G&&G.queries.length>0?G.queries.map(oe=>B!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${oe}) and (${B})`:oe):[L?"(runtime source keys)":B],Se=W.join(" | ");E.push(` ${F}: APP${I.table.appId}${O} (${I.table.appId})`);for(let oe of W)E.push(` kintone query: ${oe}`);let lt=m?.joinPlan.items.find(oe=>oe.targetAlias===I.table.alias),yr=m?.joinPlan.serverFunctionConsumptions.find(oe=>oe.targetAlias===I.table.alias);if(a&&I.table.cteName===null){let oe=L||!G&&!N&&j!==null,tn=Se==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":oe?"PREFILTERED":G?.plan.kind==="IN"&&lt?.relation!=="superset"&&G.additionalRelation!=="superset"||lt?.relation==="exact"||yr?"EXACT":"PREFILTERED";E.push(Ka(Ga(s,I.table.appId,I.table.alias,"join",tn,Se,oe)))}if(G)if(G.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let oe of W)E.push(` pushdown applied: ${oe}`);E.push(" relation: superset")}else if(G.plan.kind==="IN"){let oe=lt?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let tn of W)E.push(` pushdown applied: ${tn}`);E.push(` relation: ${oe}`)}else G.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${G.plan.reason}`)):G.plan.kind==="FALLBACK"&&(E.push(G.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${G.plan.reason}`));else J?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),j!==null&&E.push(` pushdown candidate: ${H(j)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):lt||yr?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${lt?.relation??"exact"}`)):N&&V!==null?(E.push(` pushdown applied: ${B}`),E.push(` relation: ${b.joinRelations.get(I.table.alias)??"exact"}`)):j!==null&&(!N||Ti(j))&&E.push(` pushdown candidate: ${H(j)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return E.push(...NI(e,n,r,i,s)),E}function TI(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,p)=>{p>0&&s.push(""),s.push(...ot(l,`[union:${p+1}]`,t,n,r,!0,!0,i,"union"))}),s}function II(e){let t=new Map,n=a=>ye(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Pe?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),p=[];for(let c of a.joins){let u=r(c.table),d=n(c.table);if(c.type==="CROSS"){let f=s!==null&&u!==null?ni(s,u):null;p.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:c.table.cteName===null?`APP${c.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${c.type} JOIN ${d}`}return p.length>0&&kc.set(a,p),at(a.where)?s=0:a.where!==null&&(s=null),Z(a).type!=="NONE"||a.distinct||a.having!==null||Wn(a)||a.columns.some(c=>c.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Go(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function wI(e,t,n,r,i={sources:[]}){II(e);let o=[];for(let a of e.ctes)if(a.query.type==="SELECT")o.push(...ot(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push("");else if(a.query.type==="GENERATE_SERIES"){let s=a.query,l=YR.get(s);if(s.args.some(d=>d.type==="VARIABLE")){let d=f=>{let R=s.args[f];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:f<2?"literal":R.type==="NUMBER"?Y(R):R.value:f===2?"runtime":"deferred"};o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${s.columnAlias}`," series type: deferred (variable)",` start: ${d(0)}`,` stop: ${d(1)}`,` step: ${d(2)}`," rows: runtime",` row guard: runtime / ${wt}`," records API: none","");continue}let c=Go(s),u=c.kind==="DATE"?`${c.step} ${String(c.dateUnit??"DAY").toLowerCase()}${Math.abs(c.step)===1?"":"s"}`:String(c.step);o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${s.columnAlias}`,` series type: ${c.kind}${l?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${l?.variableNames.has(0)?`@${l.variableNames.get(0)} (DECLARE default; value hidden)`:c.start}`,` stop: ${l?.variableNames.has(1)?`@${l.variableNames.get(1)} (DECLARE default; value hidden)`:c.stop}`,` step: ${u}`,` rows: ${c.rowCount}${l?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${c.rowCount} / ${wt}`,...l?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...cs(e.query,"[main]",t,n,100,Ne,1e4,r,!1,i)),$t(e)){o.push("");let a=Wt(e);o.push(...ot(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function bI(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.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=Z(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"),It(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Gt(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 NI(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...ot(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ot(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ot(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...ot(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function PI(e,t,n=kt,r=Ne){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,...Fc(ca(e,n,r))]:a}function CI(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(...ot(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function OI(e,t,n,r,i=100,o=Ne,a=1e4){if(e.applyBlocks?.length)return LI(e,t,i,o,a);let s=Vd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=Xo(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Mi(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Mi(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let d=[];if(s&&d.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&d.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),c&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!c&&d.push("\u5358\u7D14 SET"),u.push(` set type: ${d.join(", ")}`),p){let f=kI(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${xI(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ot(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function LI(e,t,n,r,i){let o=ca(e,n,r),a=o.branches[0],p=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),c=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=c.includes("REMOVE"),d=VR.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":H(d.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${d.appliedKlikes.size}`,`unapplied KLIKE: ${d.unappliedKlikes.length}${d.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: ${Mi(e.where)}`,`parent cardinality: ${Tt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${c.join(" | ")}`,`selector: ${p.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Fc(o)]}function _I(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Mi(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(at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function DI(e,t,n=kt,r=Ne){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,...Fc(ca(e,n,r))]:a}function Fc(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 vI(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(...ot(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function UI(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(QR).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,at(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: ${Mi(e.where)}`),o}function QR(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Mi(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return H(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function kI(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&ts(n,t),n.type==="STRING_FUNC"&&ts(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Pi(n,t);return[...t]}function ts(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"&&(ts(e.left,t),ts(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Pi(n,t)}async function ZR(e,t,n,r,i){let o=Pc(e),a=await Le(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(d=>[d,i?.get(s)?.columnMeta?.get(d)?.fieldType??(i?.get(s)?.columnMeta?.get(d)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Le(t.appId,n,r),p=new Set,c=new Set;for(let d of o){if(d.tableAlias!==null){if(d.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(d.field!=="$id"&&!a.has(d.field))throw be(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(d.field)}else if(d.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(d.field!=="$id"&&!l.has(d.field))throw be(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(d.field)}else throw be(`CHECK \u306E\u4FEE\u98FE\u5B50 ${d.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=d.field==="$id"||a.has(d.field),R=d.field==="$id"||l.has(d.field);if(!f)throw be(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw be(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(d.field)}let u=new Map;for(let[d,f]of a)u.set(d,f),u.set(`APP${e.appId}.${d}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)u.set(`${t.alias}.${d}`,f);return{targetFields:[...p],sourceFields:[...c],evaluationTypes:u}}function MI(e,t,n){if(!e)return{};let r=Lt(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 Pi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Pi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Pi(e.left,t),Pi(e.right,t))}function xI(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} = ${eg(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 eg(e){return`${HE(e.left)} ${e.op} ${HE(e.right)}`}function HE(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"?Y(e):e.type==="ARITH"?`(${eg(e)})`:"..."}var Ee=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 _e=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 Gc(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 Je(e){return new _e("READ_ONLY_VIOLATION",e)}function Er(e,t){return new _e("PARSE_ERROR",e,t)}function tg(){let e=new wn;return new _e("SEARCH_ABORTED",e.message,e)}function Hi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function FI(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 _n(e){return e instanceof _e?e:e instanceof Oe||e instanceof T?new _e("PARSE_ERROR",Hi(e),e):e instanceof wn||e?.name==="SearchAbortedError"?new _e("SEARCH_ABORTED",Hi(e),e):e instanceof Me||e?.name==="FetchAllLimitError"?new _e("FETCH_LIMIT_EXCEEDED",Hi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new _e("CLIENT_ERROR",e.message,e.cause):FI(e)?new _e("CLIENT_ERROR",Hi(e),e):new _e("EXECUTION_ERROR",Hi(e),e)}function ps(e,t){let n=_n(e);if(e instanceof re){let r=t[e.statementIndex];if(r!==void 0)return Gc(n,e.statementIndex,r.type)}return n}var GI=2,ds=5,KI=3e4,BI=10*6e4+3e4,fs=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??GI;if(!Number.isSafeInteger(r)||r<1||r>ds)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ds}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??KI,this.quarantineMs=n.quarantineMs??BI}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 Sa(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>ds)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ds}.`)}};function $I(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function WI(e,t=r=>new Promise(i=>setTimeout(i,r)),n=$I){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 VI(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 ng(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 p=await t.get();return p.next||(n=!0,t.onReleased?.()),p});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await VI(WI(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function rg(e){return ig(e,YI(e))}function ig(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=jI(o.options),s=zI(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Es(o.minValue),maxValue:Es(o.maxValue),minLength:Es(o.minLength),maxLength:Es(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!HI.has(o.type)};l.semantics=ee(l),i.push(l),o.fields&&i.push(...ig(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var HI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function YI(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 Es(e){return e==null||e===""?void 0:e}function jI(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 zI(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function og(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 qI="Filter aborted because of too many search results";function ag(e){return e?.includes(qI)===!0}var sg="/k/v1/records.json",Rs="/k/v1/records/cursor.json",JI=4096,XI=2,Kc=e=>kintone.api.url(e,!0);function QI(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(sg,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=JI?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Kc(sg),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 Yi(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
14
+ `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function ZI(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Yi({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}),Yi(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}),Yi(n)}}function ew(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Dn(e,t,n){try{return await kintone.api(Kc(e),t,n)}catch(r){throw Yi(r)}}function tw(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function nw(e={}){let t=e.cursorMaxActive??XI;tw(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=QI(a),l=await fetch(s.url,s.init);if(!l.ok)throw await ZI(l);let p=await l.json();return ag(l.headers.get("X-Cybozu-Warning"))?{...p,searchAborted:!0}:p}catch(s){throw Yi(s)}},async openCursor(a){let s=Kc(Rs),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??(n=new fs(l,{maxActive:t})),n.snapshot().active>=t){let E=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw E.name="CursorCapacityError",E}let p=await n.acquire(),c;try{c=await n.runCreate(()=>Dn(Rs,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(E){throw typeof E?.code=="string"?(p.release(),E):(p.quarantine(),new Ta(E))}let u=c.id,d=ng(Number(c.totalCount),{get:()=>Dn(Rs,"GET",{id:u}),delete:()=>Dn(Rs,"DELETE",{id:u}),isAlreadyReleasedError:ew,onReleased:()=>p.release(),onReleaseUnknown:()=>p.quarantine()}),f=null,R={totalCount:d.totalCount,async nextPage(){let E=await d.nextPage();return E.next||i.delete(R),E},close(){return f||(f=d.close().finally(()=>{i.delete(R)}),f)}};return i.add(R),R},async getApps(){let s=[],l=0;for(;;){let p=await Dn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of p.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(p.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Dn("/k/v1/app/form/fields.json","GET",{app:a});return rg(s.properties)},async getNumberPrecision(a){let s=await Dn("/k/v1/app/settings.json","GET",{app:a});return cf(s)},async getProcessStatuses(a){let s=await Dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:og(s.states)}}}}var lg=new Set(["postRecords","putRecords","deleteRecords"]),ji=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 en(e){try{return await e()}catch(t){throw new ji(t)}}function rw(e){return()=>{throw Je(`${String(e)} is blocked by the readonly client`)}}function Rr(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 p=await en(()=>t(l));if(p.searchAborted===!0)throw tg();return p},openCursor:async l=>{let p=await en(()=>n(l)),c=p.nextPage.bind(p),u=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>en(()=>c()),close:()=>en(()=>u())}},getApps:()=>en(()=>r()),getFields:l=>en(()=>i(l)),getNumberPrecision:l=>en(()=>o(l)),getProcessStatuses:l=>en(()=>a(l))});return new Proxy(s,{get(l,p,c){return lg.has(p)?rw(p):Reflect.get(l,p,c)},has(l,p){return lg.has(p)?!1:Reflect.has(l,p)}})}function iw(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 ji(o.reason)})(),n)}}}async function gr(e,t){let n=iw(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 ow="A-Za-z",aw="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",$c=`${ow}${aw}`,cg=`${$c}0-9_`,sw=new RegExp(`^[${$c}]$`,"u"),lw=new RegExp(`^[${cg}]$`,"u"),uw=new RegExp(`^[${$c}][${cg}]{0,63}$`,"u");function cw(e){return sw.test(e)}function pw(e){return lw.test(e)}function Wc(e){let t=e.normalize("NFC").toUpperCase();if(!uw.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 Bc(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 dw(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 fw(e,t){let n=t>0?e[t-1]:"";if(Bc(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,!cw(e[l]??""))return null;for(l++;l<e.length&&pw(e[l]);)l++;s=l;try{o=Wc(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&&Bc(e[l]);)l++;if(l===f)return null}let p=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&dw(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Bc(u))return null;let d={profile:c,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:p,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Vc(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
15
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=fw(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function ug(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function pg(e,t="dev",n){let r=Vc(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let y=a(g.profile),A=o.get(g.appId);A||(A=new Set,o.set(g.appId,A)),A.add(y.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let y=a(g.profile).toLowerCase(),A=`logical:${g.logicalName}@${y}`;if(l.has(A))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,y);l.set(A,S),s.add(S)}let p=new Map,c=new Map;for(let[g,y]of o.entries()){let A=[...y].sort();if(!(A.length<=1))for(let S of A){let m=ug(s);p.set(`physical:${g}@${S}`,m),c.set(m,{source:"physical",mappedAppId:m,appId:g,profile:S})}}let u=[],d=[],f=0,R=0,E=(g,y,A,S)=>{if(!g&&y===A)return;let m=f;u.push(g),f+=g.length,d.push({normalizedStart:m,normalizedEnd:f,sourceStart:y,sourceEnd:A,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let y=a(g.profile).toLowerCase(),A;if(g.source==="physical")A={source:"physical",mappedAppId:p.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let N=`logical:${g.logicalName}@${y}`,b=p.get(N);b===void 0&&(b=ug(s),p.set(N,b)),A={source:"logical",logicalName:g.logicalName,mappedAppId:b,appId:l.get(N),profile:y}}c.set(A.mappedAppId,A),E(e.slice(R,g.start),R,g.start);let S=e.slice(g.referenceValueEnd,g.appEnd),m=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${A.mappedAppId}${S}`:`APP${A.mappedAppId}${S}`;E(m,g.start,g.fullEnd,A.mappedAppId),R=g.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:d}}var dg=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),fg=new Set([...dg,"onLimitReached"]),Ew=new Set([...fg,"variables","tempTableMaxRows"]);function Eg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function zi(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Rg(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 Rw(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 gg(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=Wc(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`);zi(r,`logicalApps.${n}`),t[i]=r}return t}function yg(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&&zi(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&zi(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(zi(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 Hc(e,t){Eg(e);let n=t==="run"?fg:dg;Rg(e.client);let r=yg(e,n,t==="run"?"runQuery":"explainQuery"),i=gg(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function mg(e){Eg(e),Rg(e.client),e.variables!==void 0&&Rw(e.variables),e.tempTableMaxRows!==void 0&&zi(e.tempTableMaxRows,"tempTableMaxRows");let t=yg(e,Ew,"runBatch"),n=gg(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={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,p)=>{let c=t.get(Number(l));return`${c.source==="logical"?r==="physical"?`LAPP_${c.logicalName} -> APP${c.appId}`:`LAPP_${c.logicalName}@${c.profile}`:r==="physical"?`APP${c.appId}`:`APP${c.appId}@${c.profile}`}${p??""}`})}return Array.isArray(e)?e.map(i=>gs(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,gs(o,t,n)])):e}function gw(e,t,n){return e.slice(t,n)}function qi(e,t,n){let r=Vc(e),i=r.find(p=>p.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${gw(e,i.start,i.fullEnd)}).`);if(!r.some(p=>p.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=pg(e,"browser",{resolveLogicalApp(p){let c=n?.[p];if(c===void 0)throw new Error(`ArgumentError: logical app LAPP_${p} is not defined.`);return c}}),a=[...o.appBindingByMappedApp.values()].filter(p=>p.source==="logical"),s=p=>o.appBindingByMappedApp.get(p)?.appId??p,l={getRecords:p=>t.getRecords({...p,app:s(p.app)}),openCursor:p=>t.openCursor({...p,app:s(p.app)}),getApps:()=>t.getApps(),getFields:p=>t.getFields(s(p)),getNumberPrecision:p=>t.getNumberPrecision(s(p)),getProcessStatuses:p=>t.getProcessStatuses(s(p))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function Ji(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 Xi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return gs(e,n,{logicalAppDisplay:"physical"})}function ys(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 yw(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function mw(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function ms(e,t=e.metrics){let n=YE(e);return{type:"query",rows:e.rows.map(yw),columns:e.columns.map(r=>mw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ys(t)}}function Ag(e,t={}){let n=new jt(e).tokenize(),r=new zt(n,t).parse();return Qe(r),r}function hg(e,t={}){let n=new jt(e).tokenize(),r=new zt(n,t).parseStatements();return r.forEach(Qe),r}function Yc(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 Sg(e){if(e instanceof ce)return Er(e.message,e);let t=_n(e);return t.code==="PARSE_ERROR"?t:Er("SQL statement could not be parsed",e)}function Aw(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return Ag(e,{import:!0})}catch(t){let n=Sg(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Er("This API accepts one statement; use runBatch for multiple statements",t):n}}function Tg(e){if(io(e)==="UNKNOWN")throw Je("Unclassifiable statement is not allowed");return e}function Ig(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return hg(e,{import:!0})}catch(t){throw Sg(t)}}function hw(e){let t=Tg(e),n=t.type;if(n==="IMPORT")throw Je("IMPORT is disabled by default in engine library queries");if(!kn(t))throw Je(`${n} statements are not read-only`);if(Yc(t))throw Je("APPLY statements are not allowed in engine library queries");if(!ap(t))throw Je(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function wg(e){let t=Tg(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Je("IMPORT is disabled by default in engine library batches");if(!kn(n))throw Je(`${n.type} statements are not read-only`);if(Yc(n))throw Je("APPLY statements are not allowed in engine library batches");if(Ft(n.type))throw Je("DML VALIDATE ONLY statements are not supported by runBatch")}function bg(e){let t=Aw(e);return hw(t),t}function Ng(e){let t=Ig(e);return t.forEach(wg),t}function Pg(e){let t=e.trim(),n=Ig(t);n.forEach(wg);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 Sw(e){let t=e.error,n=t?.cause!==void 0?_n(t.cause):new _e("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Gc(n,e.index,e.type)}async function Tw(e,t){let n=[],r=[];try{let i=mg(t),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings,n=Ng(o.sql);let a=await gr(o.client,c=>eR(o.sql,Rr(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw Sw(s);let l=[],p=a.statements.map(c=>{let u={index:c.index,type:c.type,status:c.status};if(c.tempTable!==void 0&&(u.tempTable=c.tempTable),c.rowCount!==void 0&&(u.rowCount=c.rowCount),c.error!==void 0&&(u.error={code:c.error.code,message:c.error.message}),c.skippedReason!==void 0&&(u.skippedReason=c.skippedReason),c.status==="success"&&c.result?.type==="SELECT"){u.resultIndex=l.length;let d=ms(c.result,a.metrics);l.push(n[c.index]?.type==="EXPLAIN"?Xi(d,r):d)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:p,results:l,warnings:[]}}catch(i){throw Ji(ps(i,n),r)}}function Cg(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Iw(e,t){let n=[];try{let r=Hc(t,"run"),i=qi(e,r.client,r.logicalApps);n=i.logicalBindings;let a=bg(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await gr(i.client,l=>rc(i.sql,Rr(l),{...a,captureColumnMeta:!0}));return Cg(s),ms(s)}catch(r){throw Ji(_n(r),n)}}async function ww(e,t){let n=[],r=[];try{let i=Hc(t,"explain"),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Pg(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await gr(o.client,f=>rc(a.legacySql,Rr(f),i.executeOptions));Cg(c);let u=Xi(c.rows.map(f=>String(f.plan??"")),r),d=Mc(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
16
+ `),plan:d,metrics:ys(c.metrics)}}let s=await gr(o.client,c=>qR(o.sql,Rr(c),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=Xi(s.statements.flatMap(c=>[...s.statementCount>1?[`[${c.index+1}] ${c.type}`]:[],...c.plan]),r),p=Mc(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
+ `),plan:p,metrics:ys()}}catch(i){throw Ji(ps(i,n),r)}}var dD="3.65.0";export{_e as KsqlEngineError,nw as createReadonlyKintoneClient,ww as explainQuery,Tw as runBatch,Iw as runQuery,dD as version};