@rex0220/kintone-sql-tools 3.66.0 → 3.66.1

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 ke(e,t,n,r,i={}){let o=i.pageSize??Jm,a=Math.max(1,i.parallel??Xm),s=i.maxRecords??Qm,l=i.onLimit??"error",u=i.stopAfter;if(u!==void 0&&(!Number.isSafeInteger(u)||u<=0||u>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=u??s,c=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,m=0,g=sp(n,E),h=await ap(e,t,g,c,o,m);if(op(h,i),d.push(...h.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}if(h.records.length<o)return d;for(m+=o,m>=Ps&&(E=lp(h.records),m=0);;){if(u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}let T=p-d.length,y=Math.ceil(T/o),b=Math.max(1,Math.min(a,y)),P=[];for(let O=0;O<b;O++){let N=m+O*o;if(N>=Ps)break;P.push(N)}let v=sp(n,E),C=await Promise.all(P.map(O=>ap(e,t,v,c,o,O)));for(let O of C)op(O,i);let M=!1;for(let O of C){if(d.push(...O.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}if(O.records.length<o){M=!0;break}}if(M)break;if(m+=o*P.length,m>=Ps){let O=C[C.length-1];E=lp(O.records),m=0}}return d}function op(e,t){e.searchAborted&&t.onSearchAborted?.()}function up(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 Jm=500,Xm=1,Qm=1e4,Ps=1e4;async function ap(e,t,n,r,i,o){let a=Zm(n,i,o);return e({app:t,query:a,fields:r})}function sp(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 Zm(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function lp(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 Fe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var eg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function tg(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 he(e){let t=eg.exec(e.trim());if(t===null)return null;let n=tg(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 Cs(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 cp(e){let t=he(e);return t===null?null:Cs(t)}function ng(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 io(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=ng(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function oo(e,t){let n=he(e),r=he(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return io(n,r)}var Ce="__NO_FROM__";function Os(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function ao(e){return e.windowKind==="AGGREGATE"}function Ls(e){return e.windowKind==="VALUE"}function Ae(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return cp(t)??t}function pp(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 rg(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=rg(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 dp(e){return Z(e).type!=="NONE"}function fp(e,t){let n=Z(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),u=r.get(l.canonicalId);if(u)return u;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function uo(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function $t(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function ig(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 _s(e){return $t(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Fn(e){return!_s(e)&&(ig(e.type)||$t(e.type))}function Ep(e){return Fn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Rp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Oe(e,t){for(let n of t)e.add(n)}function so(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"&&Rp.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=>so(i,t)):so(r,t))}function lo(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"&&!Rp.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=>lo(i,t)):lo(r,t))}function Bt(e){let t=new Set;if($t(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Oe(t,xn(e));break;case"UNION":Oe(t,gp(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Oe(t,Bt(n.query));Oe(t,Bt(e.query));break;case"CREATE_TEMP_TABLE":Oe(t,Bt(e.query));break;default:break}return so(e)&&t.add("STATISTICAL_AGGREGATE"),lo(e)&&t.add("AGGREGATE"),t}function mp(e){return Bt(e).size>0}function gp(e){let t=e.left.type==="SELECT"?xn(e.left):gp(e.left);return Oe(t,xn(e.right)),e.all||t.add("DISTINCT"),t}function xn(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"&&Oe(t,xn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Oe(t,kn(i.condition));return Oe(t,kn(e.where)),Oe(t,kn(e.having)),so(e)&&t.add("STATISTICAL_AGGREGATE"),lo(e)&&t.add("AGGREGATE"),t}function kn(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")&&Oe(t,xn(e.right.query));break;case"LOGICAL":Oe(t,kn(e.left)),Oe(t,kn(e.right));break;case"NOT":case"GROUP":Oe(t,kn(e.expr));break;case"EXISTS":Oe(t,xn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function yp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function hp(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 co=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),sn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Sr=new Set([...sn,...co]),ln="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",It="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ie(e){return co.has(e)}function Gn(e){return sn.has(e)}function Ze(e){return Sr.has(e)}var og=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})}),Us=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})}),Tr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Tr} scope does not support ${e}`)}function ag(e,t){let n=Tr;Tr=e;try{return t()}finally{Tr=n}}function sg(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 $n(e,t){return ag(e,()=>lg(t,og[e]))}function lg(e,t){let n=sg(e);if(n===null)return;if(n.type==="UPSERT"){cg(n,t);return}let r=n.applyBlocks;if(Ds(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){pg(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),dg(i.where,t.multipleParents),Sp(r,t)}function Sp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Tp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)po(i,"APPEND targets");Bn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Ap(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("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(".")&&q("parent or qualified PATCH targets in this phase")}Bn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Ap(r.selector.where,t.idxSelectors)}}}}function Tp(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 ug=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ip(e,t){if(Tp(e),e.targetKind==="MULTI_VALUE"){if(!ug.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 Ds(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Tr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function cg(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];Ds(n),Ds(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),wp(n,"UPSERT ON INSERT"),Sp(r,{...t,idxSelectors:!1,expectRows:!1})}function wp(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)po(i,"APPEND targets");Bn(r.values,"APPEND values")}}function pg(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),wp(t,"INSERT")}function wt(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 fo(e,t){let n=Us[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Ms(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Kn(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 ${Kn(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 ${Kn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!wt(t.where))throw new Error(`UnsupportedError: APPLY ${Kn(e)} execution does not support multiple-parent APPLY`)}function Ms(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 bp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||wt(t.where))&&!Us[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Kn(e)} public multiple-parent write is not connected`)}function Wn(e){if(!Us[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Kn(e)} internal prepared write is not available`)}function Kn(e){return`Phase ${e.slice(5)}`}function dg(e,t){wt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),vs(e,t))}function vs(e,t){if(Array.isArray(e)){for(let o of e)vs(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")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("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)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ie(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))vs(o,t)}function Ap(e,t){Bn(e,"child row selectors",t)}function Bn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Bn(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")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ie(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),po(l,t,n)}if(i==="FIELD_REF"&&po(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Bn(s,t,n)}function po(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}function Ir(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=fg(e.op);if(t===null)throw new ce(`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:Ir(e.left),right:Ir(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Ir(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function fg(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 Np(e){return e.includes("%")||e.includes("_")}function wr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Vt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Wt(e){if(e===null)return!1;if(wr(e))return!0;switch(e.type){case"LOGICAL":return Wt(e.left)||Wt(e.right);case"NOT":case"GROUP":return Wt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ie(e){if(e===null)return!1;if(Vt(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 Y(e){switch(e.type){case"BINARY":return Eg(e);case"NULL_CHECK":return mg(e);case"LOGICAL":return gg(e);case"NOT":return yg(e);case"GROUP":return hg(e);case"EXISTS":throw new ce("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ce("internal error: BOOLEAN predicate reached kintone query conversion")}}function Eg(e){if(wr(e))throw new ce("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=Cp(e.left),n=Rg(e.op),r=Ag(e.right,e.op);return`${t} ${n} ${r}`}function Rg(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 mg(e){let t=Cp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function gg(e){let t=Y(e.left),n=Y(e.right),r=e.op==="AND"?"and":"or",i=Pp(e.left)?`(${t})`:t,o=Pp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function yg(e){return Y(Ir(e.expr))}function hg(e){return`(${Y(e.expr)})`}function Cp(e){if(e.type==="FUNC_FIELD")throw new ce(`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 ce("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 ce("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 ce("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 ce("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Cg(e.field)}function Ag(e,t){switch(e.type){case"VARIABLE":throw new ce(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ce(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Op(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return Lp(e);case"IN_LIST":return Ng(e,t);case"ARITH_VALUE":throw new ce("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 ce("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 ce("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ce("\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 ce("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Op(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Lp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Sg(e)}function Sg(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?br():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!wg(e.args.offset,e.args.offsetText)||!Tg.has(e.args.unit)?br():`${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&&!Ig.has(e.args.weekday)?br():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"||!bg(e.args.day)?br():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return br()}var Tg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Ig=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function wg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function bg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function br(){throw new ce("internal error: invalid relative date function AST reached kintone query conversion")}function Ng(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ce("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Pg(e.values),`(${e.values.map(r=>r.type==="STRING"?Op(r):r.type==="NUMBER"?z(r):Lp(r)).join(",")})`}function Pg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ce(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Cg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Pp(e){return e.type==="LOGICAL"}var ce=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Eo(e){return`'${e.replace(/'/g,"''")}'`}function Vn(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 z(e);if(e.type==="STRING_FUNC")return xs(e);let n=`${Vn(e.left)}${e.op}${Vn(e.right)}`;return t?n:`(${n})`}function _p(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return xs(e.expr);if(e.type==="AGG_FIELD")return ct(e.expr);if(e.type==="ARITH_FIELD")return Vn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ks(e.expr)}function vp(e){switch(e.type){case"STRING":return Eo(e.value);case"NUMBER":return z(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=>Eo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(vp).join(",")})`;case"ARITH_VALUE":return Vn(e.expr);case"CASE_VALUE":return ks(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Nr(e){switch(e.type){case"BINARY":return`${_p(e.left)} ${e.op.replace("_"," ")} ${vp(e.right)}`;case"NULL_CHECK":return`${_p(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Nr(e.left)} ${e.op} ${Nr(e.right)})`;case"NOT":return`NOT (${Nr(e.expr)})`;case"GROUP":return`(${Nr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Dp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Eo(t.value)).join(",")}]`:e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ct(e):e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e):un(e)}function ks(e){let t=e.branches.map(r=>`WHEN ${Nr(r.condition)} THEN ${Dp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Dp(e.elseResult)}`;return`CASE ${t}${n} END`}function Og(e){return e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ct(e):un(e)}function xs(e){return`${e.func}(${e.args.map(Og).join(",")})`}function un(e){switch(e.type){case"STRING":return Eo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return xs(e);case"CASE_WHEN":return ks(e);case"SCALAR_ARITH":return`(${un(e.left)}${e.op}${un(e.right)})`;case"CONCAT_OP":return`(${un(e.left)}||${un(e.right)})`}}function Lg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e,!0):un(e)}function pe(e,t,n){let r=Lg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ct(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ct(e.left)}${e.op}${ct(e.right)}`}var Up=Symbol("ksql.groupingRowMeta"),Mp=new WeakMap;function Fs(e,t){return Object.defineProperty(e,Up,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Gs(e){return e[Up]}function _g(e){return Gs(e)?.includedCanonicalIds}function kp(e,t){Mp.set(e,t)}function Hn(e,t){let n=_g(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Mp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Ro=["$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 Ks(e){return e.startsWith("_")||e.startsWith("$")}var Dg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function $s(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some($s);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"?Dg.test(t.field):Object.values(t).some($s)}function vg(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 Be(e)||$s(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Ug=["_pid","_rid","_idx"];function Bs(e){return[...new Set(e)]}function Mg(e){switch(e.kind){case"APP":return Bs([...e.fieldCodes,...Ro]);case"SUBTABLE":return Bs([...e.childFieldCodes,...Ug,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Bs(e.columns)}}function xp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Mg(t(r,i))}))}function Fp(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 Gp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Kp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Fp(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:Gp(a,r.fieldCode)}}function kg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function xg(e,t,n){let r=Fp(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:Gp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>kg(l)===e?[{column:l,columnIndex:u}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],u=vg(l.column);return u==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:u==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&pe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Bp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?xg(r.name,t,n):{kind:"EXPRESSION"})}}var Fg="B65_NON_GROUPED_DEPENDENCY",Vs=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 mo(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 Hs(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return mo(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?mo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Ys(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Wp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Vp(e){return e.type==="WINDOW_COL"}function Gg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Ht(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 u=e.map(p=>Ht(p,t));return u.some(p=>p===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Ys(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Ht(n.expr,t);let i=typeof r=="string"?Vs.get(r):void 0;if(i!==void 0)return Ht(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:${Gg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Hs(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 u of Object.keys(n)){if(u==="type"||a.has(u))continue;let p=Ht(n[u],t);if(p===null)return null;s.push(`${u}=${p}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Kg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Bg(e){let t=new Map;for(let n of e){let r=Kg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function js(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var $g=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function go(e){if(e&&typeof e=="object"){let t=e,n=Hs(t);if(n!==null)return js(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"?Vs.get(t.type):void 0;if(i!==void 0){let a=go(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function $p(e,t,n,r){let i=n==="WILDCARD"?"wildcard":js(n),o=go(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=${Fg})`)}function cn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)cn(a,t);return}let n=e;if(Ys(n)||Wp(n)||Vp(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 $p(t.clause,t.expression,"WILDCARD",t.policy);let r=Hs(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&$g.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 u=new Set(t.resolvingAliases);u.add(r.field),cn(l[0],{...t,resolvingAliases:u});return}}let a=Ht(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 $p(t.clause,t.expression,r,t.policy);return}let i=Ht(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Vs.get(n.type):void 0;if(o!==void 0){cn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||cn(n[a],t)}function Pr(e,t){let n=Bg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&cn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&cn(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"?mo(r.key.name):r.key;cn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Ws(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ws);let t=e;return Ys(t)||Vp(t)?!1:Wp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Ws)}function Yn(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Ws(t))}function Wg(e){return e.type==="FIELD_NAME"?mo(e.name):e.expr}function Hp(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=Kp(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=Ht(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Ht(Wg(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}`:""}`,u=s.map(f=>f.cteName??l(f)).join(" / "),p=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:go(f)).join(", ")}`,c=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:u,groupingLabel:p,migrationSourceSql:c,migrationGroupingFields:d}}function yo(e){if(Z(e).type!=="NONE"||!Yn(e))return;let t={identities:new Set,resolveField:n=>`ast:${js(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};Pr(e,t)}function Yp(e){return`FIELD:${e}`}var jp=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 zs(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function $e(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>$e(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=>$e(r,t))}}function So(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>So(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){$e(n.arg,t);return}Object.values(n).forEach(r=>So(r,t))}}function Be(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Be);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(Be)}function Vg(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"?Be(e):!1}function Hg(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${zs(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${zs(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);kp(e,r.canonicalId)}function qs(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&$e(i,n);$e(e.having,n),$e(e.orderBy,n);let r=[];$e(e.where,r),$e(e.joins,r),So(e.columns,r),So(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&$e(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.");yo(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 zp(e,t,n=()=>{}){qs(e);let r=Z(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&$e(u,i);if($e(e.having,i),$e(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=fp(e,t),a=new Set,s=[];for(let u of o.allItems){let p=u;if(!p.physical)throw new Error(`ArgumentError: grouping item ${zs(u.field)} must resolve to a physical APP field.`);a.has(p.canonicalId)||(a.add(p.canonicalId),s.push(p))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)Hg(u,t,a);Pr(e,{identities:new Set([...a].map(Yp)),resolveField:u=>t(u).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let u of s)l.add(u.directKey),u.unqualifiedBridgeKey!==null&&l.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!Vg(u))continue;let p="alias"in u?u.alias:null;if(p!==null&&l.has(p))throw new Error(`ArgumentError: aggregate alias ${p} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Yg(e){return e.some(t=>t.type==="WINDOW_COL")}function We(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||Yg(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&Zp(t.expr)||t.type==="SCALAR_VALUE_COL"&&Or(t.expr))||bt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function bt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return qp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||wr(e);case"NULL_CHECK":return qp(e.field);case"LOGICAL":return bt(e.left)||bt(e.right);case"NOT":case"GROUP":return bt(e.expr);case"EXISTS":return!0}}function qp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Io(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(Y(e.where)),e.orderBy.length>0){let i=e.orderBy.map(jg).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:zg(e.columns),totalCount:!1}}function Qp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!bt(e.where)&&n.push(Y(e.where)),{app:t,query:n.join(" "),fields:[]}}function pn(e,t,n){let i=td(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 jg(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 zg(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(wo(r.field)):r.type==="ARITH_COL"?Cr(r.expr,n):r.type==="STRFUNC_COL"?Js(r.expr,n):r.type==="SCALAR_VALUE_COL"&&jn(r.expr,n);return[...new Set(n)]}function qg(e,t){Cr(e.left,t),Cr(e.right,t)}function Cr(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(wo(e.field)):e.type==="ARITH"?qg(e,t):e.type==="STRING_FUNC"&&Js(e,t)}function wo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Js(e,t){for(let n of e.args)Jg(n,t)}function Jg(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){To(e,t);return}jn(e,t)}function jn(e,t){if(e.type==="FIELD"){t.push(wo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Js(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){jn(e.left,t),jn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Jp(n.result,t);e.elseResult&&Jp(e.elseResult,t)}}function Jp(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){To(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Cr(e,t);return}jn(e,t)}}function To(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Xg(e.arg,t);return}e.type==="AGG_ARITH"&&(To(e.left,t),To(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(wo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Xg(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Cr(e,t):jn(e,t)}function Zp(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Or(t))}function Or(e){return e.type==="STRING_FUNC"?Zp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Or(e.left)||Or(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Xp(t.result))||e.elseResult!==null&&Xp(e.elseResult):!1}function Xp(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Or(e)}function ed(e,t){let n=new Set,r=td(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function td(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,u=new Map;for(let A of o)A.alias&&u.set(A.alias,A),A.cteName!==null?u.set(A.cteName,A):A.subtableCode||(u.set(`APP${A.appId}`,A),u.set(`app${A.appId}`,A));let p=Qg(e.columns),c=A=>{let I=a.get(A);I&&(I.allFields=!0,I.fields.clear())},d=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},R=(A,I)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(I.startsWith("_p.")){let L=I.slice(3);L&&L!=="*"&&x.fields.add(L);return}return void 0}I&&x.fields.add(I)}},E=(A,I="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){d();return}if(F==="_p"){f();return}let W=u.get(F);if(W){c(W);return}return}if(I==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&R(F,x.fieldCode)}return}if((I==="orderBy"||I==="having"||I==="groupBy")&&p.has(A)||(I==="orderBy"||I==="having"||I==="groupBy")&&Zg(A))return;let L=A.indexOf(".");if(L>0){let F=A.slice(0,L),W=A.slice(L+1);if(F==="_p"){l&&R(l,`_p.${W}`);return}let K=u.get(F);if(K){R(K,W);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,I,x="select")=>{if(I){if(I==="_p"){l&&R(l,`_p.${A}`);return}let L=u.get(I);if(L){R(L,A);return}if(n)return}E(A,x)},g=(A,I="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,I);return}if(A.type==="ARITH"){g(A.left,I),g(A.right,I);return}if(A.type==="STRING_FUNC"){y(A,I);return}},h=(A,I="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&P(A.arg,I);return}A.type==="AGG_ARITH"&&(h(A.left,I),h(A.right,I)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,I)},T=(A,I="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){h(A,I);return}b(A,I)},y=(A,I="select")=>{for(let x of A.args)T(x,I)},b=(A,I="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,I);return}if(A.type==="STRING_FUNC"){y(A,I);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){b(A.left,I),b(A.right,I);return}A.type==="CASE_WHEN"&&C(A,I)},P=(A,I="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,I);return}b(A,I)},v=(A,I="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){h(A,I);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,I);return}b(A,I)}},C=(A,I="select")=>{for(let x of A.branches)N(x.condition,I),v(x.result,I);A.elseResult&&v(A.elseResult,I)},M=(A,I="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){h(A.aggregateRef,I);return}m(A.field,A.tableAlias,I);return}if(A.type==="FUNC_FIELD"){y(A.expr,I);return}if(A.type==="AGG_FIELD"){h(A.expr,I);return}if(A.type==="ARITH_FIELD"){g(A.expr,I);return}A.type!=="GROUPING_FIELD"&&C(A.expr,I)},O=(A,I="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,I);return}if(A.type==="CASE_VALUE"){C(A.expr,I);return}},N=(A,I="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,I),O(A.right,I);return;case"NULL_CHECK":M(A.field,I);return;case"LOGICAL":N(A.left,I),N(A.right,I);return;case"NOT":case"GROUP":N(A.expr,I);return;case"EXISTS":case"BOOLEAN":return}},U=(A,I)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",I);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}y(A.expr,"groupBy")},w=(A,I="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,I);return}if(A.type==="ARITH_KEY"){g(A.expr,I);return}A.type!=="GROUPING_KEY"&&y(A.expr,I)};for(let A of e.columns)switch(A.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&P(A.arg,"select");break;case"ARITH_AGG_COL":h(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":C(A.expr,"select");break;case"STRFUNC_COL":y(A.expr,"select");break;case"SCALAR_VALUE_COL":b(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&P(A.arg,"select");for(let I of A.partitionBy)m(I.field,I.tableAlias,"select");for(let I of A.orderBy)w(I.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));N(e.where,"where");let D=Z(e);if(D.type==="PLAIN")D.allItems.forEach((A,I)=>U(A,t?.items[I]));else if(D.type==="GROUPING_SETS")for(let A of D.allItems)m(A.field,A.tableAlias,"select");N(e.having,"having");for(let A of e.orderBy)w(A.key);return a}function Qg(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(pe(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 Zg(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Yt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||We(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||dp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function jt(e){let t=e.ctes[0].query,n=e.query,r=bo(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 bo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:nd(e.left,t)};case"NULL_CHECK":return{...e,field:nd(e.field,t)};case"LOGICAL":return{...e,left:bo(e.left,t),right:bo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:bo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function nd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var ey=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),ty=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(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":ty.has(e.fieldType)?t="option":ey.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 $(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function zn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function No(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=["=","!=",">","<",">=","<="],ny=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),ry=new Set(Ve),iy=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"])]]),oy=new Map([["TODAY",new Set(Ve)],["NOW",new Set(Ve)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),ay=["=","!=","in","not in"],sy=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(ay)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),ly=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),Qs=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"]),od=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Co(e){return sy.get(e)??new Set}function ad(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"&&Qs.has(o.fieldType)&&Co(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ye(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:_r(e,t)}function _r(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return uy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Xs():dy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Xs();case"GROUP":return _r(e.expr,t);case"NOT":{let n=_r(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ld(n.reasons)?vr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=_r(e.left,t),r=_r(e.right,t);return Ey(e.op,n,r)}}}function uy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ie(n.name))return cy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&rd(n))return id(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?id(e,t,p[0],r):Po("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Dr(e))}if(t.type!=="FIELD")return Xs();let i=r(t);if(!i)return qn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Dr(e));let o=Dr(e);if(!sd(i.fieldType,o))return qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!fy(i.fieldType,e))return qn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Co(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||rd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",u=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!u?{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 rd(e){return e.type==="KINTONE_FUNC"&&sn.has(e.name)}function id(e,t,n,r){let i=Dr(e),o=n.name;if(!sn.has(o)||t.type!=="FIELD")return Po("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=iy.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Po("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):oy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Po("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function cy(e,t,n,r){let i=Dr(e),o=n.name;if(t.type!=="FIELD")return Lr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?py(n)?ry.has(i)?!ny.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Lr("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}]}:Lr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Lr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Lr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function py(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 dy(e,t,n){let r=n(e);return r?sd(r.fieldType,t)?!Qs.has(r.fieldType)&&!od.has(r.fieldType)?qn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):qn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function sd(e,t){let n=ly.get(e);return n===void 0||n.has(t)}function fy(e,t){return Qs.has(e)?!0:od.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Dr(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 Ey(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?vr({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")?vr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):vr({capability:"LOCAL_ONLY",reasons:r})}function Xs(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function qn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Po(e,t,n,r,i){return vr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Lr(e,t,n,r,i){return ud({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ld(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ie(t.functionName))}function Ry(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&sn.has(t.functionName))}function ud(e){if(e.capability==="EXACT_PUSHDOWN"||!ld(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&&ie(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 my(e){if(e.capability==="EXACT_PUSHDOWN"||!Ry(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&&sn.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 vr(e){return my(ud(e))}function Ur(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 Oo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Lo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Ur(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function _o(e){let t=e.raw??String(e.value),n=he(t);if(n===null)return!1;if(n.sign===0)return z(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=Cs(n);return z(e)===o}var gy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),yy=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),hy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Ay=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Do(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"?hy.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Ty(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Sy(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"&&_o(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&_o(e.right)?"exact":"unsafe":yy.has(r)?Zs(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Zs(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Ay.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Ur(e.right.value)?"exact":"unsafe":r==="TIME"?Oo(e.right.value)?"exact":"unsafe":Lo(e.right.value)?"exact":"unsafe":gy.has(r)?!Zs(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 cd(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 Zs(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 Sy(e){let t=n=>n.type==="NUMBER"&&_o(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 Ty(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function el(e,t={}){return ko(e,t).condition}function ko(e,t={}){return vo(e,n=>Iy(n,t))}function Mr(e,t={}){return Uo(e,n=>cd(n,r=>Mo(r,t)))}function vo(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=vo(e.left,t),r=vo(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 vo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Uo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Uo(e.left,t),r=Uo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Uo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Iy(e,t){if(wy(e,t)||by(e,t))return"exact";if(e.left.type!=="FIELD"||!Mo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||ye(e,i=>{if(!Mo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Do(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function wy(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Mo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function by(e,t){return!Ny(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Ny(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 Mo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function kr(e,t={}){let n=e!==null&&t.extractCondition!==!1?ko(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 dn(e,t={}){let n=e.joins.every(c=>c.type==="INNER"||c.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=kr(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,u=new Map;if(e.where!==null)for(let c of e.joins){if(c.type!=="INNER"&&c.type!=="CROSS"||!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let d=ko(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(c.table.alias,d.condition),u.set(c.table.alias,d.relation))}let p=new Set(a.appliedKlikes);for(let c of l.values())Jn(c,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:p,allKlikes:a.allKlikes}}function tl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Jn(e,t){if(e!==null){if(Vt(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 xo(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=Se(t.where);if(l.length===0||!Oy(l,a)||o===null||!pd(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Cy(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return Py(p,e,l),p}function Py(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(!pd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(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"&&Ze(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function Cy(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Ze(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Ze(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 Oy(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function pd(e,t){let n=new Map;for(let r of t){if(!Ze(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 Ee=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function dd(e){fd(e)}function rl(e){if(tl(e).length>0)throw new Ee("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 fd(e){switch(e.type){case"SELECT":Xn(e);return;case"UNION":ol(e);return;case"WITH":Ed(e);return;case"EXPLAIN":fd(e.query);return;case"CREATE_TEMP_TABLE":il(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":fn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!wt(e.where)&&Ie(e.where)){nl(e.where),fn(e);return}if(zt(e)&&e.subtableCode)throw new Ee("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)&&!Dy(e,e.where)){nl(e.where),fn(e);return}if(zt(e))throw new Ee("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(zt(e)&&e.subtableCode)throw new Ee("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)){nl(e.where),fn(e);return}if(zt(e))throw new Ee("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(zt(e))throw new Ee("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(zt(e))throw new Ee("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(zt(e))throw new Ee("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(zt(e))throw new Ee("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 nl(e){Go(e,t=>{if(!Vt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Ee("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 Ee("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 il(e){e.type==="SELECT"?Xn(e):e.type==="UNION"?ol(e):Ed(e)}function ol(e){il(e.left),Xn(e.right)}function Ed(e){if(Yt(e)){Xn(jt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Xn(t.query):t.query.type==="UNION"&&ol(t.query);il(e.query)}function Xn(e){if(_y(e),Ie(e.where)&&!(We(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=dn(e,{allowUnresolvedVariables:!0});if(tl(n).length===0){fn(e);return}if(Ly(e)){fn(e);return}throw new Ee("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")}fn(e)}function Ly(e){return e.where!==null&&Se(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 _y(e){Go(e,t=>{if(!Vt(t))return;if(!Fo(e.where,t))throw new Ee("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 Ee("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 Ee("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 fn(e){Ko(e,t=>{t.type==="SELECT"&&Xn(t)},!0)}function zt(e){let t=!1;return Ko(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Dy(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 Fo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Fo(e.left,t)||Fo(e.right,t);case"NOT":case"GROUP":return Fo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Go(e,t){if(Array.isArray(e)){for(let r of e)Go(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&&vy(r)||Go(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 vy(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var xr=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 Rd(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(Uy(t))throw new xr;return;default:return}}function Uy(e){let t=!1;return Bo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||My(n.where)&&(t=!0)}),t}function My(e){let t=!1;return Bo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Bo(e,t){if(Array.isArray(e)){for(let r of e)Bo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Bo(r,t)}function qt(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 $o(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 qt(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return qt(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 qt(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return qt(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return qt(e,t,3,3);case"REGEXP_REPLACE":return qt(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return qt(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return qt(e,t,0,0)}}var ll=1e4,Nt=ll,X=e=>new Error(`ArgumentError: ${e}`),ky=e=>e.type==="VARIABLE",Jt=e=>e?.type==="STRING"&&e.fromVariable===!0;function xy(e){return e.type==="NUMBER"?Number(z(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 al(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 Fy(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 md(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 Fr(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 Gr(e){let t=he(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 gd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Wo(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 sl(e){return e.year*12+e.month-1}function yd(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 Gy(e,t,n){let r=al(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=al(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Wo(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=sl(t)+(n.coefficient<0&&t.day!==1?1:0);return Wo(sl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Wo(e.year,a,n.coefficient)}function hd(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 Ky(e){let t=Math.floor(e/12),n=e-t*12+1;return hd(t,n,1)}function Ad(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(h=>xy(h));["start","stop","step"].forEach((h,T)=>{if(t[T]==="")throw X(`GENERATE_SERIES \u306E ${h} \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,u=typeof r=="string"?Qn(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(gd))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||u||p||c||typeof n=="string"&&typeof r=="string"&&!(Jt(o)&&Jt(a)&&Fr(n)!==null&&Fr(r)!==null)){if(!l||!u)throw X(l&&typeof r!="string"||u&&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 h=i===void 0?{coefficient:1,unit:"DAY"}:md(i);return yd(l,h.unit),{kind:"DATE",start:n,stop:r,step:h.coefficient,dateUnit:h.unit,rowCount:Gy(l,u,h)}}let d=o.type==="NUMBER"?Gr(o):Jt(o)?Fr(n):null,f=a.type==="NUMBER"?Gr(a):Jt(a)?Fr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Jt(o))&&(a.type==="NUMBER"||Jt(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"?Gr(s):Jt(s)?Fr(i):null;if(R===null)throw s?.type==="NUMBER"||Jt(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,m=f,g=R;if(g===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:g,rowCount:Wo(E,m,g)}}function By(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(ky)){["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"&&Gr(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(gd(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=Gr(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=md(n.value),i=e.args[0];if(i?.type==="STRING"){let o=Qn(i.value);o&&yd(o,r.unit)}}return null}let t=Ad(e);if(t.rowCount>Nt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Nt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Sd(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=By(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Nt)throw X(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Nt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Vo(e){let t=Ad(e);if(t.rowCount>Nt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Nt} \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=sl(r);for(let o=0;o<t.rowCount;o++)n.push(Ky(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(hd(r.year+i*t.step,1,1));else{let i=al(t.start);for(let o=0;o<t.rowCount;o++)n.push(Fy(i+o*t.step))}}return{...t,values:n}}function et(e){$y(e),Rd(e),dd(e),Sd(e)}function $y(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;$o(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var Ho=16,Td=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function Kr(e,t,n){if(Array.isArray(e)){for(let r of e)Kr(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))Kr(a,t,n)}}var Wy=new Set(["=","!=","<>",">","<",">=","<="]);function ul(e,t,n=!1){if(Array.isArray(e)){for(let r of e)ul(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",u=n&&i==="BINARY"&&a==="right"&&l&&Wy.has(String(r.op));ul(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function Vy(e){let t=e.type==="EXPLAIN"?e.query:e;return $t(t.type)||t.type==="VALIDATE"}function cl(e){if(Array.isArray(e)){for(let t of e)cl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&qs(e);for(let n of Object.values(t))cl(n)}}function pl(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((c,d)=>{try{cl(c)}catch(f){throw f instanceof Error?new oe(f.message,d):f}try{$n("phase15b",c),et(c)}catch(f){throw f instanceof Ee||f instanceof xr?new oe(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,d):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let d=c==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${d} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let d=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`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((c,d)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let v=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new oe(v,d)}let R=uo(c),E=[],m=[],g=new Set,h=new Set,T=new Set,y=[];ul(c,y);let b=new Set;for(let v of y){let C=o.get(v.name);if(C===void 0)throw new oe(`ParseError: variable @${v.name} is not defined before statement ${d+1}.`,d);if(C.kind==="scalar"&&v.kind==="array-in-list")throw new oe(`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 oe(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,d);if(C.relativeDate&&Vy(c))throw new oe(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,d);if(C.relativeDate&&!v.relativeDateAllowed)throw new oe(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);b.has(v.name)||(C.referencedBy.push(d),b.add(v.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new oe(`ParseError: variable @${c.name} is already defined.`,d);if(o.set(c.name,{index:d,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",relativeDate:c.type==="DECLARE_VARIABLE"&&c.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(c.name),a.length>Td)throw new oe(`ParseError: batch exceeds ${Td} variables.`,d)}c.type==="CREATE_TEMP_TABLE"?Kr(c.query,g,h):c.type==="DROP_TEMP_TABLE"||Kr(c,g,h);let P=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let v=new Set,C=new Set;Kr(c.select,v,C),P=v.size>0&&C.size===0}for(let v of g){let C=t.get(v);if(C===void 0)throw new oe(`ParseError: temp table ${v} is not defined in this batch.`,d);T.add(C)}if(f){let v=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(O=>O.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(O=>O.kind==="FIELD"?[O.field]:O.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(O=>O.field)]:"fields"in c?c.fields:[],C=JSON.stringify(v),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,C),r.push(f),E.push(f),t.size>Ho)throw new oe(`ParseError: batch exceeds ${Ho} temp tables.`,d)}else{if(n.get(f)!==C)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,d);T.add(M)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new oe(`ParseError: temp table ${c.name} is already defined.`,d);if(t.set(c.name,d),r.push(c.name),E.push(c.name),t.size>Ho)throw new oe(`ParseError: batch exceeds ${Ho} temp tables.`,d)}if(c.type==="DROP_TEMP_TABLE"){let v=t.get(c.name);if(v===void 0)throw new oe(`ParseError: temp table ${c.name} is not defined in this batch.`,d);T.add(v),m.push(c.name),t.delete(c.name)}i.push({index:d,statementType:R,isDml:_s(c),isReadOnly:Fn(c),hasWhere:yp(c),insertValuesCount:hp(c),appIds:[...h].sort((v,C)=>v-C),tempTablesCreated:E,tempTablesReferenced:[...g],tempTablesDropped:m,dependsOn:[...T].sort((v,C)=>v-C),tempOnlySource:P,targetAppId:$t(R)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:mp(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:u,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Yo=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 Le=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"}},Xt=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(Zn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(dl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Le(`\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 Le("\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 Le("\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&&Zn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Zn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Zn(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||!Zn(this.input[this.pos]))throw new Le("\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&&Zn(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&&Id(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Yo.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(!dl(n))throw new Le("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Id(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Le(`@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 Le("\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 Le("\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 ke(e,t,n,r,i={}){let o=i.pageSize??qm,a=Math.max(1,i.parallel??Jm),s=i.maxRecords??Xm,l=i.onLimit??"error",u=i.stopAfter;if(u!==void 0&&(!Number.isSafeInteger(u)||u<=0||u>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=u??s,c=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,m=0,g=sp(n,E),h=await ap(e,t,g,c,o,m);if(op(h,i),d.push(...h.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}if(h.records.length<o)return d;for(m+=o,m>=Cs&&(E=lp(h.records),m=0);;){if(u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}let T=p-d.length,y=Math.ceil(T/o),b=Math.max(1,Math.min(a,y)),P=[];for(let O=0;O<b;O++){let N=m+O*o;if(N>=Cs)break;P.push(N)}let v=sp(n,E),C=await Promise.all(P.map(O=>ap(e,t,v,c,o,O)));for(let O of C)op(O,i);let M=!1;for(let O of C){if(d.push(...O.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Fe(R)}if(O.records.length<o){M=!0;break}}if(M)break;if(m+=o*P.length,m>=Cs){let O=C[C.length-1];E=lp(O.records),m=0}}return d}function op(e,t){e.searchAborted&&t.onSearchAborted?.()}function up(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 qm=500,Jm=1,Xm=1e4,Cs=1e4;async function ap(e,t,n,r,i,o){let a=Qm(n,i,o);return e({app:t,query:a,fields:r})}function sp(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 Qm(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function lp(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 Fe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var Zm=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function eg(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 he(e){let t=Zm.exec(e.trim());if(t===null)return null;let n=eg(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 Os(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 cp(e){let t=he(e);return t===null?null:Os(t)}function tg(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 io(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=tg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function oo(e,t){let n=he(e),r=he(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return io(n,r)}var Oe="__NO_FROM__";function Ls(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function ao(e){return e.windowKind==="AGGREGATE"}function _s(e){return e.windowKind==="VALUE"}function Ae(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return cp(t)??t}function pp(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 ng(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=ng(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 dp(e){return Z(e).type!=="NONE"}function fp(e,t){let n=Z(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),u=r.get(l.canonicalId);if(u)return u;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function uo(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Wt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function rg(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 Ds(e){return Wt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Fn(e){return!Ds(e)&&(rg(e.type)||Wt(e.type))}function Ep(e){return Fn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Rp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Le(e,t){for(let n of t)e.add(n)}function so(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"&&Rp.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=>so(i,t)):so(r,t))}function lo(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"&&!Rp.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=>lo(i,t)):lo(r,t))}function $t(e){let t=new Set;if(Wt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Le(t,xn(e));break;case"UNION":Le(t,gp(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Le(t,$t(n.query));Le(t,$t(e.query));break;case"CREATE_TEMP_TABLE":Le(t,$t(e.query));break;default:break}return so(e)&&t.add("STATISTICAL_AGGREGATE"),lo(e)&&t.add("AGGREGATE"),t}function mp(e){return $t(e).size>0}function gp(e){let t=e.left.type==="SELECT"?xn(e.left):gp(e.left);return Le(t,xn(e.right)),e.all||t.add("DISTINCT"),t}function xn(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"&&Le(t,xn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Le(t,kn(i.condition));return Le(t,kn(e.where)),Le(t,kn(e.having)),so(e)&&t.add("STATISTICAL_AGGREGATE"),lo(e)&&t.add("AGGREGATE"),t}function kn(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")&&Le(t,xn(e.right.query));break;case"LOGICAL":Le(t,kn(e.left)),Le(t,kn(e.right));break;case"NOT":case"GROUP":Le(t,kn(e.expr));break;case"EXISTS":Le(t,xn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function yp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function hp(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 co=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),sn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Sr=new Set([...sn,...co]),ln="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",It="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ie(e){return co.has(e)}function Gn(e){return sn.has(e)}function et(e){return Sr.has(e)}var ig=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})}),Ms=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})}),Tr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Tr} scope does not support ${e}`)}function og(e,t){let n=Tr;Tr=e;try{return t()}finally{Tr=n}}function ag(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 $n(e,t){return og(e,()=>sg(t,ig[e]))}function sg(e,t){let n=ag(e);if(n===null)return;if(n.type==="UPSERT"){ug(n,t);return}let r=n.applyBlocks;if(vs(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){cg(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),pg(i.where,t.multipleParents),Sp(r,t)}function Sp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Tp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)po(i,"APPEND targets");Bn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Ap(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("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(".")&&q("parent or qualified PATCH targets in this phase")}Bn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Ap(r.selector.where,t.idxSelectors)}}}}function Tp(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 lg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ip(e,t){if(Tp(e),e.targetKind==="MULTI_VALUE"){if(!lg.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 vs(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Tr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function ug(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];vs(n),vs(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),wp(n,"UPSERT ON INSERT"),Sp(r,{...t,idxSelectors:!1,expectRows:!1})}function wp(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)po(i,"APPEND targets");Bn(r.values,"APPEND values")}}function cg(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),wp(t,"INSERT")}function wt(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 fo(e,t){let n=Ms[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ks(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Kn(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 ${Kn(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 ${Kn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!wt(t.where))throw new Error(`UnsupportedError: APPLY ${Kn(e)} execution does not support multiple-parent APPLY`)}function ks(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 bp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||wt(t.where))&&!Ms[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Kn(e)} public multiple-parent write is not connected`)}function Wn(e){if(!Ms[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Kn(e)} internal prepared write is not available`)}function Kn(e){return`Phase ${e.slice(5)}`}function pg(e,t){wt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Us(e,t))}function Us(e,t){if(Array.isArray(e)){for(let o of e)Us(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")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("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)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ie(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Us(o,t)}function Ap(e,t){Bn(e,"child row selectors",t)}function Bn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Bn(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")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ie(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),po(l,t,n)}if(i==="FIELD_REF"&&po(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Bn(s,t,n)}function po(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}function Ir(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=dg(e.op);if(t===null)throw new ce(`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:Ir(e.left),right:Ir(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Ir(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function dg(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 Np(e){return e.includes("%")||e.includes("_")}function wr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Ht(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Vt(e){if(e===null)return!1;if(wr(e))return!0;switch(e.type){case"LOGICAL":return Vt(e.left)||Vt(e.right);case"NOT":case"GROUP":return Vt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ie(e){if(e===null)return!1;if(Ht(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 Y(e){switch(e.type){case"BINARY":return fg(e);case"NULL_CHECK":return Rg(e);case"LOGICAL":return mg(e);case"NOT":return gg(e);case"GROUP":return yg(e);case"EXISTS":throw new ce("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ce("internal error: BOOLEAN predicate reached kintone query conversion")}}function fg(e){if(wr(e))throw new ce("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=Cp(e.left),n=Eg(e.op),r=hg(e.right,e.op);return`${t} ${n} ${r}`}function Eg(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 Rg(e){let t=Cp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function mg(e){let t=Y(e.left),n=Y(e.right),r=e.op==="AND"?"and":"or",i=Pp(e.left)?`(${t})`:t,o=Pp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function gg(e){return Y(Ir(e.expr))}function yg(e){return`(${Y(e.expr)})`}function Cp(e){if(e.type==="FUNC_FIELD")throw new ce(`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 ce("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 ce("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 ce("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 ce("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Pg(e.field)}function hg(e,t){switch(e.type){case"VARIABLE":throw new ce(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ce(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Op(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return Lp(e);case"IN_LIST":return bg(e,t);case"ARITH_VALUE":throw new ce("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 ce("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 ce("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ce("\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 ce("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Op(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Lp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Ag(e)}function Ag(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?br():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!Ig(e.args.offset,e.args.offsetText)||!Sg.has(e.args.unit)?br():`${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&&!Tg.has(e.args.weekday)?br():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"||!wg(e.args.day)?br():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return br()}var Sg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Tg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ig(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function wg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function br(){throw new ce("internal error: invalid relative date function AST reached kintone query conversion")}function bg(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ce("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Ng(e.values),`(${e.values.map(r=>r.type==="STRING"?Op(r):r.type==="NUMBER"?z(r):Lp(r)).join(",")})`}function Ng(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ce(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Pg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Pp(e){return e.type==="LOGICAL"}var ce=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Eo(e){return`'${e.replace(/'/g,"''")}'`}function Vn(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 z(e);if(e.type==="STRING_FUNC")return Fs(e);let n=`${Vn(e.left)}${e.op}${Vn(e.right)}`;return t?n:`(${n})`}function _p(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Fs(e.expr);if(e.type==="AGG_FIELD")return pt(e.expr);if(e.type==="ARITH_FIELD")return Vn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return xs(e.expr)}function vp(e){switch(e.type){case"STRING":return Eo(e.value);case"NUMBER":return z(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=>Eo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(vp).join(",")})`;case"ARITH_VALUE":return Vn(e.expr);case"CASE_VALUE":return xs(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Nr(e){switch(e.type){case"BINARY":return`${_p(e.left)} ${e.op.replace("_"," ")} ${vp(e.right)}`;case"NULL_CHECK":return`${_p(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Nr(e.left)} ${e.op} ${Nr(e.right)})`;case"NOT":return`NOT (${Nr(e.expr)})`;case"GROUP":return`(${Nr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Dp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Eo(t.value)).join(",")}]`:e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?pt(e):e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e):un(e)}function xs(e){let t=e.branches.map(r=>`WHEN ${Nr(r.condition)} THEN ${Dp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Dp(e.elseResult)}`;return`CASE ${t}${n} END`}function Cg(e){return e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?pt(e):un(e)}function Fs(e){return`${e.func}(${e.args.map(Cg).join(",")})`}function un(e){switch(e.type){case"STRING":return Eo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Fs(e);case"CASE_WHEN":return xs(e);case"SCALAR_ARITH":return`(${un(e.left)}${e.op}${un(e.right)})`;case"CONCAT_OP":return`(${un(e.left)}||${un(e.right)})`}}function Og(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e,!0):un(e)}function pe(e,t,n){let r=Og(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function pt(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${pt(e.left)}${e.op}${pt(e.right)}`}var Up=Symbol("ksql.groupingRowMeta"),Mp=new WeakMap;function Gs(e,t){return Object.defineProperty(e,Up,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Ks(e){return e[Up]}function Lg(e){return Ks(e)?.includedCanonicalIds}function kp(e,t){Mp.set(e,t)}function Hn(e,t){let n=Lg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Mp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Ro=["$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 Bs(e){return e.startsWith("_")||e.startsWith("$")}var _g=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ws(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ws);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?_g.test(t.field):Object.values(t).some(Ws)}function Dg(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 Be(e)||Ws(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var vg=["_pid","_rid","_idx"];function $s(e){return[...new Set(e)]}function Ug(e){switch(e.kind){case"APP":return $s([...e.fieldCodes,...Ro]);case"SUBTABLE":return $s([...e.childFieldCodes,...vg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return $s(e.columns)}}function xp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Ug(t(r,i))}))}function Fp(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 Gp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Kp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Fp(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:Gp(a,r.fieldCode)}}function Mg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function kg(e,t,n){let r=Fp(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:Gp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>Mg(l)===e?[{column:l,columnIndex:u}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],u=Dg(l.column);return u==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:u==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&pe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Bp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?kg(r.name,t,n):{kind:"EXPRESSION"})}}var xg="B65_NON_GROUPED_DEPENDENCY",Hs=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 mo(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 Ys(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return mo(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?mo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function js(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Wp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Vp(e){return e.type==="WINDOW_COL"}function Fg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Yt(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 u=e.map(p=>Yt(p,t));return u.some(p=>p===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||js(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Yt(n.expr,t);let i=typeof r=="string"?Hs.get(r):void 0;if(i!==void 0)return Yt(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:${Fg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Ys(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 u of Object.keys(n)){if(u==="type"||a.has(u))continue;let p=Yt(n[u],t);if(p===null)return null;s.push(`${u}=${p}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Gg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Kg(e){let t=new Map;for(let n of e){let r=Gg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function zs(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Bg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function go(e){if(e&&typeof e=="object"){let t=e,n=Ys(t);if(n!==null)return zs(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"?Hs.get(t.type):void 0;if(i!==void 0){let a=go(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function $p(e,t,n,r){let i=n==="WILDCARD"?"wildcard":zs(n),o=go(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=${xg})`)}function cn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)cn(a,t);return}let n=e;if(js(n)||Wp(n)||Vp(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 $p(t.clause,t.expression,"WILDCARD",t.policy);let r=Ys(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Bg.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 u=new Set(t.resolvingAliases);u.add(r.field),cn(l[0],{...t,resolvingAliases:u});return}}let a=Yt(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 $p(t.clause,t.expression,r,t.policy);return}let i=Yt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Hs.get(n.type):void 0;if(o!==void 0){cn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||cn(n[a],t)}function Pr(e,t){let n=Kg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&cn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&cn(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"?mo(r.key.name):r.key;cn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Vs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Vs);let t=e;return js(t)||Vp(t)?!1:Wp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Vs)}function Yn(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Vs(t))}function $g(e){return e.type==="FIELD_NAME"?mo(e.name):e.expr}function Hp(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=Kp(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=Yt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Yt($g(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}`:""}`,u=s.map(f=>f.cteName??l(f)).join(" / "),p=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:go(f)).join(", ")}`,c=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:u,groupingLabel:p,migrationSourceSql:c,migrationGroupingFields:d}}function yo(e){if(Z(e).type!=="NONE"||!Yn(e))return;let t={identities:new Set,resolveField:n=>`ast:${zs(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};Pr(e,t)}function Yp(e){return`FIELD:${e}`}var jp=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 qs(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function $e(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>$e(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=>$e(r,t))}}function So(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>So(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){$e(n.arg,t);return}Object.values(n).forEach(r=>So(r,t))}}function Be(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Be);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(Be)}function Wg(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"?Be(e):!1}function Vg(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${qs(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${qs(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);kp(e,r.canonicalId)}function Js(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&$e(i,n);$e(e.having,n),$e(e.orderBy,n);let r=[];$e(e.where,r),$e(e.joins,r),So(e.columns,r),So(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&$e(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.");yo(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 zp(e,t,n=()=>{}){Js(e);let r=Z(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&$e(u,i);if($e(e.having,i),$e(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=fp(e,t),a=new Set,s=[];for(let u of o.allItems){let p=u;if(!p.physical)throw new Error(`ArgumentError: grouping item ${qs(u.field)} must resolve to a physical APP field.`);a.has(p.canonicalId)||(a.add(p.canonicalId),s.push(p))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)Vg(u,t,a);Pr(e,{identities:new Set([...a].map(Yp)),resolveField:u=>t(u).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let u of s)l.add(u.directKey),u.unqualifiedBridgeKey!==null&&l.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!Wg(u))continue;let p="alias"in u?u.alias:null;if(p!==null&&l.has(p))throw new Error(`ArgumentError: aggregate alias ${p} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Hg(e){return e.some(t=>t.type==="WINDOW_COL")}function We(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||Hg(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&Zp(t.expr)||t.type==="SCALAR_VALUE_COL"&&Or(t.expr))||bt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function bt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return qp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||wr(e);case"NULL_CHECK":return qp(e.field);case"LOGICAL":return bt(e.left)||bt(e.right);case"NOT":case"GROUP":return bt(e.expr);case"EXISTS":return!0}}function qp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Io(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(Y(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Yg).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:jg(e.columns),totalCount:!1}}function Qp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!bt(e.where)&&n.push(Y(e.where)),{app:t,query:n.join(" "),fields:[]}}function pn(e,t,n){let i=td(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 Yg(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 jg(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(wo(r.field)):r.type==="ARITH_COL"?Cr(r.expr,n):r.type==="STRFUNC_COL"?Xs(r.expr,n):r.type==="SCALAR_VALUE_COL"&&jn(r.expr,n);return[...new Set(n)]}function zg(e,t){Cr(e.left,t),Cr(e.right,t)}function Cr(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(wo(e.field)):e.type==="ARITH"?zg(e,t):e.type==="STRING_FUNC"&&Xs(e,t)}function wo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Xs(e,t){for(let n of e.args)qg(n,t)}function qg(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){To(e,t);return}jn(e,t)}function jn(e,t){if(e.type==="FIELD"){t.push(wo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Xs(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){jn(e.left,t),jn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Jp(n.result,t);e.elseResult&&Jp(e.elseResult,t)}}function Jp(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){To(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Cr(e,t);return}jn(e,t)}}function To(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Jg(e.arg,t);return}e.type==="AGG_ARITH"&&(To(e.left,t),To(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(wo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Jg(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Cr(e,t):jn(e,t)}function Zp(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Or(t))}function Or(e){return e.type==="STRING_FUNC"?Zp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Or(e.left)||Or(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Xp(t.result))||e.elseResult!==null&&Xp(e.elseResult):!1}function Xp(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Or(e)}function ed(e,t){let n=new Set,r=td(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function td(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,u=new Map;for(let A of o)A.alias&&u.set(A.alias,A),A.cteName!==null?u.set(A.cteName,A):A.subtableCode||(u.set(`APP${A.appId}`,A),u.set(`app${A.appId}`,A));let p=Xg(e.columns),c=A=>{let I=a.get(A);I&&(I.allFields=!0,I.fields.clear())},d=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},R=(A,I)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(I.startsWith("_p.")){let L=I.slice(3);L&&L!=="*"&&x.fields.add(L);return}return void 0}I&&x.fields.add(I)}},E=(A,I="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){d();return}if(F==="_p"){f();return}let W=u.get(F);if(W){c(W);return}return}if(I==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&R(F,x.fieldCode)}return}if((I==="orderBy"||I==="having"||I==="groupBy")&&p.has(A)||(I==="orderBy"||I==="having"||I==="groupBy")&&Qg(A))return;let L=A.indexOf(".");if(L>0){let F=A.slice(0,L),W=A.slice(L+1);if(F==="_p"){l&&R(l,`_p.${W}`);return}let K=u.get(F);if(K){R(K,W);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,I,x="select")=>{if(I){if(I==="_p"){l&&R(l,`_p.${A}`);return}let L=u.get(I);if(L){R(L,A);return}if(n)return}E(A,x)},g=(A,I="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,I);return}if(A.type==="ARITH"){g(A.left,I),g(A.right,I);return}if(A.type==="STRING_FUNC"){y(A,I);return}},h=(A,I="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&P(A.arg,I);return}A.type==="AGG_ARITH"&&(h(A.left,I),h(A.right,I)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,I)},T=(A,I="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){h(A,I);return}b(A,I)},y=(A,I="select")=>{for(let x of A.args)T(x,I)},b=(A,I="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,I);return}if(A.type==="STRING_FUNC"){y(A,I);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){b(A.left,I),b(A.right,I);return}A.type==="CASE_WHEN"&&C(A,I)},P=(A,I="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,I);return}b(A,I)},v=(A,I="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){h(A,I);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,I);return}b(A,I)}},C=(A,I="select")=>{for(let x of A.branches)N(x.condition,I),v(x.result,I);A.elseResult&&v(A.elseResult,I)},M=(A,I="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){h(A.aggregateRef,I);return}m(A.field,A.tableAlias,I);return}if(A.type==="FUNC_FIELD"){y(A.expr,I);return}if(A.type==="AGG_FIELD"){h(A.expr,I);return}if(A.type==="ARITH_FIELD"){g(A.expr,I);return}A.type!=="GROUPING_FIELD"&&C(A.expr,I)},O=(A,I="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,I);return}if(A.type==="CASE_VALUE"){C(A.expr,I);return}},N=(A,I="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,I),O(A.right,I);return;case"NULL_CHECK":M(A.field,I);return;case"LOGICAL":N(A.left,I),N(A.right,I);return;case"NOT":case"GROUP":N(A.expr,I);return;case"EXISTS":case"BOOLEAN":return}},U=(A,I)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",I);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}y(A.expr,"groupBy")},w=(A,I="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,I);return}if(A.type==="ARITH_KEY"){g(A.expr,I);return}A.type!=="GROUPING_KEY"&&y(A.expr,I)};for(let A of e.columns)switch(A.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&P(A.arg,"select");break;case"ARITH_AGG_COL":h(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":C(A.expr,"select");break;case"STRFUNC_COL":y(A.expr,"select");break;case"SCALAR_VALUE_COL":b(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&P(A.arg,"select");for(let I of A.partitionBy)m(I.field,I.tableAlias,"select");for(let I of A.orderBy)w(I.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));N(e.where,"where");let D=Z(e);if(D.type==="PLAIN")D.allItems.forEach((A,I)=>U(A,t?.items[I]));else if(D.type==="GROUPING_SETS")for(let A of D.allItems)m(A.field,A.tableAlias,"select");N(e.having,"having");for(let A of e.orderBy)w(A.key);return a}function Xg(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(pe(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 Qg(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function jt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||We(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||dp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function zt(e){let t=e.ctes[0].query,n=e.query,r=bo(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 bo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:nd(e.left,t)};case"NULL_CHECK":return{...e,field:nd(e.field,t)};case"LOGICAL":return{...e,left:bo(e.left,t),right:bo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:bo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function nd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Zg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),ey=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(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":ey.has(e.fieldType)?t="option":Zg.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 $(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function zn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function No(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=["=","!=",">","<",">=","<="],ty=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),ny=new Set(Ve),ry=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"])]]),iy=new Map([["TODAY",new Set(Ve)],["NOW",new Set(Ve)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),oy=["=","!=","in","not in"],ay=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(oy)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),sy=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"])]]),Zs=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"]),od=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Co(e){return ay.get(e)??new Set}function ad(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"&&Zs.has(o.fieldType)&&Co(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function ye(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:_r(e,t)}function _r(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return ly(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Qs():py(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Qs();case"GROUP":return _r(e.expr,t);case"NOT":{let n=_r(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ld(n.reasons)?vr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=_r(e.left,t),r=_r(e.right,t);return fy(e.op,n,r)}}}function ly(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ie(n.name))return uy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&rd(n))return id(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?id(e,t,p[0],r):Po("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Dr(e))}if(t.type!=="FIELD")return Qs();let i=r(t);if(!i)return qn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Dr(e));let o=Dr(e);if(!sd(i.fieldType,o))return qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!dy(i.fieldType,e))return qn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Co(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||rd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",u=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!u?{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 rd(e){return e.type==="KINTONE_FUNC"&&sn.has(e.name)}function id(e,t,n,r){let i=Dr(e),o=n.name;if(!sn.has(o)||t.type!=="FIELD")return Po("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=ry.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Po("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):iy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Po("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function uy(e,t,n,r){let i=Dr(e),o=n.name;if(t.type!=="FIELD")return Lr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?cy(n)?ny.has(i)?!ty.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Lr("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}]}:Lr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Lr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Lr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function cy(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 py(e,t,n){let r=n(e);return r?sd(r.fieldType,t)?!Zs.has(r.fieldType)&&!od.has(r.fieldType)?qn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):qn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function sd(e,t){let n=sy.get(e);return n===void 0||n.has(t)}function dy(e,t){return Zs.has(e)?!0:od.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Dr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function fy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?vr({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")?vr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):vr({capability:"LOCAL_ONLY",reasons:r})}function Qs(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function qn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Po(e,t,n,r,i){return vr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Lr(e,t,n,r,i){return ud({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ld(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ie(t.functionName))}function Ey(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&sn.has(t.functionName))}function ud(e){if(e.capability==="EXACT_PUSHDOWN"||!ld(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&&ie(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 Ry(e){if(e.capability==="EXACT_PUSHDOWN"||!Ey(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&&sn.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 vr(e){return Ry(ud(e))}function Ur(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 Oo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Lo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Ur(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function _o(e){let t=e.raw??String(e.value),n=he(t);if(n===null)return!1;if(n.sign===0)return z(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=Os(n);return z(e)===o}var my=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),gy=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),yy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),hy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Do(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"?yy.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Sy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Ay(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"&&_o(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&_o(e.right)?"exact":"unsafe":gy.has(r)?el(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?el(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||hy.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Ur(e.right.value)?"exact":"unsafe":r==="TIME"?Oo(e.right.value)?"exact":"unsafe":Lo(e.right.value)?"exact":"unsafe":my.has(r)?!el(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 cd(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 el(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 Ay(e){let t=n=>n.type==="NUMBER"&&_o(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 Sy(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function tl(e,t={}){return ko(e,t).condition}function ko(e,t={}){return vo(e,n=>Ty(n,t))}function Mr(e,t={}){return Uo(e,n=>cd(n,r=>Mo(r,t)))}function vo(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=vo(e.left,t),r=vo(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 vo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Uo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Uo(e.left,t),r=Uo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Uo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Ty(e,t){if(Iy(e,t)||wy(e,t))return"exact";if(e.left.type!=="FIELD"||!Mo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||ye(e,i=>{if(!Mo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Do(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Iy(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Mo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function wy(e,t){return!by(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function by(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 Mo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function kr(e,t={}){let n=e!==null&&t.extractCondition!==!1?ko(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 dn(e,t={}){let n=e.joins.every(c=>c.type==="INNER"||c.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=kr(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,u=new Map;if(e.where!==null)for(let c of e.joins){if(c.type!=="INNER"&&c.type!=="CROSS"||!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let d=ko(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(c.table.alias,d.condition),u.set(c.table.alias,d.relation))}let p=new Set(a.appliedKlikes);for(let c of l.values())Jn(c,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:p,allKlikes:a.allKlikes}}function nl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Jn(e,t){if(e!==null){if(Ht(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 xo(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=Se(t.where);if(l.length===0||!Cy(l,a)||o===null||!pd(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Py(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return Ny(p,e,l),p}function Ny(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(!pd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(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"&&et(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function Py(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&et(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&et(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 Cy(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function pd(e,t){let n=new Map;for(let r of t){if(!et(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 Ee=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function dd(e){fd(e)}function il(e){if(nl(e).length>0)throw new Ee("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 fd(e){switch(e.type){case"SELECT":Xn(e);return;case"UNION":al(e);return;case"WITH":Ed(e);return;case"EXPLAIN":fd(e.query);return;case"CREATE_TEMP_TABLE":ol(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":fn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!wt(e.where)&&Ie(e.where)){rl(e.where),fn(e);return}if(qt(e)&&e.subtableCode)throw new Ee("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)&&!_y(e,e.where)){rl(e.where),fn(e);return}if(qt(e))throw new Ee("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(qt(e)&&e.subtableCode)throw new Ee("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)){rl(e.where),fn(e);return}if(qt(e))throw new Ee("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(qt(e))throw new Ee("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(qt(e))throw new Ee("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(qt(e))throw new Ee("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(qt(e))throw new Ee("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 rl(e){Go(e,t=>{if(!Ht(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Ee("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 Ee("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 ol(e){e.type==="SELECT"?Xn(e):e.type==="UNION"?al(e):Ed(e)}function al(e){ol(e.left),Xn(e.right)}function Ed(e){if(jt(e)){Xn(zt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Xn(t.query):t.query.type==="UNION"&&al(t.query);ol(e.query)}function Xn(e){if(Ly(e),Ie(e.where)&&!(We(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=dn(e,{allowUnresolvedVariables:!0});if(nl(n).length===0){fn(e);return}if(Oy(e)){fn(e);return}throw new Ee("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")}fn(e)}function Oy(e){return e.where!==null&&Se(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 Ly(e){Go(e,t=>{if(!Ht(t))return;if(!Fo(e.where,t))throw new Ee("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 Ee("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 Ee("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 fn(e){Ko(e,t=>{t.type==="SELECT"&&Xn(t)},!0)}function qt(e){let t=!1;return Ko(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function _y(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 Fo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Fo(e.left,t)||Fo(e.right,t);case"NOT":case"GROUP":return Fo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Go(e,t){if(Array.isArray(e)){for(let r of e)Go(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&&Dy(r)||Go(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 Dy(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var xr=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 Rd(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(vy(t))throw new xr;return;default:return}}function vy(e){let t=!1;return Bo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||Uy(n.where)&&(t=!0)}),t}function Uy(e){let t=!1;return Bo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Bo(e,t){if(Array.isArray(e)){for(let r of e)Bo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Bo(r,t)}function Jt(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 $o(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 Jt(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Jt(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 Jt(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Jt(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Jt(e,t,3,3);case"REGEXP_REPLACE":return Jt(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Jt(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Jt(e,t,0,0)}}var ul=1e4,Nt=ul,X=e=>new Error(`ArgumentError: ${e}`),My=e=>e.type==="VARIABLE",Xt=e=>e?.type==="STRING"&&e.fromVariable===!0;function ky(e){return e.type==="NUMBER"?Number(z(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 sl(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 xy(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 md(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 Fr(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 Gr(e){let t=he(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 gd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Wo(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 ll(e){return e.year*12+e.month-1}function yd(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 Fy(e,t,n){let r=sl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=sl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Wo(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=ll(t)+(n.coefficient<0&&t.day!==1?1:0);return Wo(ll(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Wo(e.year,a,n.coefficient)}function hd(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 Gy(e){let t=Math.floor(e/12),n=e-t*12+1;return hd(t,n,1)}function Ad(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(h=>ky(h));["start","stop","step"].forEach((h,T)=>{if(t[T]==="")throw X(`GENERATE_SERIES \u306E ${h} \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,u=typeof r=="string"?Qn(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(gd))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||u||p||c||typeof n=="string"&&typeof r=="string"&&!(Xt(o)&&Xt(a)&&Fr(n)!==null&&Fr(r)!==null)){if(!l||!u)throw X(l&&typeof r!="string"||u&&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 h=i===void 0?{coefficient:1,unit:"DAY"}:md(i);return yd(l,h.unit),{kind:"DATE",start:n,stop:r,step:h.coefficient,dateUnit:h.unit,rowCount:Fy(l,u,h)}}let d=o.type==="NUMBER"?Gr(o):Xt(o)?Fr(n):null,f=a.type==="NUMBER"?Gr(a):Xt(a)?Fr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Xt(o))&&(a.type==="NUMBER"||Xt(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"?Gr(s):Xt(s)?Fr(i):null;if(R===null)throw s?.type==="NUMBER"||Xt(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,m=f,g=R;if(g===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:g,rowCount:Wo(E,m,g)}}function Ky(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(My)){["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"&&Gr(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(gd(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=Gr(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=md(n.value),i=e.args[0];if(i?.type==="STRING"){let o=Qn(i.value);o&&yd(o,r.unit)}}return null}let t=Ad(e);if(t.rowCount>Nt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Nt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Sd(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=Ky(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Nt)throw X(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Nt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Vo(e){let t=Ad(e);if(t.rowCount>Nt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Nt} \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=ll(r);for(let o=0;o<t.rowCount;o++)n.push(Gy(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(hd(r.year+i*t.step,1,1));else{let i=sl(t.start);for(let o=0;o<t.rowCount;o++)n.push(xy(i+o*t.step))}}return{...t,values:n}}function tt(e){By(e),Rd(e),dd(e),Sd(e)}function By(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;$o(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var Ho=16,Td=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function Kr(e,t,n){if(Array.isArray(e)){for(let r of e)Kr(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))Kr(a,t,n)}}var $y=new Set(["=","!=","<>",">","<",">=","<="]);function cl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)cl(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",u=n&&i==="BINARY"&&a==="right"&&l&&$y.has(String(r.op));cl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function Wy(e){let t=e.type==="EXPLAIN"?e.query:e;return Wt(t.type)||t.type==="VALIDATE"}function pl(e){if(Array.isArray(e)){for(let t of e)pl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Js(e);for(let n of Object.values(t))pl(n)}}function dl(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((c,d)=>{try{pl(c)}catch(f){throw f instanceof Error?new oe(f.message,d):f}try{$n("phase15b",c),tt(c)}catch(f){throw f instanceof Ee||f instanceof xr?new oe(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,d):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let d=c==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${d} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let d=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`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((c,d)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let v=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new oe(v,d)}let R=uo(c),E=[],m=[],g=new Set,h=new Set,T=new Set,y=[];cl(c,y);let b=new Set;for(let v of y){let C=o.get(v.name);if(C===void 0)throw new oe(`ParseError: variable @${v.name} is not defined before statement ${d+1}.`,d);if(C.kind==="scalar"&&v.kind==="array-in-list")throw new oe(`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 oe(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,d);if(C.relativeDate&&Wy(c))throw new oe(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,d);if(C.relativeDate&&!v.relativeDateAllowed)throw new oe(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);b.has(v.name)||(C.referencedBy.push(d),b.add(v.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new oe(`ParseError: variable @${c.name} is already defined.`,d);if(o.set(c.name,{index:d,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",relativeDate:c.type==="DECLARE_VARIABLE"&&c.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(c.name),a.length>Td)throw new oe(`ParseError: batch exceeds ${Td} variables.`,d)}c.type==="CREATE_TEMP_TABLE"?Kr(c.query,g,h):c.type==="DROP_TEMP_TABLE"||Kr(c,g,h);let P=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let v=new Set,C=new Set;Kr(c.select,v,C),P=v.size>0&&C.size===0}for(let v of g){let C=t.get(v);if(C===void 0)throw new oe(`ParseError: temp table ${v} is not defined in this batch.`,d);T.add(C)}if(f){let v=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(O=>O.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(O=>O.kind==="FIELD"?[O.field]:O.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(O=>O.field)]:"fields"in c?c.fields:[],C=JSON.stringify(v),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,C),r.push(f),E.push(f),t.size>Ho)throw new oe(`ParseError: batch exceeds ${Ho} temp tables.`,d)}else{if(n.get(f)!==C)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,d);T.add(M)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new oe(`ParseError: temp table ${c.name} is already defined.`,d);if(t.set(c.name,d),r.push(c.name),E.push(c.name),t.size>Ho)throw new oe(`ParseError: batch exceeds ${Ho} temp tables.`,d)}if(c.type==="DROP_TEMP_TABLE"){let v=t.get(c.name);if(v===void 0)throw new oe(`ParseError: temp table ${c.name} is not defined in this batch.`,d);T.add(v),m.push(c.name),t.delete(c.name)}i.push({index:d,statementType:R,isDml:Ds(c),isReadOnly:Fn(c),hasWhere:yp(c),insertValuesCount:hp(c),appIds:[...h].sort((v,C)=>v-C),tempTablesCreated:E,tempTablesReferenced:[...g],tempTablesDropped:m,dependsOn:[...T].sort((v,C)=>v-C),tempOnlySource:P,targetAppId:Wt(R)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:mp(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:u,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Yo=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 _e=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"}},Qt=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(Zn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(fl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new _e(`\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 _e("\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 _e("\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&&Zn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Zn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Zn(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||!Zn(this.input[this.pos]))throw new _e("\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&&Zn(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&&Id(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Yo.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(!fl(n))throw new _e("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Id(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new _e(`@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 _e("\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 _e("\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 Le("\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 dl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Hy(t)}function Id(e){let t=e.codePointAt(0);return dl(e)||t>=48&&t<=57}function Zn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Hy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var bd=20,El=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"}),Pd=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Br=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"}),WN=Object.freeze(Object.values(Br).filter(e=>e!==void 0)),Yy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),jy=new Set(Yy);function zy(e){return jy.has(e)}var Cd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),$r=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Nd(e){return $r[e]!==void 0}var qy=Object.freeze([...co]),Jy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Xy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Qy(e){return Jy.has(e)}function Zy(e){return Xy.has(e)}function eh(e){return Number.isInteger(e)&&e>=1&&e<=31}var VN=Object.freeze(Array.from(new Set([...Object.keys(El),...Pd,...Object.keys(Br),...Object.keys(Cd),...Object.keys($r),...qy,"IF"]))),th=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 nh(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!th.has(e.kind):!0}var S=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"}},fl=["\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
- `),Qt=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.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\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 S(`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>bd)throw new S(`batch exceeds ${bd} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new S("\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 S("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 S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("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 S("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=$r[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ie(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new S("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 S(`${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 S(`${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 S("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 S("\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 S("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=$r[r.kind];if(i==="LOGINUSER")throw new S(`${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 S(`${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 S(`${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 S(`${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 S(`${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 S("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 S(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 S("\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 S("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}=Pt(t,this.prev());if(r)throw new S("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 S("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 S("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new S("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}=Pt(n,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let P=this.parseIdentifier();if(s.has(P))throw new S(`IMPORT target ${P} is declared more than once.`,this.prev());if(s.add(P),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new S(`IMPORT subtable ${P} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}C=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:P,children:v,...C?{rowIdSourceHeader:C}:{}})}else a.push(P),o.push({kind:"FIELD",field:P});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let u=this.parseIdentifier(),p,c=!0,d;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let P=this.parseIdentifier().toUpperCase();if(P!=="UTF8"&&P!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());p=P==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(c)throw new S("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 S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ce||f.joins.length>0)throw new S("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 S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(P=>P.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`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 S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("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 S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),E=!0}}let m,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let P of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(P))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(P=>P.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(P=>P.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let P=new Set(h);for(let v of T){if(!v.rowIdSourceHeader)throw new S(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!P.has(v.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of P)if(!T.some(C=>C.subtableCode===v))throw new S(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(h)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let y=this.parseCheckGroups(),b=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:u}:{kind:"CSV",sourceName:u,encoding:p,hasHeader:c,mappingMode:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...h?{replaceSubtables:h}:{},...m?{keyFields:m}:{},...y,...b}}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 S("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new S("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}=Pt(n,this.prev());if(i)throw new S(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:d})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),u;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);u=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...u?{errorTable:u}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new S("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 S("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 S("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 S("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 S("\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 S("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 S("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 S("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 S(`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 S("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 S("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&&nh(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:Ce},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],u,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?u=this.parseGroupingSetsClause():this.isRollupStart()?u=this.parseRollupClause():this.isCubeStart()?u=this.parseCubeClause():l=this.parseGroupByKeys(),u&&this.peek().kind===",")throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",d=[];if(this.consume("ORDER"))this.expect("BY"),d=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),d=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(g=>g.type==="WINDOW_COL"),m=r.some(g=>this.selectColumnHasAggregate(g));if(E&&(l.length>0||u!==void 0||m))throw new S("\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(u&&c==="KINTONE_NATIVE")throw new S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,p,l,u),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...u?{grouping:u}:{},having:p,orderMode:c,orderBy:d,limit:f,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,u=this.peek().kind;if(u==="SHOW")s=this.parseShow();else if(u==="DESCRIBE"||u==="DESC")s=this.parseDescribe();else if(u==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let d=this.parseRecursiveCteCandidate(o);s=d.query,l=d.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let p=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(p&&!l)throw new S("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:p},this.validateRecursiveCte(o,a,l),r++,r>1))throw new S("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let c={name:o,query:s};a&&(c.columnAliases=a),l&&(c.recursiveSpec=l),n.push(c),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new S("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new S("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new S("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new S("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new S("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD")||a.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"))throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new S("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new S("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(p=>p===t).length!==1)throw new S("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new S("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let u=n??o.columns.map(p=>this.selectColumnOutputName(p));if(r.cycle){if(u.filter(c=>c===r.cycle.column).length!==1)throw new S("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(u.includes(r.cycle.markColumn))throw new S("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new S("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 S("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(Ae(`${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 S("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 S("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 S(fl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\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 S("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)),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:u?.alias??null},u)}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),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:u?.alias??null},u)}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 S("_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 Cd[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(Br[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 S(`${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 S("\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 S(`${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 S(`${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 S(fl,this.peek());if(!this.consume("AS"))throw new S("\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 S(`${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 S("\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 S("\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 S("\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 S(fl,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ae(`-${z(n)}`):{type:"AGG_ARITH",left:Ae("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ae(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new S("\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),Br[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=p=>{if(Array.isArray(p)){p.forEach(a);return}if(p===null||typeof p!="object")return;let c=p;if(!(c.type==="SELECT"||c.type==="SCALAR_SUBQUERY")){if(c.type==="AGG_GROUP_KEY"){o.push(p);return}Object.values(c).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 S("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 S(`\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 u=new Set(r.filter(p=>p.type==="FIELD_NAME").map(p=>p.name));for(let p of o){let c=this.aggregateGroupKeyDisplay(p);if(!u.has(c))throw new S(`\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${c}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(p)??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 S("\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 S("\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 S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ae(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ae("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ae(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new S("\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 S(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 S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ae(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ae(`-${z(n)}`):{type:"ARITH",left:Ae("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ae(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new S("\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 S("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 S("\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=El[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=El[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(Pd.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 S(`\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 S))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 S(`${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 S("\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=rh(n);if(r===null)throw new S(`\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 Br[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 S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!zy(t))throw new S(`${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 S("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 S){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\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 S("\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 S("\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 S("\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 S("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};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new S(s,t)}let{appId:r,subtableCode:i}=Pt(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 S("\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 S("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 S("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 S("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 S("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 S("\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 S("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 S("\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 S("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 S(`\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("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 S("\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:pe(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 Ae(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ie(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 S("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 S("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 S("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(!Qy(l))throw new S("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 u=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:u,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(!Zy(o))throw new S(`${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(!eh(o))throw new S(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new S(`${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 S(`\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(Nd(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:$r[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 S("\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 S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ae(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new S(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ae(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new S(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 S(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 S(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 S(o,this.peek())}else throw new S(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 S("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 S("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 S("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 S("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 S("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 S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=pp(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 S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("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 S("\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("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}=Pt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("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 S("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 S("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 S("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 S("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 u=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...u,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...u,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Pt(t,this.prev());if(r)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),d=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("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 S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields: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 S("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 S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("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,...u,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("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 S("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 S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new S(`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 S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Ae(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Ae(r.value));else throw new S("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 S(`\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}=Pt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.value.type==="STRING_FUNC"))throw new S("\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 S("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 S("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 S("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 S(`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 S("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 S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\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 S("\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 S("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 S("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 S("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 S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&u.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...u,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...u,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...u,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("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 S("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 S("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 S("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 S("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 S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("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 S("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 S("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 S("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 S("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 S("\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 S("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 S(`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 S("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 S("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 S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let d=this.matchUpdateFromJoin(p,n,r);d!==null&&a.push({index:c,...d})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new S(`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 u=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:u}}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 S("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(Nd(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 S("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 S("\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}=Pt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("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}=Pt(n,this.prev());if(!i)throw new S("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 S("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 S("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 S("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 S(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 S("\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 S("\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 S("\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 S("\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 S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\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"||Yo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new S("\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 rh(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 Pt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new S(`\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 Zt(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 ih(e,t){return e<t?-1:e>t?1:0}function Od(e){if(e==="")return{band:0};let t=he(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 oh(e,t){let n=Od(e),r=Od(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?io(n.value,r.value):n.band===5&&r.band===5?Zt(n.value,r.value):0}function Ld(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 ah(e,t,n){let r=Ld(e,n),i=Ld(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=Zt(r.normalizedId,i.normalizedId);return o!==0?o:Zt(r.display,i.display)}function sh(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 _d(e,t){let n=t.optionOrder??new Map,i=[...new Set(sh(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(Dd),i}function Dd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Zt(e.label,t.label)}function lh(e,t,n){let r=_d(e,n),i=_d(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Dd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function tt(e,t,n){switch(n.compareMode){case"string":return Zt(e,t);case"number":return oh(e,t);case"recordNumber":return ah(e,t,n.fieldType==="RECORD_NUMBER");case"option":return lh(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Ct(e,t,n,r=$("string")){let i=tt(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 vd(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=he(o),l=he(a),u=s!==null&&l!==null?io(s,l):ih(Number(o),Number(a));if(u!==0)return u}return Zt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Re(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(xe(t,e.field));if(e.type==="STRING_FUNC")return Number(me(e,t));let n=Re(e.left,t),r=Re(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 xe(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 me(e,t,n,r);case"CASE_WHEN":return Ge(e,t,n,r);case"CONCAT_OP":return me({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 Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return xd(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return we(e,t,n,r)}}function jo(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 uh(e){return e>=55296&&e<=56319}function ch(e){return e>=56320&&e<=57343}function qo(e,t){return t>0&&t<e.length&&uh(e.charCodeAt(t-1))&&ch(e.charCodeAt(t))}function Ud(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 ml(e,t){let n=Math.min(Math.max(0,t),e.length);return qo(e,n)&&(n-=1),e.slice(0,n)}function ph(e,t){let n=Math.max(0,e.length-t);return qo(e,n)&&(n+=1),e.slice(n)}function dh(e,t,n){let r=Ud(t,e.length),i=Ud(n,e.length);return i<=r?"":(qo(e,r)&&(r+=1),qo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function fh(e,t){let n=e.repeat(Math.ceil(t/e.length));return ml(n,t)}var Eh=200,Wr=new Map;function Rh(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 Rl(e,t,n=!1){let r=Rh(t)+(n?"g":""),i=`${e}\0${r}`,o=Wr.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(Wr.size>=Eh){let s=Wr.keys().next().value;s!==void 0&&Wr.delete(s)}return Wr.set(i,a),a}function mh(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function gh(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 yh(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let u=Number(s);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=1;continue}}i+="$"}return i}function hh(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,u=a.length-(l?3:2),p=a.slice(0,u);return yh(n,o,p,l?s:void 0)})}function me(e,t,n,r){$o(e.func,e.args);let i=e.args.map(o=>Ph(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 dh(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?"":ml(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ph(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 ml(o,a);let s=i[2]??" ";if(s==="")return o;let l=fh(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return vd(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 Rl(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{mh(i[2]);let o=gh(i[4]),a=Rl(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):hh(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return Rl(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,u)=>{s.has(l)||s.set(l,a[u])}),[...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 jo("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return jo("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return jo("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return jo("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 bh(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 zo(i[0])?String(gl(i[0])+1):"";case"QUARTER":return zo(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return zo(i[0])?String(kd(i[0])):"";case"DATE_FORMAT":return Sh(i[0]??"",i[1]??"");case"DATEDIFF":return Th(i[0]??"",i[1]??"");case"DATE_ADD":return Ih(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return wh(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 Vr(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 Jo(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 zo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Jo(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 gl(e){return Jo(e).getUTCDay()}function Md(e){let t=Jo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Ah(e){return Md(e).getUTCFullYear()}function kd(e){let t=Md(e),n=t.getUTCFullYear(),r=Jo(`${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 Sh(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Vr(e),l=zo(e);return t.replace(/%[YymcdeHiswavG]/g,u=>{switch(u){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(gl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][gl(e)]:"";case"%v":return l?String(kd(e)).padStart(2,"0"):"";case"%G":return l?String(Ah(e)).padStart(4,"0"):"";default:return u}})}function Th(e,t){if(e.length<10||t.length<10)return"0";let n=Vr(e),r=Vr(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 Ih(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}=Vr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=c=>{let d=a.getUTCDate();a.setUTCDate(1),c();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"),u=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${l}-${u}-${p}`}function wh(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Vr(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 bh(e,t){if(/^-?\d+$/.test(t.trim()))return Nh(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,u=s+l,p=i.toFixed(u),[c,d=""]=p.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,R=d?`${f}.${d}`:f;return n?R+"%":R}function Nh(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 Ph(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Hr(e,t)):e.type==="NUMBER"?z(e):String(we(e,t,n,r))}function Hr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[pe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(xe(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Hr(e.left,t)),r=Number(Hr(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 xe(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 se(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Ch(e,t,n,r,i);case"NULL_CHECK":return Uh(e,t);case"LOGICAL":return Mh(e,t,n,r,i);case"NOT":return!se(e.expr,t,n,r,i);case"GROUP":return se(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Ch(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=Hd(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Lh(e.left,a,i);return Oh(e.op,o,e.right,t,a,n,s,i)}function Oh(e,t,n,r,i,o,a=$("string"),s){if(e==="IN"||e==="NOT_IN"){let u=null;if(n.type==="IN_LIST"&&(vh(n.values),u=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?z(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(u=n.resolved),u===null)return e==="NOT_IN";let p=Dh(t,u,i);return e==="IN"?p:!p}if(e==="LIKE"){let u=yl(n,r,o);return Vd(t,u)}if(e==="NOT_LIKE"){let u=yl(n,r,o);return!Vd(t,u)}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=yl(n,r,o,s);return Ct(e,t,l,a)}var Fd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Lh(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):$("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return $("number");if(e.type==="FUNC_FIELD")return $(Fd.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 $("number");if(o.type==="STRING_FUNC")return $(Fd.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)??$("string")}return $("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?$("number"):$("string")}var Gd=new Set(["CHECK_BOX","MULTI_SELECT"]),Kd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),_h=new Set(["CREATOR","MODIFIER"]);function Dh(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=$("number");return[...t].some(a=>Ct("=",e,a,o))}let i;if(Gd.has(n)||Kd.has(n)||_h.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Gd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Kd.has(n)?!Array.isArray(i)||!i.every(Bd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Bd(i)?t.has(i.code):r()}function Bd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function vh(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}: ${It}`)}function Uh(e,t){let n=Hd(e.field,t);return e.not?n!=="":n===""}function Mh(e,t,n,r,i){return e.op==="AND"?se(e.left,t,n,r,i)&&se(e.right,t,n,r,i):se(e.left,t,n,r,i)||se(e.right,t,n,r,i)}function Hd(e,t,n,r){if(e.type==="FUNC_FIELD")return me(e.expr,t);if(e.type==="AGG_FIELD")return String(Hr(e.expr,t));if(e.type==="ARITH_FIELD")return String(Re(e.expr,t));if(e.type==="CASE_FIELD")return Ge(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return Hn(e.ref,t);if(e.aggregateRef){let o=e.aggregateRef;return xe(t,pe(o.func,o.distinct,o.arg))}let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return xe(t,i)}function yl(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 z(e);case"KINTONE_FUNC":return kh(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"?xe(t,e.expr.field):e.expr.type==="STRING_FUNC"?me(e.expr,t):String(Re(e.expr,t));case"CASE_VALUE":return Ge(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ge(e,t,n,r){for(let i of e.branches)if(se(i.condition,t,n,void 0,r))return Wd(i.result,t,n,r);return e.elseResult!==null?Wd(e.elseResult,t,n,r):""}function xd(e,t,n,r){for(let i of e.branches)if(se(i.condition,t,n,void 0,r))return $d(i.result,t,n,r);return e.elseResult===null?null:$d(e.elseResult,t,n,r)}function $d(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ct(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Re(e,t):Ot(e,t,n,r)}function Wd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ct(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Re(e,t)):String(we(e,t,n,r))}function Yd(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 kh(e){throw ie(e)?new Error(`${e}: ${ln}`):Gn(e)?new Error(`${e}: ${It}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Xo=new Map,xh=200;function Vd(e,t){if(!Np(t))return e.includes(t);let n=Xo.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"),Xo.size>=xh&&Xo.clear(),Xo.set(t,n)}return n.test(e)}function er(e){return zd(e)}function jd(e){return zd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function zd(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 S(e,{kind:"EOF",value:"CHECK",pos:0})}function Qo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!se(a.condition,t,n))continue;let s=we(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function hl(e){if(Wt(e))throw new ae("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 Fh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Gh=new Set(["CHECK_BOX","MULTI_SELECT"]);function ta(e,t=new Map){let n=e.values.map(r=>Kh(e.fields,r,t));return qr(n,100).map(r=>({app:e.appId,records:r}))}function Kh(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:en(a.expr,{},n.get(i))}:r[i]={value:Lt(a,n.get(i))}}),r}function jr(e){hl(e.where);let t=lf(e);return{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function zr(e,t,n=new Map){let r=Bh(e.assignments,n);return qr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Bh(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:Lt(i,t.get(r))});return n}function Qd(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 na(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 Al(e){hl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Zd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?tr(n,t):n.type==="STRING_FUNC"?Sl(n,t):n.type==="CASE_VALUE"&&ef(n.expr,t);return lf(e).forEach(n=>t.add(n)),{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Zd(e,t){Yr(e.left,t),Yr(e.right,t)}function Yr(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"?Zd(e,t):e.type==="STRING_FUNC"&&Sl(e,t)}function Sl(e,t){for(let n of e.args)$h(n,t)}function $h(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ea(e,t);return}tr(e,t)}function tr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Sl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){tr(e.left,t),tr(e.right,t);return}e.type==="CASE_WHEN"&&ef(e,t)}function ea(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Wh(e.arg,t);return}e.type==="AGG_ARITH"&&(ea(e.left,t),ea(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function Wh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Yr(e,t):tr(e,t)}function qd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ea(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Yr(e,t);return}tr(e,t)}}function ef(e,t){for(let n of e.branches)Zo(n.condition,t),qd(n.result,t);e.elseResult!==null&&qd(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"&&Yr(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 Tl(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=tf(i),s={};for(let{field:l,value:u}of e.assignments)s[l]={value:Il(u,a,n.get(l),i)};return{id:o,record:s}});return qr(r,100).map(i=>({app:e.appId,records:i}))}function Il(e,t,n,r){if(e.type==="ARITH")return String(r?bl(e,r):Re(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(we(e,t));if(e.type==="STRING_FUNC")return me(e,t);if(e.type==="CASE_VALUE")return en(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Lt(e,n)}function ra(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(Re(e,t));if(e.type==="CASE_VALUE")return Ge(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 Vh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function wl(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 ae("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=tf(i),l={};for(let{field:u,value:p}of e.assignments){let c=n.get(u);if(p.type==="SOURCE_FIELD"){if(Vh.has(c??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${u}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[p.field];if(typeof d!="string")throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[u]={value:Lt({type:"STRING",value:d},c)}}else{if(p.type==="STRING_FUNC")throw new ae("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[u]={value:String(bl(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[u]={value:String(we(p,s))}:p.type==="CASE_VALUE"?l[u]={value:en(p.expr,s,c)}:l[u]={value:Lt(p,c)}}}return{id:a,record:l}});return qr(r,100).map(i=>({app:e.appId,records:i}))}function tf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function bl(e,t){let n=Jd(e.left,t),r=Jd(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Jd(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 bl(e,t);if(e.type==="STRING_FUNC")throw new ae("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 ae(`\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 nf(e){return hl(e.where),{app:e.appId,query:Y(e.where),fields:["$id"],totalCount:!1}}function rf(e,t){return qr(t,100).map(n=>({app:e,ids:n}))}function of(e){return Fh.has(e??"")}function Hh(e){return Gh.has(e??"")}function Yh(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 jh(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function af(e,t){return of(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Hh(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Yh(e):t==="DATE"?jh(e):e}function sf(e,t){return of(t)?e.map(n=>({code:n})):e}function Xd(e,t,n){if(e.type==="ARRAY")return sf(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"?af(e.value,n):e.type==="STRING_FUNC"?me(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(Re(e,t)):String(we(e,t))}function lf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(er(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function en(e,t,n){for(let r of e.branches)if(se(r.condition,t))return Xd(r.result,t,n);return e.elseResult!==null?Xd(e.elseResult,t,n):""}function Lt(e,t){let n=Nl(e,t);if(!n.ok)throw new ae(n.message);return n.value}function Nl(e,t){try{return{ok:!0,value:zh(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function zh(e,t){switch(e.type){case"VARIABLE":throw new ae(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ae(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return af(e.value,t);case"NUMBER":return z(e);case"ARRAY":return sf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ae(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ae("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ae("\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 ae("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 ae("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ae("\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 qr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ae=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Pl=new Set(["CHECK_BOX","MULTI_SELECT"]),qh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Jr(e){throw new Error(`ArgumentError: ${e}`)}function uf(e,t,n){let r=Jh(n.fieldType,e.field),i=Xh(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let h=g.value;h!==""&&(g.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let g of s)l.has(g)&&Jr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let u=i.filter(g=>!l.has(g)),p=a.filter(g=>!o.has(g)),c=[...u,...p],d=new Set(i.filter(g=>l.has(g))).size,f=new Set,R=new Set,E=e.operations.map(g=>{let h=g.kind==="ADD"?f:R,T=!h.has(g.value);return h.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&T&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),m=Pl.has(r)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:E,postImageValue:m,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function Jh(e,t){return Pl.has(e)||qh.has(e)?e:Jr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Xh(e,t,n){if(!Array.isArray(e))return Jr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Pl.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 J(e){throw new Error(`ArgumentError: ${e}`)}function Ll(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?J("APPLY parent selector must be a single positive $id."):t.right.value}function _t(e,t){let n=e.applyBlocks;if(!n?.length)return J("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)Cl(s.field,null,r),Qh(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(Ip(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let u=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,u),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let d of c.assignments)Cl(d.field,s.field,r,p),Ol(d.value,s.field,r,p);c.selector.kind==="WHERE"&&Ol(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let d=new Set;for(let f of c.fields)d.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),Cl(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Ol(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Qh(e,t){Xr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function Cl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`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&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ol(e,t,n,r){Xr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ia(e,t){let n=_t(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)Xr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function oa(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Rf(i?.value);return n}function pf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??_t(t,r),o=vl(n.$id?.value,"APPLY snapshot $id"),a=Ll(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),ff(t,n,i,o)}function df(e,t,n,r=_t(e,n)){let i=new Set;return t.map(o=>{let a=vl(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&J(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),ff(e,o,r,a)})}function ff(e,t,n,r){let i=vl(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let O=n.targetMultiValueFields.get(p.field);O||J(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(uf(p,t[p.field]?.value,O));continue}let c=n.childrenByTable.get(p.field),d=iA(t,p.field),f=new Set;for(let O of d)O.id||J(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(O.id)&&J(`APPLY snapshot for ${p.field} contains duplicate _rid ${O.id}.`),f.add(O.id);let R=O=>O.field==="_rid"?"SINGLE_LINE_TEXT":O.field==="_idx"?"NUMBER":c.get(O.field)?.fieldType,E=[],m=[],g=[],h=new Set,T=new Set,y=new Set,b=p.operations.some(O=>O.kind==="REMOVE");for(let[O,N]of p.operations.entries()){if(N.kind==="APPEND"){let w=_l(N,c,p.field);g.push({kind:"APPEND",addedRows:w.length}),m.push(...w);continue}if(N.kind==="REMOVE"){let w=tA(N,d,R,p.field);N.expectRows&&cf(N.expectRows,w.length,r,p.field,O,N.kind),g.push({kind:"REMOVE",removedRows:w.length});for(let D of w){let A=d[D].id;T.has(D)&&J(`APPLY row ${A} is selected by both PATCH and REMOVE.`),y.has(D)&&J(`APPLY removes row ${A} more than once.`),y.add(D)}continue}if(N.kind!=="PATCH")continue;let U=eA(N,d,R,p.field);N.expectRows&&cf(N.expectRows,U.length,r,p.field,O,N.kind),g.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let w of U){let D=d[w];y.has(w)&&J(`APPLY row ${D.id} is selected by both PATCH and REMOVE.`),T.add(w);let A=oa(D,w);for(let I of N.assignments){let x=`${D.id}\0${I.field}`;h.has(x)&&J(`APPLY patches cell ${D.id}.${I.field} more than once.`),h.add(x),E.push({rowIndex:w,field:I.field,value:ra(I.value,A,R)})}}}let P=new Map;for(let O of E){let N=P.get(O.rowIndex)??{};N[O.field]={value:O.value},P.set(O.rowIndex,N)}let C=[...d.flatMap((O,N)=>y.has(N)?[]:[{id:O.id,value:{...O.value,...P.get(N)??{}}}]),...m],M={table:p.field,operations:g,changedSubtableRows:P.size+y.size+m.length,deletedRows:y.size,snapshotRowIds:d.map(O=>O.id),postImageRows:C};b?o.push({...M,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((O,N)=>y.has(N)?[O.id]:[]),payloadRows:C.map(O=>({...O.id===void 0?{}:{id:O.id},value:O.value}))}):o.push({...M,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((O,N)=>{let U=P.get(N);return U?{id:O.id,value:U}:{id:O.id}}),...m.map(O=>({value:O.value}))]})}let s=oA(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:Il(p.value,s,c,t)}}let u={...t};Object.assign(u,l);for(let p of o)u[p.table]={value:p.postImageRows};for(let p of a)u[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:u,tables:o,multiValues:a}}function cf(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}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function aa(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,u)=>{let p=a[u];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:J(`APPLY normalized post-image for ${o.table} row ${u+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}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function _l(e,t,n){return e.values.map(r=>({value:Zh(e,r,t,n)}))}function Zh(e,t,n,r){if(t.length!==e.fields.length)return J(`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?Dl(a):s.type==="CASE_VALUE"?en(s.expr,{},a.fieldType):Lt(s,a.fieldType)}}return o}function Dl(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 eA(e,t,n,r){return Ef(e.selector,t,n,r)}function tA(e,t,n,r){return Ef(e.selector,t,n,r)}function Ef(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,u)=>u);let i=e.where,o=t.flatMap((l,u)=>se(i,oa(l,u),n)?[u]:[]),a=nA(i);a!==null&&o.length===0&&J(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=rA(i);return s!==null&&o.length===0&&J(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function nA(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 rA(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 iA(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:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function vl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function oA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Rf(r?.value);return t}function Rf(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 Xr(e,t){if(Array.isArray(e)){e.forEach(r=>Xr(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))Xr(r,t)}function de(e){throw new Error(`ArgumentError: ${e}`)}function la(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?de("APPLY snapshot $revision must be a positive integer."):t}function Qr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return de("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return de("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)&&de(`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)&&de(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&de(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),aA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function mf(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 de("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 aA(e){let t=Ul(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&de(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Ul(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&de(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");sa(t,p,`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)&&de(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(d=>d.id??"");sa(t,c,`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)&&de(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||de(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Ul(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&de(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&de(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&de(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));sa(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");sa(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&de(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&de(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!Ml(p.value,e.postImageRows[c]?.value))&&de(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let u=new Set([...i,...r]);(u.size!==t.length||t.some(p=>!u.has(p)))&&de(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Ul(e,t){let n=[...e],r=new Set;for(let i of n)i||de(`APPLY ${t} contains an empty row id.`),r.has(i)&&de(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function sa(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&de(n)}function Ml(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)=>Ml(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)&&Ml(n[a],r[a]))}function gf(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 yf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=gf(t.digits,"digits",1,30),r=gf(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 hf(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 sA=new Set(["CHECK_BOX","MULTI_SELECT"]),lA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ke(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=uA(e);if(i!==""&&!cA(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=Zr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:pA(t.fieldType),message:o}}if(t.required&&ua(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ua(r)&&t.fieldType==="NUMBER"){let i=String(r),o=he(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&&oo(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&&oo(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}=hf(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(!ua(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!En(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!ua(r)&&lA.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 uA(e){return e==null?"":ca(e)&&e.type==="NUMBER"?z(e):ca(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function cA(e,t){if(t==="DATE")return En(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return En(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)?En(n.slice(0,10),"DATE")&&En(n.slice(11),"TIME"):En(n,"DATETIME")}function Zr(e,t){if(ca(e)){let r=Nl(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(sA.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 ca(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Rn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(ca(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ua(e){return e===""||Array.isArray(e)&&e.length===0}function pA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function En(e,t){if(t==="TIME"){let u=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return u!==null&&Number(u[1])<=23&&Number(u[2])<=59&&Number(u[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)&&En(l,"TIME")}var nr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function kl(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(p=>typeof p=="object"&&p!==null&&"code"in p),u=a;try{u=Zr(a,s)}catch{}i.record[o]={value:l?a:u}}}}function xl(e,t,n,r,i,o,a,s=[],l=!0,u=!0,p={}){let c=new Map(i.map(m=>[m.code,m])),d=[],f=new Set,R=[];p.validateUpdateBuiltIns===!1&&kl(e,r,i);let E;for(let m of e){m.record??(m.record={});let g=u?[...m.preErrors]:[],h=[],T=[],y=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let C of r){if(!m.payload.has(C))continue;let M=m.payload.get(C),O=c.get(C).fieldType,N=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(O)&&Array.isArray(M)&&M.every(w=>typeof w=="object"&&w!==null&&"code"in w);if(!y)continue;let U=Ke(M,c.get(C),a);U.ok?m.record[C]={value:N?M:U.value}:h.push({field:C,code:U.code,message:U.message})}if(l&&m.mode==="create")for(let C of i){if(C.inSubtable||m.payload.has(C.code))continue;if(Rn(C.defaultValue)){let O=Ke("",C,a);O.ok?C.required&&h.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:C.code,code:O.code,message:O.message})}else{let O=Ke(C.defaultValue,C,a);O.ok||h.push({field:C.code,code:O.code,message:`\u65E2\u5B9A\u5024: ${O.message}`})}}if(s.length>0){let C=m.evaluationRow??Object.fromEntries([...m.payload].map(([N,U])=>[N,pt(U)])),M=m.evaluationFieldTypes,O=N=>{let U=N.tableAlias?`${N.tableAlias}.${N.field}`:N.field;return M?.get(U)??M?.get(N.field)};try{for(let N of Qo(s,C,O))T.push({field:"",code:"ERR_CHECK",message:N.message})}catch(N){E??(E=N)}}let b=C=>C.map(M=>{let O={};for(let N of n)O[N]=pt(m.payload.get(N));return O.$err_statement=String(o),O.$err_operation=t,O.$err_row=String(m.rowNumber),O.$err_field=M.field,O.$err_code=M.code,O.$err_message=M.message,O.$err_value="",O.$err_subtable="",O.$err_subrow="",O.$err_subrow_id="",O}),P={rowNumber:m.rowNumber,preErrors:b(g),builtInErrors:b(h),checkErrors:b(T)};R.push(P);let v=[...P.preErrors,...P.builtInErrors,...P.checkErrors];v.length>0&&f.add(m.rowNumber),d.push(...v)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function pt(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 Fl=["required","length","range","choice"];function Gl(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 Kl(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 dA(e){return Gl(e).length>0}function fA(e){return e.fieldType==="NUMBER"||dA(e)}function pa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Bl(e,t){let{topByCode:n,childrenByTable:r}=Kl(t),i=fA;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,u)=>{let p=u?`${u}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...u?{subtableCode:u}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=c.find(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,m])=>E!==l.subtableCode&&m.some(g=>g.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 u=l.field;if(u==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(u);if(p?.fieldType==="SUBTABLE"){let c=(r.get(u)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${u} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(d=>s(d,u));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(d=>d.code===u))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${u}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function ei(e,t){return Rn(e)?"":pt(Zr(e,t))}var EA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),ti=nr;function dt(e,t=["$id"]){let n=Kl(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!EA.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 mn(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 gn(e,t,n,r,i=1,o="UPDATE"){let a=RA(e),s=[],l=new Set,u=[...t.payloadFields,...ti],p=pt(e.$id?.value),c=(d,f,R,E)=>{l.add(i);let m={};for(let g of t.payloadFields)m[g]=g==="$id"?p:pt(e[g]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=d.code,m.$err_code=R.code,m.$err_message=R.message,m.$err_value=ei(f,d.fieldType),m.$err_subtable=E?.subtable??"",m.$err_subrow=E?String(E.subrow):"",m.$err_subrow_id=E?.subrowId??"",s.push(m)};for(let d of t.topLevel){let f=e[d.code]?.value,R=Ke(f,d,n);R.ok?a[d.code]={value:Af(f,d.fieldType,R.value)}:c(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 m=0;m<R.length;m++){let g=R[m],h=E[m];for(let T of f){let y=g.value?.[T.code]?.value,b=Ke(y,T,n);b.ok?(h.value??(h.value={}),h.value[T.code]={value:Af(y,T.fieldType,b.value)}):c(T,y,b,pa(d,m,g))}}}return{normalizedRecord:a,errors:s,columns:u,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Af(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 RA(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 da(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Sf(o,"dmlMaxRows"),Sf(a,"dmlMaxSubtableRows");for(let T of n)la(T);let l=df(t,n,r,i),u=dt(r,t.assignments.map(T=>T.field)),p=l.some(T=>mn(T.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=l.map((T,y)=>gn(T.postImage,u,c,s,e.parentRowNumbers?.[y]??y+1));if(!t.validateOnly){let T=d.flatMap(y=>y.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:T})}`)}let f=l.length,R=l.reduce((T,y)=>T+y.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 m=l.map((T,y)=>aa(T,d[y].normalizedRecord)),g=m.flatMap(T=>Qr(T).records),h=d.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Tf({plans:m,records:g,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function Sf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Tf(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))Tf(n,t);return Object.freeze(e)}var $l=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function fa(e,t){if(new Set(e.fields).size!==e.fields.length)return ft("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)If(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return ft(`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 ft(`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 ft(`APPLY INSERT supports APPEND only (${l.kind}).`);let u=new Set;for(let p of l.fields){if(u.has(p))return ft(`APPLY APPEND specifies child ${p} more than once.`);u.add(p),If(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return ft(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function mA(e,t,n=fa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ta(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),u=s.operations.flatMap(p=>_l(p,l,s.field));return{table:s.field,rows:u,addedRows:u.length}});return o.map((s,l)=>{let u={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||$l.has(c.fieldType)||(u[c.code]=s[c.code]??{value:Dl(c)});let p={...s};for(let c of a){let d=c.rows.map(f=>({value:f.value}));u[c.table]={value:d},p[c.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:u,record:p}})}async function ni(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;wf(r,"dmlMaxRows"),wf(i,"dmlMaxSubtableRows");let a=e.metadata??fa(t,n),s=mA(t,n,a,e.parentRowNumbers),l=n.filter(y=>y.fieldType==="SUBTABLE"||y.fieldType!=="FILE"&&y.writable!==!1&&!$l.has(y.fieldType)),u=dt(l,t.fields),p=s.some(y=>mn(y.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=s.map(y=>gn(y.postImage,u,c,o,y.parentRowNumber,"INSERT"));if(!t.validateOnly){let y=d.flatMap(b=>b.errors);if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:y})}`)}let f=s.length,R=s.reduce((y,b)=>y+b.tables.reduce((P,v)=>P+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 m=s.map((y,b)=>{let P=d[b].normalizedRecord,v={};for(let C of t.fields)v[C]=P[C];for(let C of y.tables){let M=P[C.table]?.value;v[C.table]={value:C.rows.map((O,N)=>({value:Object.fromEntries(Object.keys(O.value).map(U=>[U,M[N]?.value?.[U]??O.value[U]]))}))}}return{...y,postImage:P,record:v}}),g=m.map(y=>y.record),h=[];for(let y=0;y<g.length;y+=100)h.push({app:t.appId,records:g.slice(y,y+100)});let T=d.map(y=>({errors:y.errors,columns:y.columns,invalidRows:y.invalidRows,errorCount:y.errorCount}));return bf({applyBlocks:t.applyBlocks??[],candidates:m,records:g,batches:h,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function If(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return ft(`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?ft(`APPLY child ${e} does not belong to subtable ${t}.`):ft(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||$l.has(i.fieldType))return ft(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function wf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ft(e){throw new Error(`ArgumentError: ${e}`)}function bf(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))bf(n,t);return Object.freeze(e)}async function Pf(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Nf(i,"dmlMaxRows"),Nf(o,"dmlMaxSubtableRows"),SA(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=gA(t,s.map(g=>g.sourceRowIndex)),p=await ni({statement:u,fieldInfos:r,metadata:fa(u,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],d=new Set;for(let g of l){let h=g.targetId;d.has(h)&&Wl(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),d.add(h),g.snapshot||Wl(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let T=Number(g.snapshot.$id?.value);T!==h&&Wl(`UPSERT APPLY snapshot $id ${T} does not match target $id ${h}.`);let y=yA(t,g.sourceRowIndex,h),b=y.applyBlocks?.length?_t(y,r):hA(r);c.push(await da({statement:y,snapshots:[g.snapshot],fieldInfos:r,metadata:b,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=AA(c,i,o),R=p.guards.parentRows+f.guards.parentRows,E=p.guards.subtableRows+f.guards.subtableRows,m=R>i||E>o;if(!t.validateOnly){let g=[...p.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}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 Vl({create:p,update:f,createBatches:p.batches,updateBatches:TA(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function gA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function yA(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 hA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function AA(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 Vl({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 SA(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 TA(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 Nf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Wl(e){throw new Error(`ArgumentError: ${e}`)}function Vl(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))Vl(n,t);return Object.freeze(e)}function ii(e){return rr("UPDATE",[Lf(e)])}function Hl(e){return rr("INSERT",[Of(e)])}function Yl(e){return rr("UPSERT",[Of(e.create),Lf(e.update)])}function He(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 Ra(e,t,n){return e.type==="UPDATE"?rr("UPDATE",[Ea("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?rr("INSERT",[Ea("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):rr("UPSERT",[Ea("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ea("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function rr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Of(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 Lf(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:Cf(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:Cf(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 Cf(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:ri(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ri(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ri(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ri(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ri(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ri(e,t){return e==null||t===null?null:e+t}function Ea(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>IA(f,n)),d=c.every(f=>f.count!==null)?c.reduce((f,R)=>f+R.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:d}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,u=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:u},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function IA(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 Et=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 _f(e,t,n){Wn("phase10c");let r=mf(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 Et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 Df(e,t,n){Wn("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 Et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 vf(e,t,n){Wn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let u=e.createBatches[l];try{let p=await t.postRecords({app:u.app,records:[...u.records]});r.push(p.ids)}catch(p){throw new Et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=u.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let u=e.updateBatches[l];try{await t.putRecords({app:u.app,records:[...u.records]})}catch(p){throw new Et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=u.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var wA=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function bA(e){if(!wA.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 NA(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=bA(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 jl(e,t){let n=NA(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 PA(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 zl(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 PA(i)?!0:Object.values(i).some(n)};return n(e)}function Uf(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Rt(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var oi=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},ma=class{constructor(t,n=Rt({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new oi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new oi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new oi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var ga=50;function Jl(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+=ga){let o=e.values.slice(i,i+ga);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var ql=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),CA=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function OA(e,t){return e==="DATE"?Ur(t):e==="TIME"?Oo(t):ql.has(e)?Lo(t):!1}function LA(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":ql.has(e)?ql.has(t.fieldType):!1}function Xl(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Co(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!CA.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(!LA(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=>!OA(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];tt(s,i,n)<0&&(i=s),tt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Ql=ll;function ai(e,t,n=Ql){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Mf(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 mt(e){if(e===null)return!1;switch(e.type){case"BINARY":return ya(e.left);case"NULL_CHECK":return ya(e.field);case"LOGICAL":return mt(e.left)||mt(e.right);case"NOT":case"GROUP":return mt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function ya(e){if(Array.isArray(e))return e.some(ya);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(ya)}async function nt(e,t,n,r,i){let o=await ke(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 ha(e,t,n,r){let{records:i,metrics:o}=await nt(e,t,n,["$id"],r);return{ids:up(i),metrics:o}}function or(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)?xf(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"}):xf(n[0],e.field)}function tu(e,t){if(e.left.type!=="FIELD")return si();let n=or(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return si();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ye(e,a=>{let s=or(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:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return si();let o=Do(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?si():Object.freeze({relation:o,owner:n})}function Ff(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=or(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ye(e,o=>{let a=or(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:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Gf(e,t){let n=new Set;yn(e,n);let i=(e===null?[]:$f(ir(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=_A(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)yn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(UA(e,t)),fetchQueriesByAlias:new Map,...o})}function Kf(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!hn(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,ar(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(u=>u.alias===a.targetAlias&&u.appId===a.appId&&u.sourceKind==="APP"))return e;let l=ar({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!hn(ba(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 sr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!hn(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&&!hn(ba(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))||Bf(vA(e))!==e.allKlikes.length))}function _A(e,t){if(e===null)return kf(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return kf(e);let r=DA(e,t,n);if(r!==null)return r;let i=Ta(e),o=[],a=new Set;for(let c of i){let d=Ff(c,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,relation:"exact"},R;try{R=ar(f,t)}catch{continue}let E=ba(R);hn(E,d.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),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=Ia(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),u=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=hn(n,u)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:u,residualWhere:s,residualServerFunctionOccurrences:l}}function DA(e,t,n){let r=Aa(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=ar(i,t)}catch{return null}if(!hn(ba(o),n))return null;let a=new Set;if(yn(e,a),Bf(o)!==a.size)return null;let s=Object.freeze(Sa(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 Aa(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=Ff(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=tu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Aa(e.left,t),r=Aa(e.right,t);return n!==null&&r!==null&&Na(n,r)?n:null}case"GROUP":case"NOT":return Aa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Sa(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...Sa(e.left),...Sa(e.right)];case"GROUP":case"NOT":return Sa(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function kf(e){let t=e===null?[]:Se(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Ta(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Ta(e.left),...Ta(e.right)]:[];case"GROUP":return Ta(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ia(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ia(e.left,t),r=Ia(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=Ia(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ba(e){let t=[];for(let n of Sr){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 hn(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 Bf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function vA(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function UA(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=or(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(wa(i.right)){n.add("CROSS_TABLE_BINARY");return}tu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Vf(i)){n.add("KLIKE_OR");return}let o=ir(i.left,t),a=ir(i.right,t);if(o.length!==1||a.length!==1||!Na(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 ar(e,t){return li(e.predicate,e,t),Y(e.predicate)}function li(e,t,n){switch(e.type){case"LOGICAL":li(e.left,t,n),li(e.right,t,n);return;case"GROUP":li(e.expr,t,n);return;case"NOT":li(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||wa(e.right))throw eu(t,"predicate contains a non-target or RHS field reference");let r=or(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw eu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw eu(t,"predicate shape is outside the Phase A serializer contract")}}function eu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function ir(e,t){switch(e.type){case"BINARY":{let n=tu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=ir(e.left,t),r=ir(e.right,t);if(e.op==="AND")return $f([...n,...r]);if(Vf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Na(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Wf(i.relation,o.relation)}]:[]}case"GROUP":return ir(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function $f(e){let t=[];for(let n of e){let r=t.findIndex(o=>Na(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:Wf(i.relation,n.relation)}}return t}function xf(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function si(){return Object.freeze({relation:"unsafe"})}function Na(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Wf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function yn(e,t){if(e!==null){if(Vt(e)){t.add(e);return}switch(e.type){case"LOGICAL":yn(e.left,t),yn(e.right,t);return;case"NOT":case"GROUP":yn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Vf(e){let t=new Set;return yn(e,t),t.size>0}function wa(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(wa);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(wa)}function nu(e,t){let n=kr(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 MA(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function kA(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ui(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=MA(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"&&!kA(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 xA=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 FA(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ci(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,u=e.orderSemantics.get(l);if(!u){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(FA(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!u.source||u.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}xA.has(u.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${u.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 Pa=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"}},Ca=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}},Oa=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 Hf(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 Oa(a).message}}return{records:n,cleanupWarning:o}}function ru(e){let t=[];e.where&&t.push(Y(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 GA={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 Yf(e,t){let n=GA[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 jf(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=>Yf(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Yf(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var lr=new WeakMap,ou=new WeakMap,KA="\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 uu(e){if(ou.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):Te(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Te(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Te(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),ou.set(t,e),t}function rt(e){return ou.get(e)??e}function iE(e){let t=lr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},lr.set(e,t)),t}function gt(e,t,n,r=[]){let i=iE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ye(e,t){return lr.get(e)?.byColumn.get(t)}function Te(e,t){return lr.get(e)?.byLookupKey.get(t)}function Dt(e,t){return lr.has(e)?void 0:e[t]}function zf(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(pe(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=>Te(a,o)===void 0&&a[o]===void 0))&&n.add(KA)}function BA(e){let t=lr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Gs(e);return r&&Fs(n,r.includedCanonicalIds),n}function vt(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 $A(e,t,n,r={}){if(n.type==="CROSS"){let d=ai(e.length,t.length);if(!d.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${d.outputRows} \u884C\uFF08\u5DE6 ${d.leftRows} \u884C \xD7 \u53F3 ${d.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${d.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let R of e)for(let E of t)f.push({...R,...E});return f}let{on:i,type:o}=n,a=WA(i,e,t,r.leftColumns,r.rightColumns),s=au(a.left),l=au(a.right);if(Jf(e,s,r.leftColumns),Jf(t,l,r.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let m=E[s]??"",g=d.get(m);g?g.push(E):d.set(m,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let R=[];for(let E of t){let m=E[l]??"",g=d.get(m)??[];if(g.length>0)for(let h of g)R.push({...h,...E});else R.push({...f,...E})}return R}let u=new Map;for(let d of t){let f=d[l]??"",R=u.get(f);R?R.push(d):u.set(f,[d])}let p=[],c={};for(let d of r.rightColumns??Object.keys(t[0]??{}))c[d]="";for(let d of e){let f=d[s]??"",R=u.get(f)??[];if(R.length>0)for(let E of R)p.push({...d,...E});else o==="LEFT"&&p.push({...d,...c})}return p}function au(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function WA(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=qf(o),l=qf(a),u=d=>{if(d.tableAlias){let m=s.has(d.tableAlias),g=l.has(d.tableAlias);if(m!==g)return m?"LEFT":"RIGHT"}let f=au(d),R=o.includes(f),E=a.includes(f);return R!==E?R?"LEFT":"RIGHT":"UNKNOWN"},p=u(e.left),c=u(e.right);return p==="RIGHT"&&c==="LEFT"?{left:e.right,right:e.left}:e}function qf(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function Jf(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 VA(e,t,n,r,i){return t===null?e:e.filter(o=>se(t,o,n,r,i))}function oE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&mi(t.expr)||t.type==="SCALAR_VALUE_COL"&&tn(t.expr))}function HA(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 u=t.map((c,d)=>jA(c,l,i?.items[d],n,o)).join("\0"),p=a.get(u);p?p.push(l):a.set(u,[l])}a.size===0&&t.length===0&&oE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let u=uu({...l[0]});for(let p of t)p.type==="ARITH_KEY"?u[fu(p.expr)]=String(Re(p.expr,l[0])):p.type==="FUNC_KEY"&&(u[nn(p.expr)]=me(p.expr,l[0]));aE(u,l,n,r),s.push(u)}return s}function YA(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 u={children:new Map},p=[];for(let d of e){let f=u;for(let R of l.items){let E=Xf(R,d),m=f.children.get(E);m||(m={children:new Map},f.children.set(E,m)),f=m}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),u.rows=[],p.push(u.rows));let c=new Set(l.items.map(d=>d.canonicalId));for(let d of p){let f=uu({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,Xf(E,d[0]));for(let E of t.allItems){let m=R.get(E.canonicalId)??"";f[E.directKey]=m,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=m)}aE(f,d,n,r),Fs(f,c),o.push(f)}}return o}function Xf(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function aE(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=pe(o.func,o.distinct,o.arg),s=String(fi(o.func,o.distinct,o.arg,o.separator,t,r));gt(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){La(e,t,o.expr,r);let a=o.alias??Ei(o.expr);gt(e,i,String(pi(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&mi(o.expr)){La(e,t,o.expr,r);let a=o.alias??nn(o.expr),s=Eu(o.expr,t,r);gt(e,i,me(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&tn(o.expr)){La(e,t,o.expr,r);let a=o.alias??yt(o.expr),s=di(o.expr,t,r);gt(e,i,String(we(s,e)),[a])}else if(o.type==="CASE_COL"&&Be(o.expr)){La(e,t,o.expr,r);let a=dE(o.expr,t,r),l=Ge(a,e,void 0,u=>u.aggregateRef?lE(u.aggregateRef,r):void 0);gt(e,i,l,[su(o.alias,i)])}}function su(e,t){return e??`__ksql_case_column_${t}`}function lu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>lu(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=>lu(r,t))}function La(e,t,n,r){let i=[];lu(n,i);for(let o of i){let a=pe(o.func,o.distinct,o.arg);if(Te(e,a)!==void 0)continue;let s=String(fi(o.func,o.distinct,o.arg,o.separator,t,r));iE(e).byLookupKey.set(a,s)}}function jA(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=_a(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"?me(e.expr,t):String(Re(e.expr,t))}function fi(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=sE(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,u=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return u.length;if(e==="GROUP_CONCAT")return u.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?Ri(n,o):void 0,c=typeof p=="string"?$(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?$("string"):$("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let R="",E=0;for(let[m,g]of f){if(g>E){R=m,E=g;continue}if(g!==E)continue;let h=tt(m,R,c);(h<0||h===0&&Zt(m,R)<0)&&(R=m)}return R}if(e==="MIN"||e==="MAX"){let f=u;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let m=tt(E,R,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(R=E)}return R}let d=s?u:u.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,m)=>E-m),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,m=0,g=0;for(let T of d){let y=T-R;E++;let b=y-m;m+=b/E,g+=b*(y-m)}let h=Math.max(0,g/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function sE(e,t,n){return n.map(r=>{let i=rt(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=Re(t,i);if(isNaN(a))return null;o=String(a)}else{let a=Ot(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function zA(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 pi(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(fi(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(xe(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=pi(e.left,t,n),i=pi(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 Ei(e){return ct(e)}function Ri(e,t){if(e.type==="FIELD_REF")return t?.(zA(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=>Ri(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 lE(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 $("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return $("string");let n=e.arg.type==="WILDCARD"?"string":Ri(e.arg,t)??"string";return typeof n=="string"?$(n):n}function qA(e,t,n,r){return t===null?e:e.filter(i=>se(t,BA(i),n,void 0,r))}function JA(e,t,n,r,i){if(e.length===0)return e;let o=XA(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 XA(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(oS(t,a,o))}function cu(e,t,n,r,i,o){return t.length===0?e:uE(e,t,n,r,i,o).rows.map(a=>a.row)}function uE(e,t,n,r,i,o){let a=t.map(({key:u})=>{if(u.type==="ARITH_KEY")return{semantics:$("number")};if(u.type==="FUNC_KEY")return{semantics:$(cE.has(u.expr.func)?"number":"string")};if(u.type==="GROUPING_KEY")return{semantics:$("number")};let p=i?.get(u.name);if(p)return{semantics:p};let c=n?.get(u.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:$(r?.get(u.name)??"string")}}),s=e.map(u=>({row:u,keys:t.map(({key:p},c)=>({s:eS(p,u,o)}))})),l=(u,p)=>QA(u,p,t,a);return s.sort(l),{rows:s,compare:l}}function QA(e,t,n,r){for(let i=0;i<n.length;i++){let o=ZA(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function ZA(e,t,n){return tt(e.s,t.s,n.semantics)}var cE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function eS(e,t,n){let r=rt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Te(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,r));case"FUNC_KEY":return me(e.expr,r);case"GROUPING_KEY":return Hn(e.ref,t)}}function pu(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=>xe(rt(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>Ye(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>Ye(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>Ye(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(Re(a.expr,rt(l))));break;case"STRFUNC_COL":{let l=nn(a.expr);i.set(s,u=>mi(a.expr)?Ye(u,o)??Te(u,l)??me(a.expr,rt(u),n,r):me(a.expr,rt(u),n,r));break}case"CASE_COL":i.set(s,l=>Be(a.expr)?Ye(l,o)??"":Ge(a.expr,rt(l),n,r));break;case"SCALAR_VALUE_COL":{let l=yt(a.expr);i.set(s,u=>tn(a.expr)?Ye(u,o)??Te(u,l)??"":String(we(a.expr,rt(u),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>Hn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function du(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]=uu(e[s]);for(let{column:s,columnIndex:l}of a){let u=new Map;for(let p of e){let c=JSON.stringify(s.partitionBy.map(f=>iS(p,f))),d=u.get(c);d?d.push(p):u.set(c,[p])}for(let p of u.values()){let c=uE(p,s.orderBy,n,r,i),d=c.rows;if(ao(s)){rS(s,l,c,o);continue}if(Ls(s)){nS(s,l,d);continue}if(!Os(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&&c.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let m=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;gt(d[E].row,l,String(m),[s.alias])}}}return e}function tS(e,t){let n=Ot(e,rt(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function nS(e,t,n){let r=n.map(o=>tS(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;gt(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function rS(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:sE(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:Ri(e.arg,r),s=typeof a=="string"?$(a):a??$("string"),l=[],u=0,p=0,c;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")u++;else if(f!==null)if(e.aggFunc==="COUNT")u++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")p+=Number(f),u++;else if(c===void 0)c=f;else{let E=tt(f,c,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(c=f)}let R=e.aggFunc==="COUNT"?u:e.aggFunc==="SUM"?p:e.aggFunc==="AVG"?u===0?0:p/u:c??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)gt(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++)gt(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)gt(i[d].row,t,l[d],[e.alias])}function iS(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return xe(rt(e),n)}function Da(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function _a(e,t,n,r={}){let i=rt(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 xe(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=pe(e.func,e.distinct,e.arg);return Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Ei(e.expr);return Ye(t,n)??Te(t,o)??Dt(t,o)??"0"}case"ARITH_COL":return String(Re(e.expr,i));case"CASE_COL":return Be(e.expr)?Ye(t,n)??Te(t,su(e.alias,n))??Dt(t,su(e.alias,n))??"":Ge(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return Hn(e.ref,t);case"STRFUNC_COL":{let o=nn(e.expr);return mi(e.expr)?Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=yt(e.expr);return tn(e.expr)?Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??"":String(we(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ye(t,n)??Te(t,e.alias)??Dt(t,e.alias)??""}}function oS(e,t,n={}){return e.map((r,i)=>{let o=_a(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function An(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let m=nE(Zf(E),a),g=_a(t[0],E,0,{wildcardKeys:Object.keys(m)}),h={};if(typeof g!="string")for(let[T,y]of g.entries)y!==null&&(h[T]=y);return h}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=uS(t),l=lS(t),u=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),p=u?null:aS(t,s,l),c=p??[];return u&&e.length===0?{rows:[],columns:sS(t,s,l)}:{rows:e.map((f,R)=>{let E={},m={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(nE(Zf(f),a)),parentWildcardKeys:Object.keys(f).filter(g=>g.startsWith("_p.")).sort()};for(let[g,h]of t.entries()){let T=_a(h,f,g,m);switch(h.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof T!="string")for(let[y,b]of T.entries)b!==null&&(E[y]=b);break;case"PARENT_WILDCARD":{if(typeof T!="string")for(let[y,b]of T.entries)b!==null&&(E[y]=b),R===0&&c.push(y);break}case"FIELD":{let y=p?.[g]??h.alias??s.get(g)??h.field;E[y]=T,p===null&&R===0&&c.push(y);break}case"LITERAL_COL":{let y=p?.[g]??h.alias??`'${h.value}'`;E[y]=T,p===null&&R===0&&c.push(y);break}case"AGGREGATE":{let y=pe(h.func,h.distinct,h.arg),b=p?.[g]??h.alias??y;E[b]=T,p===null&&R===0&&c.push(b);break}case"ARITH_AGG_COL":{let y=p?.[g]??h.alias??Ei(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"ARITH_COL":{let y=p?.[g]??h.alias??fu(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"CASE_COL":{let y=p?.[g]??h.alias??l.get(g)??"case";E[y]=T,p===null&&R===0&&c.push(y);break}case"GROUPING_COL":{let y=p?.[g]??h.alias??`GROUPING(${h.ref.field.tableAlias?`${h.ref.field.tableAlias}.`:""}${h.ref.field.field})`;E[y]=T,p===null&&R===0&&c.push(y);break}case"STRFUNC_COL":{let y=p?.[g]??h.alias??nn(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"SCALAR_VALUE_COL":{let y=p?.[g]??h.alias??yt(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"SCALAR_SUBQUERY_COL":{let y=p?.[g]??h.alias??"(subquery)";E[y]=T,p===null&&R===0&&c.push(y);break}case"WINDOW_COL":{let y=p?.[g]??h.alias;E[y]=T,p===null&&R===0&&c.push(y);break}}}return E}),columns:c}}function aS(e,t,n){return e.map((r,i)=>pE(r,i,t,n))}function sS(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=pE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function pE(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??pe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Ei(e.expr);case"ARITH_COL":return e.alias??fu(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??nn(e.expr);case"SCALAR_VALUE_COL":return e.alias??yt(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 lS(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 uS(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Qf(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=Qf(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 Qf(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Zf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function fu(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"?z(n):n.type==="STRING_FUNC"?nn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function nn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Ei(n):n.type==="VARIABLE"?`@${n.name}`:yt(n));return`${e.func}(${t.join(",")})`}function yt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return nn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${yt(e.left)}${e.op}${yt(e.right)}`;case"CONCAT_OP":return`${yt(e.left)}||${yt(e.right)}`}}function cS(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:tn(e)}function tn(e){return e.type==="STRING_FUNC"?mi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?tn(e.left)||tn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>eE(t.result))||e.elseResult!==null&&eE(e.elseResult):!1}function eE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:tn(e)}function mi(e){return e.args.some(t=>cS(t))}function pS(e,t,n){if(e.type==="AGG_REF"){let r=fi(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=pi(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(xe(t[0]??{},r)),raw:xe(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Eu(e,t,n):di(e,t,n)}function di(e,t,n){return e.type==="STRING_FUNC"?Eu(e,t,n):e.type==="CASE_WHEN"?dE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:di(e.left,t,n),right:di(e.right,t,n)}:e}function tE(e,t,n){if(e.type==="AGG_REF"){let r=fi(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=pi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:di(e,t,n)}function dE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:tE(r.result,t,n)})),elseResult:e.elseResult===null?null:tE(e.elseResult,t,n)}}function Eu(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>pS(r,t,n))}}function nE(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 rE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function iu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function dS(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,$("number"));else if(r.type==="WINDOW_COL"){if(Os(r)||ao(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,$("number"));else if((ao(r)||Ls(r))&&r.arg.type!=="WILDCARD"){let i=Ri(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?$(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,$("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,$("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,$("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,$(cE.has(r.expr.func)?"number":"string"));return n}function Ru(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:u,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:d,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:m,plainGroupByPlan:g,warnings:h}=e,T=dS(t.columns,c);for(let[N,U]of a??[])T.set(N,U);let y=[],b=t.from.alias;y=(n.get(b)??n.get(null)??[]).map(N=>vt(N,b));let v=iu(rE(R?.get(b),b),void 0,y);for(let N of t.joins){let U=N.table.alias,D=(n.get(U)??[]).map(I=>vt(I,U)),A=iu(rE(R?.get(U),U),void 0,D);y=$A(y,D,N,{leftColumns:v,rightColumns:A}),v=iu(v,A,y)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;y=VA(y,C,s,d,l);let M=Z(t);if(M.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");y=YA(y,m,t.columns,c,{maxGeneratedRows:5e4})}else(M.type==="PLAIN"||oE(t.columns))&&(y=HA(y,M.type==="PLAIN"?M.allItems:[],t.columns,c,M.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));zf(t.columns,y,h);let O=N=>N.aggregateRef?lE(N.aggregateRef,c):p?.(N);return zf(t.having,y,h),y=qA(y,t.having,u,O),y=du(y,t.columns,i,o,T,c),t.distinct&&(y=JA(y,t.columns,r,s,l)),y=cu(y,t.orderBy,i,o,T,pu(t.columns,r,s,l)),y=Da(y,t.limit,t.offset),An(y,t.columns,r,s,f,l,E)}function fE(e,t){let n=[];for(let r of e){let i=mu(r.$id?.value),o=fS(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[u,p]of Object.entries(r)){if(u===t)continue;let c=mu(p?.value);l[`_p.${u}`]={value:c}}for(let[u,p]of Object.entries(s.value??{}))l[u]={value:mu(p?.value)};n.push(l)}}return n}function fS(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function mu(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 EE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function RE(e,t){let n=gi(e);for(let[r,i]of Object.entries(t))n[r]=gi(i);return n}function mE(e){let t=[...e.preErrors.map(i=>gu(i)),...e.postImageErrors.map(i=>gu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>gu(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]=gi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function gu(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 gi(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(gi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=gi(a,t);return i}function yE(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"&&Ze(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 hu(e){return yE(e,!0)}function va(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 it(e,t,n,r,i=!0,o=!0,a=r){let s=hu(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:Se(e.where)}),va(e,e).forEach((l,u)=>it(l,`${t}.select-source[${u}]`,n,a,a?!1:i,a?!1:o,a))}function yi(e,t,n,r,i=!0){e.left.type==="UNION"?yi(e.left,`${t}.left`,n,r,i):it(e.left,`${t}.left`,n,r,!0,i),it(e.right,`${t}.right`,n,r,!0,i)}function gE(e,t,n,r){if(!r&&Yt(e)){it(jt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?it(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&yi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?it(e.query,`${t}.main`,n,r,!1,!r,!0):yi(e.query,`${t}.main`,n,!0,!1)}function hE(e,t,n,r=!1){switch(e.type){case"SELECT":it(e,t,n,r);return;case"UNION":yi(e,t,n,r);return;case"WITH":gE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?gE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?yi(e.query,`${t}.query`,n,!0,!1):it(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":hE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=hu(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)}),va(e,e).forEach((o,a)=>it(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=hu(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:Se(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=yE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}va(e,e).forEach((o,a)=>it(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:va(e,e).forEach((i,o)=>it(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ua(e,t){let n=new Map;for(let r of t){if(!Ze(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 Au(e,t){return t.eligible===!0&&We(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function ES(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)&&sr(t)}function RS(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function mS(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 Gn(e)?(n.some(r=>r!==It)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(It)||n.push(It)):n.includes(ln)||n.push(ln),[...new Set(n)]}function yu(e,t){let n=e.functionNames[0],r=Gn(n)?It:ln,i=mS(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function AE(e,t){let n=[];hE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=RS(i);return r.push(p),{hasRelativeDate:i.functionNames.some(ie),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:yu(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,d=We(p),f=await t.select(p),R="";try{R=i.where===null?"":Y(i.where)}catch{R=""}let E=c&&d==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ua(R,i.relativeFunctionOccurrences),m,g;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let b=await t.prefilterDecomposition(p);b?.eligible===!0&&Au(p,b)&&(m=b.plan,g=!0,E=!0)}let h;!E&&f.capability==="EXACT_PUSHDOWN"&&(h=xo({select:p,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(m=h.prefilterPlan,E=!0));let T;if(!E&&t.joinServerFunctionPlan){let b=await t.joinServerFunctionPlan(p);b!==null&&ES(p,b)&&(T=b,E=!0)}let y={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...m?{prefilterPlan:m,phase2PrefilterEligible:g}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...T?{joinServerFunctionPlan:T,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:T.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(y),!E)return{hasRelativeDate:n.some(b=>b.functionNames.some(ie)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:yu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":Y(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Ua(s,i.relativeFunctionOccurrences),u={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(u),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(ie)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:yu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ie)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Su(e){if(!e.allowed&&e.rejection){let t=Gn(e.rejection.functionName)?It:ln,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 Tu(e,t,n={}){let r=ye(e.where,t),i=(T,y="INELIGIBLE")=>({eligible:!1,disposition:y,reasonCodes:T,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=Ai(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=gS(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!yS(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=AS(e.where,t),l=kr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),u=n.serialize??Y,p=n.containsFunctions??Ua,c=[];for(let T of a.leaves){let y=Fa(T);if(y===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let b;try{b=u(T)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(b,[y]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(T)}let d=hS(l.condition),f=new Set(c),R=ka(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=u(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(T=>Fa(T));if(!p(E,[...new Set(m)])||!SS(E,m))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):xa(e.where,f);if(g!==null&&Ai(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let T of m)h.add(T);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:g,exactRelativeLeaves:c,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function gS(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}Ai(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Ai(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Fa(o)===null)return;if(ye(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Ai(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 Fa(e){return e.right.type==="KINTONE_FUNC"&&Ze(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ze(e.right.values[0].name)?e.right.values[0].name:null}function Ai(e){let t=[],n=r=>{if(r.type==="BINARY"&&Fa(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 yS(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 hS(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 ka(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=ka(e.left,t,n),i=ka(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=ka(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var hi={type:"BOOLEAN",value:!0};function xa(e,t){if(e.type==="BINARY"&&t.has(e))return hi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=xa(e.left,t)??hi,r=xa(e.right,t)??hi;return Ma(n)?Ma(r)?null:r:Ma(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=xa(e.expr,t)??hi;return Ma(n)?hi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ma(e){return e.type==="BOOLEAN"&&e.value}function AS(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 SS(e,t){let n=new Map;for(let r of t){if(!Sr.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 V=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function SE(e,t){if(!t)throw new V("IMPORT source capability is not available.");let n=t(e);if(!n)throw new V(`source "${e}" is not supplied.`);return n}async function Ga(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new V("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new V("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function TS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new V(`invalid ${t.toUpperCase()} byte sequence.`)}}function IS(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 u=e[a];if(i){if(u==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=u,a++;continue}if(o&&u!==","&&u!=="\r"&&u!==`
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 _e("\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 fl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Vy(t)}function Id(e){let t=e.codePointAt(0);return fl(e)||t>=48&&t<=57}function Zn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Vy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var bd=20,Rl=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"}),Pd=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Br=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"}),BN=Object.freeze(Object.values(Br).filter(e=>e!==void 0)),Hy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Yy=new Set(Hy);function jy(e){return Yy.has(e)}var Cd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),$r=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Nd(e){return $r[e]!==void 0}var zy=Object.freeze([...co]),qy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Jy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Xy(e){return qy.has(e)}function Qy(e){return Jy.has(e)}function Zy(e){return Number.isInteger(e)&&e>=1&&e<=31}var $N=Object.freeze(Array.from(new Set([...Object.keys(Rl),...Pd,...Object.keys(Br),...Object.keys(Cd),...Object.keys($r),...zy,"IF"]))),eh=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 th(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!eh.has(e.kind):!0}var S=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"}},El=["\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.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\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 S(`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>bd)throw new S(`batch exceeds ${bd} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new S("\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 S("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 S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("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 S("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=$r[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ie(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new S("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 S(`${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 S(`${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 S("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 S("\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 S("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=$r[r.kind];if(i==="LOGINUSER")throw new S(`${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 S(`${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 S(`${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 S(`${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 S(`${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 S("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 S(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 S("\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 S("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}=Pt(t,this.prev());if(r)throw new S("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 S("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 S("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new S("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}=Pt(n,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let P=this.parseIdentifier();if(s.has(P))throw new S(`IMPORT target ${P} is declared more than once.`,this.prev());if(s.add(P),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new S(`IMPORT subtable ${P} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}C=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:P,children:v,...C?{rowIdSourceHeader:C}:{}})}else a.push(P),o.push({kind:"FIELD",field:P});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let u=this.parseIdentifier(),p,c=!0,d;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let P=this.parseIdentifier().toUpperCase();if(P!=="UTF8"&&P!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());p=P==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(c)throw new S("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 S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Oe||f.joins.length>0)throw new S("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 S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(P=>P.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`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 S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("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 S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),E=!0}}let m,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let P of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(P))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(P=>P.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(P=>P.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let P=new Set(h);for(let v of T){if(!v.rowIdSourceHeader)throw new S(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!P.has(v.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of P)if(!T.some(C=>C.subtableCode===v))throw new S(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(h)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let y=this.parseCheckGroups(),b=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:u}:{kind:"CSV",sourceName:u,encoding:p,hasHeader:c,mappingMode:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...h?{replaceSubtables:h}:{},...m?{keyFields:m}:{},...y,...b}}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 S("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new S("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}=Pt(n,this.prev());if(i)throw new S(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:d})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),u;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);u=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...u?{errorTable:u}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new S("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 S("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 S("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 S("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 S("\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 S("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 S("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 S("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 S(`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 S("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 S("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&&th(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:Oe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],u,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?u=this.parseGroupingSetsClause():this.isRollupStart()?u=this.parseRollupClause():this.isCubeStart()?u=this.parseCubeClause():l=this.parseGroupByKeys(),u&&this.peek().kind===",")throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",d=[];if(this.consume("ORDER"))this.expect("BY"),d=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),d=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(g=>g.type==="WINDOW_COL"),m=r.some(g=>this.selectColumnHasAggregate(g));if(E&&(l.length>0||u!==void 0||m))throw new S("\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(u&&c==="KINTONE_NATIVE")throw new S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,p,l,u),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...u?{grouping:u}:{},having:p,orderMode:c,orderBy:d,limit:f,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,u=this.peek().kind;if(u==="SHOW")s=this.parseShow();else if(u==="DESCRIBE"||u==="DESC")s=this.parseDescribe();else if(u==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let d=this.parseRecursiveCteCandidate(o);s=d.query,l=d.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let p=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(p&&!l)throw new S("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:p},this.validateRecursiveCte(o,a,l),r++,r>1))throw new S("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let c={name:o,query:s};a&&(c.columnAliases=a),l&&(c.recursiveSpec=l),n.push(c),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new S("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new S("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new S("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new S("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new S("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD")||a.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"))throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new S("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new S("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(p=>p===t).length!==1)throw new S("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new S("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let u=n??o.columns.map(p=>this.selectColumnOutputName(p));if(r.cycle){if(u.filter(c=>c===r.cycle.column).length!==1)throw new S("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(u.includes(r.cycle.markColumn))throw new S("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new S("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 S("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(Ae(`${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 S("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 S("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 S(El,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\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 S("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)),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:u?.alias??null},u)}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),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:u?.alias??null},u)}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 S("_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 Cd[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(Br[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 S(`${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 S("\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 S(`${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 S(`${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 S(El,this.peek());if(!this.consume("AS"))throw new S("\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 S(`${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 S("\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 S("\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 S("\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 S(El,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ae(`-${z(n)}`):{type:"AGG_ARITH",left:Ae("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ae(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new S("\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),Br[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=p=>{if(Array.isArray(p)){p.forEach(a);return}if(p===null||typeof p!="object")return;let c=p;if(!(c.type==="SELECT"||c.type==="SCALAR_SUBQUERY")){if(c.type==="AGG_GROUP_KEY"){o.push(p);return}Object.values(c).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 S("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 S(`\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 u=new Set(r.filter(p=>p.type==="FIELD_NAME").map(p=>p.name));for(let p of o){let c=this.aggregateGroupKeyDisplay(p);if(!u.has(c))throw new S(`\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${c}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(p)??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 S("\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 S("\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 S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ae(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ae("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ae(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new S("\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 S(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 S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ae(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ae(`-${z(n)}`):{type:"ARITH",left:Ae("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ae(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new S("\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 S("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 S("\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=Rl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Rl[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(Pd.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 S(`\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 S))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 S(`${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 S("\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=nh(n);if(r===null)throw new S(`\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 Br[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 S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!jy(t))throw new S(`${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 S("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 S){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\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 S("\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 S("\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 S("\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 S("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};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new S(s,t)}let{appId:r,subtableCode:i}=Pt(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 S("\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 S("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 S("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 S("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 S("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 S("\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 S("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 S("\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 S("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 S(`\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("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 S("\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:pe(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 Ae(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ie(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 S("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 S("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 S("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(!Xy(l))throw new S("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 u=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:u,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(!Qy(o))throw new S(`${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(!Zy(o))throw new S(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new S(`${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 S(`\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(Nd(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:$r[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 S("\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 S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ae(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new S(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ae(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new S(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 S(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 S(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 S(o,this.peek())}else throw new S(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 S("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 S("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 S("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 S("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 S("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 S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=pp(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 S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("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 S("\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("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}=Pt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("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 S("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 S("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 S("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 S("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 u=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...u,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...u,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Pt(t,this.prev());if(r)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),d=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("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 S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields: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 S("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 S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("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,...u,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("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 S("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 S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new S(`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 S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Ae(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Ae(r.value));else throw new S("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 S(`\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}=Pt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.value.type==="STRING_FUNC"))throw new S("\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 S("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 S("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 S("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 S(`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 S("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 S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\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 S("\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 S("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 S("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 S("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 S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&u.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...u,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...u,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...u,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("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 S("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 S("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 S("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 S("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 S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("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 S("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 S("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 S("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 S("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 S("\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 S("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 S(`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 S("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 S("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 S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let d=this.matchUpdateFromJoin(p,n,r);d!==null&&a.push({index:c,...d})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new S(`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 u=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:u}}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 S("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(Nd(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 S("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 S("\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}=Pt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("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}=Pt(n,this.prev());if(!i)throw new S("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 S("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 S("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 S("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 S(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 S("\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 S("\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 S("\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 S("\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 S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\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"||Yo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new S("\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 nh(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 Pt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new S(`\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 en(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 rh(e,t){return e<t?-1:e>t?1:0}function Od(e){if(e==="")return{band:0};let t=he(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 ih(e,t){let n=Od(e),r=Od(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?io(n.value,r.value):n.band===5&&r.band===5?en(n.value,r.value):0}function Ld(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 oh(e,t,n){let r=Ld(e,n),i=Ld(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=en(r.normalizedId,i.normalizedId);return o!==0?o:en(r.display,i.display)}function ah(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 _d(e,t){let n=t.optionOrder??new Map,i=[...new Set(ah(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(Dd),i}function Dd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:en(e.label,t.label)}function sh(e,t,n){let r=_d(e,n),i=_d(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Dd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function nt(e,t,n){switch(n.compareMode){case"string":return en(e,t);case"number":return ih(e,t);case"recordNumber":return oh(e,t,n.fieldType==="RECORD_NUMBER");case"option":return sh(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Ct(e,t,n,r=$("string")){let i=nt(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 vd(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=he(o),l=he(a),u=s!==null&&l!==null?io(s,l):rh(Number(o),Number(a));if(u!==0)return u}return en(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Re(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(xe(t,e.field));if(e.type==="STRING_FUNC")return Number(me(e,t));let n=Re(e.left,t),r=Re(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 xe(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 me(e,t,n,r);case"CASE_WHEN":return Ge(e,t,n,r);case"CONCAT_OP":return me({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 Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return xd(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return we(e,t,n,r)}}function jo(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 lh(e){return e>=55296&&e<=56319}function uh(e){return e>=56320&&e<=57343}function qo(e,t){return t>0&&t<e.length&&lh(e.charCodeAt(t-1))&&uh(e.charCodeAt(t))}function Ud(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 gl(e,t){let n=Math.min(Math.max(0,t),e.length);return qo(e,n)&&(n-=1),e.slice(0,n)}function ch(e,t){let n=Math.max(0,e.length-t);return qo(e,n)&&(n+=1),e.slice(n)}function ph(e,t,n){let r=Ud(t,e.length),i=Ud(n,e.length);return i<=r?"":(qo(e,r)&&(r+=1),qo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function dh(e,t){let n=e.repeat(Math.ceil(t/e.length));return gl(n,t)}var fh=200,Wr=new Map;function Eh(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 ml(e,t,n=!1){let r=Eh(t)+(n?"g":""),i=`${e}\0${r}`,o=Wr.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(Wr.size>=fh){let s=Wr.keys().next().value;s!==void 0&&Wr.delete(s)}return Wr.set(i,a),a}function Rh(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function mh(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 gh(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let u=Number(s);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=1;continue}}i+="$"}return i}function yh(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,u=a.length-(l?3:2),p=a.slice(0,u);return gh(n,o,p,l?s:void 0)})}function me(e,t,n,r){$o(e.func,e.args);let i=e.args.map(o=>Nh(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 ph(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?"":gl(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ch(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 gl(o,a);let s=i[2]??" ";if(s==="")return o;let l=dh(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return vd(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 ml(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Rh(i[2]);let o=mh(i[4]),a=ml(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):yh(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ml(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,u)=>{s.has(l)||s.set(l,a[u])}),[...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 jo("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return jo("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return jo("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return jo("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 wh(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 zo(i[0])?String(yl(i[0])+1):"";case"QUARTER":return zo(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return zo(i[0])?String(kd(i[0])):"";case"DATE_FORMAT":return Ah(i[0]??"",i[1]??"");case"DATEDIFF":return Sh(i[0]??"",i[1]??"");case"DATE_ADD":return Th(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return Ih(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 Vr(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 Jo(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 zo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Jo(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 yl(e){return Jo(e).getUTCDay()}function Md(e){let t=Jo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function hh(e){return Md(e).getUTCFullYear()}function kd(e){let t=Md(e),n=t.getUTCFullYear(),r=Jo(`${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 Ah(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Vr(e),l=zo(e);return t.replace(/%[YymcdeHiswavG]/g,u=>{switch(u){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(yl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][yl(e)]:"";case"%v":return l?String(kd(e)).padStart(2,"0"):"";case"%G":return l?String(hh(e)).padStart(4,"0"):"";default:return u}})}function Sh(e,t){if(e.length<10||t.length<10)return"0";let n=Vr(e),r=Vr(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 Th(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}=Vr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=c=>{let d=a.getUTCDate();a.setUTCDate(1),c();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"),u=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${l}-${u}-${p}`}function Ih(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Vr(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 wh(e,t){if(/^-?\d+$/.test(t.trim()))return bh(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,u=s+l,p=i.toFixed(u),[c,d=""]=p.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,R=d?`${f}.${d}`:f;return n?R+"%":R}function bh(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 Nh(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Hr(e,t)):e.type==="NUMBER"?z(e):String(we(e,t,n,r))}function Hr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[pe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(xe(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Hr(e.left,t)),r=Number(Hr(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 xe(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 se(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Ph(e,t,n,r,i);case"NULL_CHECK":return vh(e,t);case"LOGICAL":return Uh(e,t,n,r,i);case"NOT":return!se(e.expr,t,n,r,i);case"GROUP":return se(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Ph(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=Hd(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Oh(e.left,a,i);return Ch(e.op,o,e.right,t,a,n,s,i)}function Ch(e,t,n,r,i,o,a=$("string"),s){if(e==="IN"||e==="NOT_IN"){let u=null;if(n.type==="IN_LIST"&&(Dh(n.values),u=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?z(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(u=n.resolved),u===null)return e==="NOT_IN";let p=_h(t,u,i);return e==="IN"?p:!p}if(e==="LIKE"){let u=hl(n,r,o);return Vd(t,u)}if(e==="NOT_LIKE"){let u=hl(n,r,o);return!Vd(t,u)}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=hl(n,r,o,s);return Ct(e,t,l,a)}var Fd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Oh(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):$("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return $("number");if(e.type==="FUNC_FIELD")return $(Fd.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 $("number");if(o.type==="STRING_FUNC")return $(Fd.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)??$("string")}return $("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?$("number"):$("string")}var Gd=new Set(["CHECK_BOX","MULTI_SELECT"]),Kd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Lh=new Set(["CREATOR","MODIFIER"]);function _h(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=$("number");return[...t].some(a=>Ct("=",e,a,o))}let i;if(Gd.has(n)||Kd.has(n)||Lh.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Gd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Kd.has(n)?!Array.isArray(i)||!i.every(Bd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Bd(i)?t.has(i.code):r()}function Bd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Dh(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}: ${It}`)}function vh(e,t){let n=Hd(e.field,t);return e.not?n!=="":n===""}function Uh(e,t,n,r,i){return e.op==="AND"?se(e.left,t,n,r,i)&&se(e.right,t,n,r,i):se(e.left,t,n,r,i)||se(e.right,t,n,r,i)}function Hd(e,t,n,r){if(e.type==="FUNC_FIELD")return me(e.expr,t);if(e.type==="AGG_FIELD")return String(Hr(e.expr,t));if(e.type==="ARITH_FIELD")return String(Re(e.expr,t));if(e.type==="CASE_FIELD")return Ge(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return Hn(e.ref,t);if(e.aggregateRef){let o=e.aggregateRef;return xe(t,pe(o.func,o.distinct,o.arg))}let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return xe(t,i)}function hl(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 z(e);case"KINTONE_FUNC":return Mh(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"?xe(t,e.expr.field):e.expr.type==="STRING_FUNC"?me(e.expr,t):String(Re(e.expr,t));case"CASE_VALUE":return Ge(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ge(e,t,n,r){for(let i of e.branches)if(se(i.condition,t,n,void 0,r))return Wd(i.result,t,n,r);return e.elseResult!==null?Wd(e.elseResult,t,n,r):""}function xd(e,t,n,r){for(let i of e.branches)if(se(i.condition,t,n,void 0,r))return $d(i.result,t,n,r);return e.elseResult===null?null:$d(e.elseResult,t,n,r)}function $d(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[pt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Re(e,t):Ot(e,t,n,r)}function Wd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[pt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Re(e,t)):String(we(e,t,n,r))}function Yd(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 Mh(e){throw ie(e)?new Error(`${e}: ${ln}`):Gn(e)?new Error(`${e}: ${It}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Xo=new Map,kh=200;function Vd(e,t){if(!Np(t))return e.includes(t);let n=Xo.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"),Xo.size>=kh&&Xo.clear(),Xo.set(t,n)}return n.test(e)}function er(e){return zd(e)}function jd(e){return zd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function zd(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 S(e,{kind:"EOF",value:"CHECK",pos:0})}function Qo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!se(a.condition,t,n))continue;let s=we(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Al(e){if(Vt(e))throw new ae("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 xh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Fh=new Set(["CHECK_BOX","MULTI_SELECT"]);function ta(e,t=new Map){let n=e.values.map(r=>Gh(e.fields,r,t));return qr(n,100).map(r=>({app:e.appId,records:r}))}function Gh(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:tn(a.expr,{},n.get(i))}:r[i]={value:Lt(a,n.get(i))}}),r}function jr(e){Al(e.where);let t=lf(e);return{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function zr(e,t,n=new Map){let r=Kh(e.assignments,n);return qr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Kh(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:Lt(i,t.get(r))});return n}function Qd(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 na(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 Sl(e){Al(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Zd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?tr(n,t):n.type==="STRING_FUNC"?Tl(n,t):n.type==="CASE_VALUE"&&ef(n.expr,t);return lf(e).forEach(n=>t.add(n)),{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Zd(e,t){Yr(e.left,t),Yr(e.right,t)}function Yr(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"?Zd(e,t):e.type==="STRING_FUNC"&&Tl(e,t)}function Tl(e,t){for(let n of e.args)Bh(n,t)}function Bh(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ea(e,t);return}tr(e,t)}function tr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Tl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){tr(e.left,t),tr(e.right,t);return}e.type==="CASE_WHEN"&&ef(e,t)}function ea(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&$h(e.arg,t);return}e.type==="AGG_ARITH"&&(ea(e.left,t),ea(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function $h(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Yr(e,t):tr(e,t)}function qd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ea(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Yr(e,t);return}tr(e,t)}}function ef(e,t){for(let n of e.branches)Zo(n.condition,t),qd(n.result,t);e.elseResult!==null&&qd(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"&&Yr(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 Il(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=tf(i),s={};for(let{field:l,value:u}of e.assignments)s[l]={value:wl(u,a,n.get(l),i)};return{id:o,record:s}});return qr(r,100).map(i=>({app:e.appId,records:i}))}function wl(e,t,n,r){if(e.type==="ARITH")return String(r?Nl(e,r):Re(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(we(e,t));if(e.type==="STRING_FUNC")return me(e,t);if(e.type==="CASE_VALUE")return tn(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Lt(e,n)}function ra(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(Re(e,t));if(e.type==="CASE_VALUE")return Ge(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 Wh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function bl(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 ae("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=tf(i),l={};for(let{field:u,value:p}of e.assignments){let c=n.get(u);if(p.type==="SOURCE_FIELD"){if(Wh.has(c??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${u}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[p.field];if(typeof d!="string")throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[u]={value:Lt({type:"STRING",value:d},c)}}else{if(p.type==="STRING_FUNC")throw new ae("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[u]={value:String(Nl(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[u]={value:String(we(p,s))}:p.type==="CASE_VALUE"?l[u]={value:tn(p.expr,s,c)}:l[u]={value:Lt(p,c)}}}return{id:a,record:l}});return qr(r,100).map(i=>({app:e.appId,records:i}))}function tf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Nl(e,t){let n=Jd(e.left,t),r=Jd(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Jd(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 Nl(e,t);if(e.type==="STRING_FUNC")throw new ae("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 ae(`\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 nf(e){return Al(e.where),{app:e.appId,query:Y(e.where),fields:["$id"],totalCount:!1}}function rf(e,t){return qr(t,100).map(n=>({app:e,ids:n}))}function of(e){return xh.has(e??"")}function Vh(e){return Fh.has(e??"")}function Hh(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 Yh(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function af(e,t){return of(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Vh(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Hh(e):t==="DATE"?Yh(e):e}function sf(e,t){return of(t)?e.map(n=>({code:n})):e}function Xd(e,t,n){if(e.type==="ARRAY")return sf(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"?af(e.value,n):e.type==="STRING_FUNC"?me(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(Re(e,t)):String(we(e,t))}function lf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(er(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function tn(e,t,n){for(let r of e.branches)if(se(r.condition,t))return Xd(r.result,t,n);return e.elseResult!==null?Xd(e.elseResult,t,n):""}function Lt(e,t){let n=Pl(e,t);if(!n.ok)throw new ae(n.message);return n.value}function Pl(e,t){try{return{ok:!0,value:jh(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function jh(e,t){switch(e.type){case"VARIABLE":throw new ae(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ae(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return af(e.value,t);case"NUMBER":return z(e);case"ARRAY":return sf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ae(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ae("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ae("\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 ae("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 ae("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ae("\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 qr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ae=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Cl=new Set(["CHECK_BOX","MULTI_SELECT"]),zh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Jr(e){throw new Error(`ArgumentError: ${e}`)}function uf(e,t,n){let r=qh(n.fieldType,e.field),i=Jh(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let h=g.value;h!==""&&(g.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let g of s)l.has(g)&&Jr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let u=i.filter(g=>!l.has(g)),p=a.filter(g=>!o.has(g)),c=[...u,...p],d=new Set(i.filter(g=>l.has(g))).size,f=new Set,R=new Set,E=e.operations.map(g=>{let h=g.kind==="ADD"?f:R,T=!h.has(g.value);return h.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&T&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),m=Cl.has(r)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:E,postImageValue:m,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function qh(e,t){return Cl.has(e)||zh.has(e)?e:Jr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Jh(e,t,n){if(!Array.isArray(e))return Jr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Cl.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 J(e){throw new Error(`ArgumentError: ${e}`)}function _l(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?J("APPLY parent selector must be a single positive $id."):t.right.value}function _t(e,t){let n=e.applyBlocks;if(!n?.length)return J("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)Ol(s.field,null,r),Xh(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(Ip(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let u=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,u),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let d of c.assignments)Ol(d.field,s.field,r,p),Ll(d.value,s.field,r,p);c.selector.kind==="WHERE"&&Ll(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let d=new Set;for(let f of c.fields)d.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),Ol(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Ll(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Xh(e,t){Xr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function Ol(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`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&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ll(e,t,n,r){Xr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ia(e,t){let n=_t(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)Xr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function oa(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Rf(i?.value);return n}function pf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??_t(t,r),o=Ul(n.$id?.value,"APPLY snapshot $id"),a=_l(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),ff(t,n,i,o)}function df(e,t,n,r=_t(e,n)){let i=new Set;return t.map(o=>{let a=Ul(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&J(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),ff(e,o,r,a)})}function ff(e,t,n,r){let i=Ul(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let O=n.targetMultiValueFields.get(p.field);O||J(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(uf(p,t[p.field]?.value,O));continue}let c=n.childrenByTable.get(p.field),d=rA(t,p.field),f=new Set;for(let O of d)O.id||J(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(O.id)&&J(`APPLY snapshot for ${p.field} contains duplicate _rid ${O.id}.`),f.add(O.id);let R=O=>O.field==="_rid"?"SINGLE_LINE_TEXT":O.field==="_idx"?"NUMBER":c.get(O.field)?.fieldType,E=[],m=[],g=[],h=new Set,T=new Set,y=new Set,b=p.operations.some(O=>O.kind==="REMOVE");for(let[O,N]of p.operations.entries()){if(N.kind==="APPEND"){let w=Dl(N,c,p.field);g.push({kind:"APPEND",addedRows:w.length}),m.push(...w);continue}if(N.kind==="REMOVE"){let w=eA(N,d,R,p.field);N.expectRows&&cf(N.expectRows,w.length,r,p.field,O,N.kind),g.push({kind:"REMOVE",removedRows:w.length});for(let D of w){let A=d[D].id;T.has(D)&&J(`APPLY row ${A} is selected by both PATCH and REMOVE.`),y.has(D)&&J(`APPLY removes row ${A} more than once.`),y.add(D)}continue}if(N.kind!=="PATCH")continue;let U=Zh(N,d,R,p.field);N.expectRows&&cf(N.expectRows,U.length,r,p.field,O,N.kind),g.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let w of U){let D=d[w];y.has(w)&&J(`APPLY row ${D.id} is selected by both PATCH and REMOVE.`),T.add(w);let A=oa(D,w);for(let I of N.assignments){let x=`${D.id}\0${I.field}`;h.has(x)&&J(`APPLY patches cell ${D.id}.${I.field} more than once.`),h.add(x),E.push({rowIndex:w,field:I.field,value:ra(I.value,A,R)})}}}let P=new Map;for(let O of E){let N=P.get(O.rowIndex)??{};N[O.field]={value:O.value},P.set(O.rowIndex,N)}let C=[...d.flatMap((O,N)=>y.has(N)?[]:[{id:O.id,value:{...O.value,...P.get(N)??{}}}]),...m],M={table:p.field,operations:g,changedSubtableRows:P.size+y.size+m.length,deletedRows:y.size,snapshotRowIds:d.map(O=>O.id),postImageRows:C};b?o.push({...M,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((O,N)=>y.has(N)?[O.id]:[]),payloadRows:C.map(O=>({...O.id===void 0?{}:{id:O.id},value:O.value}))}):o.push({...M,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((O,N)=>{let U=P.get(N);return U?{id:O.id,value:U}:{id:O.id}}),...m.map(O=>({value:O.value}))]})}let s=iA(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:wl(p.value,s,c,t)}}let u={...t};Object.assign(u,l);for(let p of o)u[p.table]={value:p.postImageRows};for(let p of a)u[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:u,tables:o,multiValues:a}}function cf(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}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function aa(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,u)=>{let p=a[u];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:J(`APPLY normalized post-image for ${o.table} row ${u+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}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function Dl(e,t,n){return e.values.map(r=>({value:Qh(e,r,t,n)}))}function Qh(e,t,n,r){if(t.length!==e.fields.length)return J(`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?vl(a):s.type==="CASE_VALUE"?tn(s.expr,{},a.fieldType):Lt(s,a.fieldType)}}return o}function vl(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 Zh(e,t,n,r){return Ef(e.selector,t,n,r)}function eA(e,t,n,r){return Ef(e.selector,t,n,r)}function Ef(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,u)=>u);let i=e.where,o=t.flatMap((l,u)=>se(i,oa(l,u),n)?[u]:[]),a=tA(i);a!==null&&o.length===0&&J(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=nA(i);return s!==null&&o.length===0&&J(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function tA(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 nA(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 rA(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:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function Ul(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function iA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Rf(r?.value);return t}function Rf(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 Xr(e,t){if(Array.isArray(e)){e.forEach(r=>Xr(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))Xr(r,t)}function de(e){throw new Error(`ArgumentError: ${e}`)}function la(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?de("APPLY snapshot $revision must be a positive integer."):t}function Qr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return de("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return de("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)&&de(`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)&&de(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&de(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),oA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function mf(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 de("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 oA(e){let t=Ml(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&de(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Ml(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&de(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");sa(t,p,`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)&&de(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(d=>d.id??"");sa(t,c,`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)&&de(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||de(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Ml(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&de(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&de(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&de(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));sa(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");sa(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&de(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&de(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!kl(p.value,e.postImageRows[c]?.value))&&de(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let u=new Set([...i,...r]);(u.size!==t.length||t.some(p=>!u.has(p)))&&de(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Ml(e,t){let n=[...e],r=new Set;for(let i of n)i||de(`APPLY ${t} contains an empty row id.`),r.has(i)&&de(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function sa(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&de(n)}function kl(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)=>kl(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)&&kl(n[a],r[a]))}function gf(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 yf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=gf(t.digits,"digits",1,30),r=gf(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 hf(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 aA=new Set(["CHECK_BOX","MULTI_SELECT"]),sA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ke(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=lA(e);if(i!==""&&!uA(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=Zr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:cA(t.fieldType),message:o}}if(t.required&&ua(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ua(r)&&t.fieldType==="NUMBER"){let i=String(r),o=he(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&&oo(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&&oo(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}=hf(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(!ua(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!En(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!ua(r)&&sA.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 lA(e){return e==null?"":ca(e)&&e.type==="NUMBER"?z(e):ca(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function uA(e,t){if(t==="DATE")return En(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return En(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)?En(n.slice(0,10),"DATE")&&En(n.slice(11),"TIME"):En(n,"DATETIME")}function Zr(e,t){if(ca(e)){let r=Pl(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(aA.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 ca(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Rn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(ca(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ua(e){return e===""||Array.isArray(e)&&e.length===0}function cA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function En(e,t){if(t==="TIME"){let u=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return u!==null&&Number(u[1])<=23&&Number(u[2])<=59&&Number(u[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)&&En(l,"TIME")}var nr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function xl(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(p=>typeof p=="object"&&p!==null&&"code"in p),u=a;try{u=Zr(a,s)}catch{}i.record[o]={value:l?a:u}}}}function Fl(e,t,n,r,i,o,a,s=[],l=!0,u=!0,p={}){let c=new Map(i.map(m=>[m.code,m])),d=[],f=new Set,R=[];p.validateUpdateBuiltIns===!1&&xl(e,r,i);let E;for(let m of e){m.record??(m.record={});let g=u?[...m.preErrors]:[],h=[],T=[],y=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let C of r){if(!m.payload.has(C))continue;let M=m.payload.get(C),O=c.get(C).fieldType,N=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(O)&&Array.isArray(M)&&M.every(w=>typeof w=="object"&&w!==null&&"code"in w);if(!y)continue;let U=Ke(M,c.get(C),a);U.ok?m.record[C]={value:N?M:U.value}:h.push({field:C,code:U.code,message:U.message})}if(l&&m.mode==="create")for(let C of i){if(C.inSubtable||m.payload.has(C.code))continue;if(Rn(C.defaultValue)){let O=Ke("",C,a);O.ok?C.required&&h.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:C.code,code:O.code,message:O.message})}else{let O=Ke(C.defaultValue,C,a);O.ok||h.push({field:C.code,code:O.code,message:`\u65E2\u5B9A\u5024: ${O.message}`})}}if(s.length>0){let C=m.evaluationRow??Object.fromEntries([...m.payload].map(([N,U])=>[N,dt(U)])),M=m.evaluationFieldTypes,O=N=>{let U=N.tableAlias?`${N.tableAlias}.${N.field}`:N.field;return M?.get(U)??M?.get(N.field)};try{for(let N of Qo(s,C,O))T.push({field:"",code:"ERR_CHECK",message:N.message})}catch(N){E??(E=N)}}let b=C=>C.map(M=>{let O={};for(let N of n)O[N]=dt(m.payload.get(N));return O.$err_statement=String(o),O.$err_operation=t,O.$err_row=String(m.rowNumber),O.$err_field=M.field,O.$err_code=M.code,O.$err_message=M.message,O.$err_value="",O.$err_subtable="",O.$err_subrow="",O.$err_subrow_id="",O}),P={rowNumber:m.rowNumber,preErrors:b(g),builtInErrors:b(h),checkErrors:b(T)};R.push(P);let v=[...P.preErrors,...P.builtInErrors,...P.checkErrors];v.length>0&&f.add(m.rowNumber),d.push(...v)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function dt(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 Gl=["required","length","range","choice"];function Kl(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 Bl(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 pA(e){return Kl(e).length>0}function dA(e){return e.fieldType==="NUMBER"||pA(e)}function pa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function $l(e,t){let{topByCode:n,childrenByTable:r}=Bl(t),i=dA;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,u)=>{let p=u?`${u}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...u?{subtableCode:u}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=c.find(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,m])=>E!==l.subtableCode&&m.some(g=>g.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 u=l.field;if(u==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(u);if(p?.fieldType==="SUBTABLE"){let c=(r.get(u)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${u} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(d=>s(d,u));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(d=>d.code===u))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${u}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function ei(e,t){return Rn(e)?"":dt(Zr(e,t))}var fA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),ti=nr;function ft(e,t=["$id"]){let n=Bl(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!fA.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 mn(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 gn(e,t,n,r,i=1,o="UPDATE"){let a=EA(e),s=[],l=new Set,u=[...t.payloadFields,...ti],p=dt(e.$id?.value),c=(d,f,R,E)=>{l.add(i);let m={};for(let g of t.payloadFields)m[g]=g==="$id"?p:dt(e[g]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=d.code,m.$err_code=R.code,m.$err_message=R.message,m.$err_value=ei(f,d.fieldType),m.$err_subtable=E?.subtable??"",m.$err_subrow=E?String(E.subrow):"",m.$err_subrow_id=E?.subrowId??"",s.push(m)};for(let d of t.topLevel){let f=e[d.code]?.value,R=Ke(f,d,n);R.ok?a[d.code]={value:Af(f,d.fieldType,R.value)}:c(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 m=0;m<R.length;m++){let g=R[m],h=E[m];for(let T of f){let y=g.value?.[T.code]?.value,b=Ke(y,T,n);b.ok?(h.value??(h.value={}),h.value[T.code]={value:Af(y,T.fieldType,b.value)}):c(T,y,b,pa(d,m,g))}}}return{normalizedRecord:a,errors:s,columns:u,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Af(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 EA(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 da(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Sf(o,"dmlMaxRows"),Sf(a,"dmlMaxSubtableRows");for(let T of n)la(T);let l=df(t,n,r,i),u=ft(r,t.assignments.map(T=>T.field)),p=l.some(T=>mn(T.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=l.map((T,y)=>gn(T.postImage,u,c,s,e.parentRowNumbers?.[y]??y+1));if(!t.validateOnly){let T=d.flatMap(y=>y.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:T})}`)}let f=l.length,R=l.reduce((T,y)=>T+y.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 m=l.map((T,y)=>aa(T,d[y].normalizedRecord)),g=m.flatMap(T=>Qr(T).records),h=d.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Tf({plans:m,records:g,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function Sf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Tf(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))Tf(n,t);return Object.freeze(e)}var Wl=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function fa(e,t){if(new Set(e.fields).size!==e.fields.length)return Et("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)If(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Et(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Et(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Et(`APPLY INSERT supports APPEND only (${l.kind}).`);let u=new Set;for(let p of l.fields){if(u.has(p))return Et(`APPLY APPEND specifies child ${p} more than once.`);u.add(p),If(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Et(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function RA(e,t,n=fa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ta(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),u=s.operations.flatMap(p=>Dl(p,l,s.field));return{table:s.field,rows:u,addedRows:u.length}});return o.map((s,l)=>{let u={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Wl.has(c.fieldType)||(u[c.code]=s[c.code]??{value:vl(c)});let p={...s};for(let c of a){let d=c.rows.map(f=>({value:f.value}));u[c.table]={value:d},p[c.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:u,record:p}})}async function ni(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;wf(r,"dmlMaxRows"),wf(i,"dmlMaxSubtableRows");let a=e.metadata??fa(t,n),s=RA(t,n,a,e.parentRowNumbers),l=n.filter(y=>y.fieldType==="SUBTABLE"||y.fieldType!=="FILE"&&y.writable!==!1&&!Wl.has(y.fieldType)),u=ft(l,t.fields),p=s.some(y=>mn(y.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=s.map(y=>gn(y.postImage,u,c,o,y.parentRowNumber,"INSERT"));if(!t.validateOnly){let y=d.flatMap(b=>b.errors);if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:y})}`)}let f=s.length,R=s.reduce((y,b)=>y+b.tables.reduce((P,v)=>P+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 m=s.map((y,b)=>{let P=d[b].normalizedRecord,v={};for(let C of t.fields)v[C]=P[C];for(let C of y.tables){let M=P[C.table]?.value;v[C.table]={value:C.rows.map((O,N)=>({value:Object.fromEntries(Object.keys(O.value).map(U=>[U,M[N]?.value?.[U]??O.value[U]]))}))}}return{...y,postImage:P,record:v}}),g=m.map(y=>y.record),h=[];for(let y=0;y<g.length;y+=100)h.push({app:t.appId,records:g.slice(y,y+100)});let T=d.map(y=>({errors:y.errors,columns:y.columns,invalidRows:y.invalidRows,errorCount:y.errorCount}));return bf({applyBlocks:t.applyBlocks??[],candidates:m,records:g,batches:h,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function If(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Et(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Et(`APPLY child ${e} does not belong to subtable ${t}.`):Et(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Wl.has(i.fieldType))return Et(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function wf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Et(e){throw new Error(`ArgumentError: ${e}`)}function bf(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))bf(n,t);return Object.freeze(e)}async function Pf(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Nf(i,"dmlMaxRows"),Nf(o,"dmlMaxSubtableRows"),AA(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=mA(t,s.map(g=>g.sourceRowIndex)),p=await ni({statement:u,fieldInfos:r,metadata:fa(u,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],d=new Set;for(let g of l){let h=g.targetId;d.has(h)&&Vl(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),d.add(h),g.snapshot||Vl(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let T=Number(g.snapshot.$id?.value);T!==h&&Vl(`UPSERT APPLY snapshot $id ${T} does not match target $id ${h}.`);let y=gA(t,g.sourceRowIndex,h),b=y.applyBlocks?.length?_t(y,r):yA(r);c.push(await da({statement:y,snapshots:[g.snapshot],fieldInfos:r,metadata:b,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=hA(c,i,o),R=p.guards.parentRows+f.guards.parentRows,E=p.guards.subtableRows+f.guards.subtableRows,m=R>i||E>o;if(!t.validateOnly){let g=[...p.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}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 Hl({create:p,update:f,createBatches:p.batches,updateBatches:SA(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function mA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function gA(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 yA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function hA(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 Hl({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 AA(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 SA(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 Nf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Vl(e){throw new Error(`ArgumentError: ${e}`)}function Hl(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))Hl(n,t);return Object.freeze(e)}function ii(e){return rr("UPDATE",[Lf(e)])}function Yl(e){return rr("INSERT",[Of(e)])}function jl(e){return rr("UPSERT",[Of(e.create),Lf(e.update)])}function He(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 Ra(e,t,n){return e.type==="UPDATE"?rr("UPDATE",[Ea("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?rr("INSERT",[Ea("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):rr("UPSERT",[Ea("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ea("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function rr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Of(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 Lf(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:Cf(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:Cf(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 Cf(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:ri(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ri(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ri(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ri(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ri(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ri(e,t){return e==null||t===null?null:e+t}function Ea(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>TA(f,n)),d=c.every(f=>f.count!==null)?c.reduce((f,R)=>f+R.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:d}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,u=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:u},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function TA(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 Rt=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 _f(e,t,n){Wn("phase10c");let r=mf(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 Rt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 Df(e,t,n){Wn("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 Rt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 vf(e,t,n){Wn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let u=e.createBatches[l];try{let p=await t.postRecords({app:u.app,records:[...u.records]});r.push(p.ids)}catch(p){throw new Rt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=u.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let u=e.updateBatches[l];try{await t.putRecords({app:u.app,records:[...u.records]})}catch(p){throw new Rt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=u.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var IA=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function wA(e){if(!IA.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 bA(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=wA(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 zl(e,t){let n=bA(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 NA(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 ql(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 NA(i)?!0:Object.values(i).some(n)};return n(e)}function Uf(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function mt(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var oi=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},ma=class{constructor(t,n=mt({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new oi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new oi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new oi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var ga=50;function Xl(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+=ga){let o=e.values.slice(i,i+ga);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Jl=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),PA=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function CA(e,t){return e==="DATE"?Ur(t):e==="TIME"?Oo(t):Jl.has(e)?Lo(t):!1}function OA(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Jl.has(e)?Jl.has(t.fieldType):!1}function Ql(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Co(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!PA.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(!OA(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=>!CA(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];nt(s,i,n)<0&&(i=s),nt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Zl=ul;function ai(e,t,n=Zl){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Mf(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 gt(e){if(e===null)return!1;switch(e.type){case"BINARY":return ya(e.left);case"NULL_CHECK":return ya(e.field);case"LOGICAL":return gt(e.left)||gt(e.right);case"NOT":case"GROUP":return gt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function ya(e){if(Array.isArray(e))return e.some(ya);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(ya)}async function rt(e,t,n,r,i){let o=await ke(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 ha(e,t,n,r){let{records:i,metrics:o}=await rt(e,t,n,["$id"],r);return{ids:up(i),metrics:o}}function or(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)?xf(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"}):xf(n[0],e.field)}function nu(e,t){if(e.left.type!=="FIELD")return si();let n=or(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return si();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ye(e,a=>{let s=or(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:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return si();let o=Do(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?si():Object.freeze({relation:o,owner:n})}function Ff(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=or(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ye(e,o=>{let a=or(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:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Gf(e,t){let n=new Set;yn(e,n);let i=(e===null?[]:$f(ir(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=LA(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)yn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(vA(e,t)),fetchQueriesByAlias:new Map,...o})}function Kf(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!hn(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,ar(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(u=>u.alias===a.targetAlias&&u.appId===a.appId&&u.sourceKind==="APP"))return e;let l=ar({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!hn(ba(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 sr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!hn(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&&!hn(ba(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))||Bf(DA(e))!==e.allKlikes.length))}function LA(e,t){if(e===null)return kf(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return kf(e);let r=_A(e,t,n);if(r!==null)return r;let i=Ta(e),o=[],a=new Set;for(let c of i){let d=Ff(c,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,relation:"exact"},R;try{R=ar(f,t)}catch{continue}let E=ba(R);hn(E,d.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),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=Ia(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),u=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=hn(n,u)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:u,residualWhere:s,residualServerFunctionOccurrences:l}}function _A(e,t,n){let r=Aa(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=ar(i,t)}catch{return null}if(!hn(ba(o),n))return null;let a=new Set;if(yn(e,a),Bf(o)!==a.size)return null;let s=Object.freeze(Sa(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 Aa(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=Ff(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=nu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Aa(e.left,t),r=Aa(e.right,t);return n!==null&&r!==null&&Na(n,r)?n:null}case"GROUP":case"NOT":return Aa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Sa(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...Sa(e.left),...Sa(e.right)];case"GROUP":case"NOT":return Sa(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function kf(e){let t=e===null?[]:Se(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Ta(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Ta(e.left),...Ta(e.right)]:[];case"GROUP":return Ta(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ia(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ia(e.left,t),r=Ia(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=Ia(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ba(e){let t=[];for(let n of Sr){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 hn(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 Bf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function DA(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function vA(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=or(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(wa(i.right)){n.add("CROSS_TABLE_BINARY");return}nu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Vf(i)){n.add("KLIKE_OR");return}let o=ir(i.left,t),a=ir(i.right,t);if(o.length!==1||a.length!==1||!Na(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 ar(e,t){return li(e.predicate,e,t),Y(e.predicate)}function li(e,t,n){switch(e.type){case"LOGICAL":li(e.left,t,n),li(e.right,t,n);return;case"GROUP":li(e.expr,t,n);return;case"NOT":li(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||wa(e.right))throw tu(t,"predicate contains a non-target or RHS field reference");let r=or(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw tu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw tu(t,"predicate shape is outside the Phase A serializer contract")}}function tu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function ir(e,t){switch(e.type){case"BINARY":{let n=nu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=ir(e.left,t),r=ir(e.right,t);if(e.op==="AND")return $f([...n,...r]);if(Vf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Na(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Wf(i.relation,o.relation)}]:[]}case"GROUP":return ir(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function $f(e){let t=[];for(let n of e){let r=t.findIndex(o=>Na(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:Wf(i.relation,n.relation)}}return t}function xf(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function si(){return Object.freeze({relation:"unsafe"})}function Na(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Wf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function yn(e,t){if(e!==null){if(Ht(e)){t.add(e);return}switch(e.type){case"LOGICAL":yn(e.left,t),yn(e.right,t);return;case"NOT":case"GROUP":yn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Vf(e){let t=new Set;return yn(e,t),t.size>0}function wa(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(wa);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(wa)}function ru(e,t){let n=kr(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 UA(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function MA(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ui(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=UA(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"&&!MA(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 kA=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 xA(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ci(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,u=e.orderSemantics.get(l);if(!u){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(xA(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!u.source||u.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}kA.has(u.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${u.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 Pa=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"}},Ca=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}},Oa=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 Hf(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 Oa(a).message}}return{records:n,cleanupWarning:o}}function iu(e){let t=[];e.where&&t.push(Y(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 FA={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 Yf(e,t){let n=FA[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 jf(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=>Yf(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Yf(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var lr=new WeakMap,au=new WeakMap,GA="\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 cu(e){if(au.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):Te(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Te(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Te(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),au.set(t,e),t}function it(e){return au.get(e)??e}function iE(e){let t=lr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},lr.set(e,t)),t}function yt(e,t,n,r=[]){let i=iE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ye(e,t){return lr.get(e)?.byColumn.get(t)}function Te(e,t){return lr.get(e)?.byLookupKey.get(t)}function Dt(e,t){return lr.has(e)?void 0:e[t]}function zf(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(pe(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=>Te(a,o)===void 0&&a[o]===void 0))&&n.add(GA)}function KA(e){let t=lr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Ks(e);return r&&Gs(n,r.includedCanonicalIds),n}function vt(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 BA(e,t,n,r={}){if(n.type==="CROSS"){let d=ai(e.length,t.length);if(!d.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${d.outputRows} \u884C\uFF08\u5DE6 ${d.leftRows} \u884C \xD7 \u53F3 ${d.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${d.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let R of e)for(let E of t)f.push({...R,...E});return f}let{on:i,type:o}=n,a=$A(i,e,t,r.leftColumns,r.rightColumns),s=su(a.left),l=su(a.right);if(Jf(e,s,r.leftColumns),Jf(t,l,r.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let m=E[s]??"",g=d.get(m);g?g.push(E):d.set(m,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let R=[];for(let E of t){let m=E[l]??"",g=d.get(m)??[];if(g.length>0)for(let h of g)R.push({...h,...E});else R.push({...f,...E})}return R}let u=new Map;for(let d of t){let f=d[l]??"",R=u.get(f);R?R.push(d):u.set(f,[d])}let p=[],c={};for(let d of r.rightColumns??Object.keys(t[0]??{}))c[d]="";for(let d of e){let f=d[s]??"",R=u.get(f)??[];if(R.length>0)for(let E of R)p.push({...d,...E});else o==="LEFT"&&p.push({...d,...c})}return p}function su(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function $A(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=qf(o),l=qf(a),u=d=>{if(d.tableAlias){let m=s.has(d.tableAlias),g=l.has(d.tableAlias);if(m!==g)return m?"LEFT":"RIGHT"}let f=su(d),R=o.includes(f),E=a.includes(f);return R!==E?R?"LEFT":"RIGHT":"UNKNOWN"},p=u(e.left),c=u(e.right);return p==="RIGHT"&&c==="LEFT"?{left:e.right,right:e.left}:e}function qf(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function Jf(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 WA(e,t,n,r,i){return t===null?e:e.filter(o=>se(t,o,n,r,i))}function oE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&mi(t.expr)||t.type==="SCALAR_VALUE_COL"&&nn(t.expr))}function VA(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 u=t.map((c,d)=>YA(c,l,i?.items[d],n,o)).join("\0"),p=a.get(u);p?p.push(l):a.set(u,[l])}a.size===0&&t.length===0&&oE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let u=cu({...l[0]});for(let p of t)p.type==="ARITH_KEY"?u[Eu(p.expr)]=String(Re(p.expr,l[0])):p.type==="FUNC_KEY"&&(u[rn(p.expr)]=me(p.expr,l[0]));aE(u,l,n,r),s.push(u)}return s}function HA(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 u={children:new Map},p=[];for(let d of e){let f=u;for(let R of l.items){let E=Xf(R,d),m=f.children.get(E);m||(m={children:new Map},f.children.set(E,m)),f=m}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),u.rows=[],p.push(u.rows));let c=new Set(l.items.map(d=>d.canonicalId));for(let d of p){let f=cu({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,Xf(E,d[0]));for(let E of t.allItems){let m=R.get(E.canonicalId)??"";f[E.directKey]=m,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=m)}aE(f,d,n,r),Gs(f,c),o.push(f)}}return o}function Xf(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function aE(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=pe(o.func,o.distinct,o.arg),s=String(fi(o.func,o.distinct,o.arg,o.separator,t,r));yt(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){La(e,t,o.expr,r);let a=o.alias??Ei(o.expr);yt(e,i,String(pi(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&mi(o.expr)){La(e,t,o.expr,r);let a=o.alias??rn(o.expr),s=Ru(o.expr,t,r);yt(e,i,me(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&nn(o.expr)){La(e,t,o.expr,r);let a=o.alias??ht(o.expr),s=di(o.expr,t,r);yt(e,i,String(we(s,e)),[a])}else if(o.type==="CASE_COL"&&Be(o.expr)){La(e,t,o.expr,r);let a=dE(o.expr,t,r),l=Ge(a,e,void 0,u=>u.aggregateRef?lE(u.aggregateRef,r):void 0);yt(e,i,l,[lu(o.alias,i)])}}function lu(e,t){return e??`__ksql_case_column_${t}`}function uu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>uu(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=>uu(r,t))}function La(e,t,n,r){let i=[];uu(n,i);for(let o of i){let a=pe(o.func,o.distinct,o.arg);if(Te(e,a)!==void 0)continue;let s=String(fi(o.func,o.distinct,o.arg,o.separator,t,r));iE(e).byLookupKey.set(a,s)}}function YA(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=_a(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"?me(e.expr,t):String(Re(e.expr,t))}function fi(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=sE(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,u=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return u.length;if(e==="GROUP_CONCAT")return u.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?Ri(n,o):void 0,c=typeof p=="string"?$(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?$("string"):$("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let R="",E=0;for(let[m,g]of f){if(g>E){R=m,E=g;continue}if(g!==E)continue;let h=nt(m,R,c);(h<0||h===0&&en(m,R)<0)&&(R=m)}return R}if(e==="MIN"||e==="MAX"){let f=u;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let m=nt(E,R,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(R=E)}return R}let d=s?u:u.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,m)=>E-m),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,m=0,g=0;for(let T of d){let y=T-R;E++;let b=y-m;m+=b/E,g+=b*(y-m)}let h=Math.max(0,g/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function sE(e,t,n){return n.map(r=>{let i=it(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=Re(t,i);if(isNaN(a))return null;o=String(a)}else{let a=Ot(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function jA(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 pi(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(fi(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(xe(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=pi(e.left,t,n),i=pi(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 Ei(e){return pt(e)}function Ri(e,t){if(e.type==="FIELD_REF")return t?.(jA(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=>Ri(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 lE(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 $("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return $("string");let n=e.arg.type==="WILDCARD"?"string":Ri(e.arg,t)??"string";return typeof n=="string"?$(n):n}function zA(e,t,n,r){return t===null?e:e.filter(i=>se(t,KA(i),n,void 0,r))}function qA(e,t,n,r,i){if(e.length===0)return e;let o=JA(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 JA(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(iS(t,a,o))}function pu(e,t,n,r,i,o){return t.length===0?e:uE(e,t,n,r,i,o).rows.map(a=>a.row)}function uE(e,t,n,r,i,o){let a=t.map(({key:u})=>{if(u.type==="ARITH_KEY")return{semantics:$("number")};if(u.type==="FUNC_KEY")return{semantics:$(cE.has(u.expr.func)?"number":"string")};if(u.type==="GROUPING_KEY")return{semantics:$("number")};let p=i?.get(u.name);if(p)return{semantics:p};let c=n?.get(u.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:$(r?.get(u.name)??"string")}}),s=e.map(u=>({row:u,keys:t.map(({key:p},c)=>({s:ZA(p,u,o)}))})),l=(u,p)=>XA(u,p,t,a);return s.sort(l),{rows:s,compare:l}}function XA(e,t,n,r){for(let i=0;i<n.length;i++){let o=QA(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function QA(e,t,n){return nt(e.s,t.s,n.semantics)}var cE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ZA(e,t,n){let r=it(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Te(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,r));case"FUNC_KEY":return me(e.expr,r);case"GROUPING_KEY":return Hn(e.ref,t)}}function du(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=>xe(it(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>Ye(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>Ye(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>Ye(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(Re(a.expr,it(l))));break;case"STRFUNC_COL":{let l=rn(a.expr);i.set(s,u=>mi(a.expr)?Ye(u,o)??Te(u,l)??me(a.expr,it(u),n,r):me(a.expr,it(u),n,r));break}case"CASE_COL":i.set(s,l=>Be(a.expr)?Ye(l,o)??"":Ge(a.expr,it(l),n,r));break;case"SCALAR_VALUE_COL":{let l=ht(a.expr);i.set(s,u=>nn(a.expr)?Ye(u,o)??Te(u,l)??"":String(we(a.expr,it(u),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>Hn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function fu(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]=cu(e[s]);for(let{column:s,columnIndex:l}of a){let u=new Map;for(let p of e){let c=JSON.stringify(s.partitionBy.map(f=>rS(p,f))),d=u.get(c);d?d.push(p):u.set(c,[p])}for(let p of u.values()){let c=uE(p,s.orderBy,n,r,i),d=c.rows;if(ao(s)){nS(s,l,c,o);continue}if(_s(s)){tS(s,l,d);continue}if(!Ls(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&&c.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let m=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;yt(d[E].row,l,String(m),[s.alias])}}}return e}function eS(e,t){let n=Ot(e,it(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function tS(e,t,n){let r=n.map(o=>eS(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;yt(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function nS(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:sE(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:Ri(e.arg,r),s=typeof a=="string"?$(a):a??$("string"),l=[],u=0,p=0,c;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")u++;else if(f!==null)if(e.aggFunc==="COUNT")u++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")p+=Number(f),u++;else if(c===void 0)c=f;else{let E=nt(f,c,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(c=f)}let R=e.aggFunc==="COUNT"?u:e.aggFunc==="SUM"?p:e.aggFunc==="AVG"?u===0?0:p/u:c??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)yt(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++)yt(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)yt(i[d].row,t,l[d],[e.alias])}function rS(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return xe(it(e),n)}function Da(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function _a(e,t,n,r={}){let i=it(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 xe(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=pe(e.func,e.distinct,e.arg);return Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Ei(e.expr);return Ye(t,n)??Te(t,o)??Dt(t,o)??"0"}case"ARITH_COL":return String(Re(e.expr,i));case"CASE_COL":return Be(e.expr)?Ye(t,n)??Te(t,lu(e.alias,n))??Dt(t,lu(e.alias,n))??"":Ge(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return Hn(e.ref,t);case"STRFUNC_COL":{let o=rn(e.expr);return mi(e.expr)?Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=ht(e.expr);return nn(e.expr)?Ye(t,n)??Te(t,e.alias??o)??Te(t,o)??Dt(t,e.alias??o)??Dt(t,o)??"":String(we(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ye(t,n)??Te(t,e.alias)??Dt(t,e.alias)??""}}function iS(e,t,n={}){return e.map((r,i)=>{let o=_a(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function An(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let m=nE(Zf(E),a),g=_a(t[0],E,0,{wildcardKeys:Object.keys(m)}),h={};if(typeof g!="string")for(let[T,y]of g.entries)y!==null&&(h[T]=y);return h}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=lS(t),l=sS(t),u=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),p=u?null:oS(t,s,l),c=p??[];return u&&e.length===0?{rows:[],columns:aS(t,s,l)}:{rows:e.map((f,R)=>{let E={},m={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(nE(Zf(f),a)),parentWildcardKeys:Object.keys(f).filter(g=>g.startsWith("_p.")).sort()};for(let[g,h]of t.entries()){let T=_a(h,f,g,m);switch(h.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof T!="string")for(let[y,b]of T.entries)b!==null&&(E[y]=b);break;case"PARENT_WILDCARD":{if(typeof T!="string")for(let[y,b]of T.entries)b!==null&&(E[y]=b),R===0&&c.push(y);break}case"FIELD":{let y=p?.[g]??h.alias??s.get(g)??h.field;E[y]=T,p===null&&R===0&&c.push(y);break}case"LITERAL_COL":{let y=p?.[g]??h.alias??`'${h.value}'`;E[y]=T,p===null&&R===0&&c.push(y);break}case"AGGREGATE":{let y=pe(h.func,h.distinct,h.arg),b=p?.[g]??h.alias??y;E[b]=T,p===null&&R===0&&c.push(b);break}case"ARITH_AGG_COL":{let y=p?.[g]??h.alias??Ei(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"ARITH_COL":{let y=p?.[g]??h.alias??Eu(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"CASE_COL":{let y=p?.[g]??h.alias??l.get(g)??"case";E[y]=T,p===null&&R===0&&c.push(y);break}case"GROUPING_COL":{let y=p?.[g]??h.alias??`GROUPING(${h.ref.field.tableAlias?`${h.ref.field.tableAlias}.`:""}${h.ref.field.field})`;E[y]=T,p===null&&R===0&&c.push(y);break}case"STRFUNC_COL":{let y=p?.[g]??h.alias??rn(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"SCALAR_VALUE_COL":{let y=p?.[g]??h.alias??ht(h.expr);E[y]=T,p===null&&R===0&&c.push(y);break}case"SCALAR_SUBQUERY_COL":{let y=p?.[g]??h.alias??"(subquery)";E[y]=T,p===null&&R===0&&c.push(y);break}case"WINDOW_COL":{let y=p?.[g]??h.alias;E[y]=T,p===null&&R===0&&c.push(y);break}}}return E}),columns:c}}function oS(e,t,n){return e.map((r,i)=>pE(r,i,t,n))}function aS(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=pE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function pE(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??pe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Ei(e.expr);case"ARITH_COL":return e.alias??Eu(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??rn(e.expr);case"SCALAR_VALUE_COL":return e.alias??ht(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 sS(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 lS(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Qf(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=Qf(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 Qf(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Zf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Eu(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"?z(n):n.type==="STRING_FUNC"?rn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function rn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Ei(n):n.type==="VARIABLE"?`@${n.name}`:ht(n));return`${e.func}(${t.join(",")})`}function ht(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return rn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${ht(e.left)}${e.op}${ht(e.right)}`;case"CONCAT_OP":return`${ht(e.left)}||${ht(e.right)}`}}function uS(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:nn(e)}function nn(e){return e.type==="STRING_FUNC"?mi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nn(e.left)||nn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>eE(t.result))||e.elseResult!==null&&eE(e.elseResult):!1}function eE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nn(e)}function mi(e){return e.args.some(t=>uS(t))}function cS(e,t,n){if(e.type==="AGG_REF"){let r=fi(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=pi(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(xe(t[0]??{},r)),raw:xe(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Ru(e,t,n):di(e,t,n)}function di(e,t,n){return e.type==="STRING_FUNC"?Ru(e,t,n):e.type==="CASE_WHEN"?dE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:di(e.left,t,n),right:di(e.right,t,n)}:e}function tE(e,t,n){if(e.type==="AGG_REF"){let r=fi(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=pi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:di(e,t,n)}function dE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:tE(r.result,t,n)})),elseResult:e.elseResult===null?null:tE(e.elseResult,t,n)}}function Ru(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>cS(r,t,n))}}function nE(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 rE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function ou(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function pS(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,$("number"));else if(r.type==="WINDOW_COL"){if(Ls(r)||ao(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,$("number"));else if((ao(r)||_s(r))&&r.arg.type!=="WILDCARD"){let i=Ri(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?$(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,$("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,$("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,$("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,$(cE.has(r.expr.func)?"number":"string"));return n}function mu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:u,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:d,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:m,plainGroupByPlan:g,warnings:h}=e,T=pS(t.columns,c);for(let[N,U]of a??[])T.set(N,U);let y=[],b=t.from.alias;y=(n.get(b)??n.get(null)??[]).map(N=>vt(N,b));let v=ou(rE(R?.get(b),b),void 0,y);for(let N of t.joins){let U=N.table.alias,D=(n.get(U)??[]).map(I=>vt(I,U)),A=ou(rE(R?.get(U),U),void 0,D);y=BA(y,D,N,{leftColumns:v,rightColumns:A}),v=ou(v,A,y)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;y=WA(y,C,s,d,l);let M=Z(t);if(M.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");y=HA(y,m,t.columns,c,{maxGeneratedRows:5e4})}else(M.type==="PLAIN"||oE(t.columns))&&(y=VA(y,M.type==="PLAIN"?M.allItems:[],t.columns,c,M.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));zf(t.columns,y,h);let O=N=>N.aggregateRef?lE(N.aggregateRef,c):p?.(N);return zf(t.having,y,h),y=zA(y,t.having,u,O),y=fu(y,t.columns,i,o,T,c),t.distinct&&(y=qA(y,t.columns,r,s,l)),y=pu(y,t.orderBy,i,o,T,du(t.columns,r,s,l)),y=Da(y,t.limit,t.offset),An(y,t.columns,r,s,f,l,E)}function fE(e,t){let n=[];for(let r of e){let i=gu(r.$id?.value),o=dS(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[u,p]of Object.entries(r)){if(u===t)continue;let c=gu(p?.value);l[`_p.${u}`]={value:c}}for(let[u,p]of Object.entries(s.value??{}))l[u]={value:gu(p?.value)};n.push(l)}}return n}function dS(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function gu(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 EE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function RE(e,t){let n=gi(e);for(let[r,i]of Object.entries(t))n[r]=gi(i);return n}function mE(e){let t=[...e.preErrors.map(i=>yu(i)),...e.postImageErrors.map(i=>yu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>yu(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]=gi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function yu(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 gi(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(gi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=gi(a,t);return i}function yE(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"&&et(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 Au(e){return yE(e,!0)}function va(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 ot(e,t,n,r,i=!0,o=!0,a=r){let s=Au(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:Se(e.where)}),va(e,e).forEach((l,u)=>ot(l,`${t}.select-source[${u}]`,n,a,a?!1:i,a?!1:o,a))}function yi(e,t,n,r,i=!0){e.left.type==="UNION"?yi(e.left,`${t}.left`,n,r,i):ot(e.left,`${t}.left`,n,r,!0,i),ot(e.right,`${t}.right`,n,r,!0,i)}function gE(e,t,n,r){if(!r&&jt(e)){ot(zt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?ot(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&yi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?ot(e.query,`${t}.main`,n,r,!1,!r,!0):yi(e.query,`${t}.main`,n,!0,!1)}function hE(e,t,n,r=!1){switch(e.type){case"SELECT":ot(e,t,n,r);return;case"UNION":yi(e,t,n,r);return;case"WITH":gE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?gE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?yi(e.query,`${t}.query`,n,!0,!1):ot(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":hE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Au(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)}),va(e,e).forEach((o,a)=>ot(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Au(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:Se(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=yE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}va(e,e).forEach((o,a)=>ot(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:va(e,e).forEach((i,o)=>ot(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Ua(e,t){let n=new Map;for(let r of t){if(!et(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 Su(e,t){return t.eligible===!0&&We(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function fS(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)&&sr(t)}function ES(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function RS(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 Gn(e)?(n.some(r=>r!==It)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(It)||n.push(It)):n.includes(ln)||n.push(ln),[...new Set(n)]}function hu(e,t){let n=e.functionNames[0],r=Gn(n)?It:ln,i=RS(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function AE(e,t){let n=[];hE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=ES(i);return r.push(p),{hasRelativeDate:i.functionNames.some(ie),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:hu(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,d=We(p),f=await t.select(p),R="";try{R=i.where===null?"":Y(i.where)}catch{R=""}let E=c&&d==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Ua(R,i.relativeFunctionOccurrences),m,g;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let b=await t.prefilterDecomposition(p);b?.eligible===!0&&Su(p,b)&&(m=b.plan,g=!0,E=!0)}let h;!E&&f.capability==="EXACT_PUSHDOWN"&&(h=xo({select:p,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(m=h.prefilterPlan,E=!0));let T;if(!E&&t.joinServerFunctionPlan){let b=await t.joinServerFunctionPlan(p);b!==null&&fS(p,b)&&(T=b,E=!0)}let y={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...m?{prefilterPlan:m,phase2PrefilterEligible:g}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...T?{joinServerFunctionPlan:T,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:T.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(y),!E)return{hasRelativeDate:n.some(b=>b.functionNames.some(ie)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:hu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":Y(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Ua(s,i.relativeFunctionOccurrences),u={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(u),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(ie)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:hu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ie)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Tu(e){if(!e.allowed&&e.rejection){let t=Gn(e.rejection.functionName)?It:ln,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 Iu(e,t,n={}){let r=ye(e.where,t),i=(T,y="INELIGIBLE")=>({eligible:!1,disposition:y,reasonCodes:T,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=Ai(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=mS(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!gS(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=hS(e.where,t),l=kr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),u=n.serialize??Y,p=n.containsFunctions??Ua,c=[];for(let T of a.leaves){let y=Fa(T);if(y===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let b;try{b=u(T)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(b,[y]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(T)}let d=yS(l.condition),f=new Set(c),R=ka(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=u(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(T=>Fa(T));if(!p(E,[...new Set(m)])||!AS(E,m))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):xa(e.where,f);if(g!==null&&Ai(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let T of m)h.add(T);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:g,exactRelativeLeaves:c,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function mS(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}Ai(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Ai(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Fa(o)===null)return;if(ye(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Ai(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 Fa(e){return e.right.type==="KINTONE_FUNC"&&et(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&et(e.right.values[0].name)?e.right.values[0].name:null}function Ai(e){let t=[],n=r=>{if(r.type==="BINARY"&&Fa(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 gS(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 yS(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 ka(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=ka(e.left,t,n),i=ka(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=ka(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var hi={type:"BOOLEAN",value:!0};function xa(e,t){if(e.type==="BINARY"&&t.has(e))return hi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=xa(e.left,t)??hi,r=xa(e.right,t)??hi;return Ma(n)?Ma(r)?null:r:Ma(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=xa(e.expr,t)??hi;return Ma(n)?hi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ma(e){return e.type==="BOOLEAN"&&e.value}function hS(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 AS(e,t){let n=new Map;for(let r of t){if(!Sr.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 V=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function SE(e,t){if(!t)throw new V("IMPORT source capability is not available.");let n=t(e);if(!n)throw new V(`source "${e}" is not supplied.`);return n}async function Ga(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new V("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new V("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function SS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new V(`invalid ${t.toUpperCase()} byte sequence.`)}}function TS(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 u=e[a];if(i){if(u==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=u,a++;continue}if(o&&u!==","&&u!=="\r"&&u!==`
5
5
  `)throw new V(`unexpected character after closing quote at offset ${a}.`);if(u==='"'){if(r.length!==0)throw new V(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(u===","){s(),a++;continue}if(u==="\r"||u===`
6
6
  `){u==="\r"&&e[a+1]===`
7
- `&&a++,l(),a++;continue}r+=u,a++}if(i)throw new V("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function wS(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new V(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new V(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ka(e,t){let n=IS(TS(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}`)),wS(r),i.length===0)throw new V("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new V(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var bS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),NS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Si=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 TE(e,t,n){if(!bS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Si;return NS.has(t??"")?r.map(i=>({code:i})):r}function Ut(e,t,n,r){throw new V(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function IE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new V("JSON source is not valid UTF-8.")}}function wE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
+ `&&a++,l(),a++;continue}r+=u,a++}if(i)throw new V("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 V(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new V(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ka(e,t){let n=TS(SS(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 V("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new V(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var wS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),bS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Si=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 TE(e,t,n){if(!wS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Si;return bS.has(t??"")?r.map(i=>({code:i})):r}function Ut(e,t,n,r){throw new V(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function IE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new V("JSON source is not valid UTF-8.")}}function wE(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&&Ut("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){d+=R;continue}n>=e.length&&Ut("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
- `,r:"\r",t:" "};if(E in m){d+=m[E];continue}E!=="u"&&Ut(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||Ut("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)o();let h=Number.parseInt(g,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Ut("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let b=0;b<4;b++)o();let y=Number.parseInt(T,16);(y<56320||y>57343)&&Ut("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(h-55296<<10)+y-56320)}else h>=56320&&h<=57343?Ut("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(h)}f||Ut("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let u=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(p){for(let d=0;d<p.length;d++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Ut(`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 Ba(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function $a(e){if(e.byteLength===0)throw new V("JSON source is empty.");let t=wE(IE(e)),n=0,r=(u,p=t[n])=>{throw new V(`JSON ${u} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(u,p)=>u.kind==="punct"&&u.value===p,o=u=>{let p=t[n];(p.kind!=="punct"||p.value!==u)&&r(`expected ${u}; found ${Ba(p)}`,p),n++},a=()=>{let u=t[n++];if(u.kind==="string")return u.value;if(u.kind==="number")return{kind:"number",lexeme:u.lexeme};if(u.kind==="literal")return u.value;if(u.kind==="punct"&&u.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Ba(c)}`,c);let d=c.value;p.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,c),o(":"),p.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(u.kind==="punct"&&u.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${Ba(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Ba(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 V("JSON source contains no records.");return l.forEach((u,p)=>{if(!(u instanceof Map))throw new V(`JSON record ${p+1} must be an object.`)}),l}var PS=new Set(["CHECK_BOX","MULTI_SELECT"]),bE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ht(e,t,n){throw new V(`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 OS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&ht(n,t.code,"boolean is not accepted."),CS(e)){t.fieldType==="NUMBER"&&ht(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&ht(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)||ht(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&ht(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||ht(n,t.code,"unsupported value type."),!PS.has(t.fieldType)&&!bE.has(t.fieldType)&&ht(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&ht(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&ht(n,t.code,"array elements must not contain duplicates."),bE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Iu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let i=$a(t.bytes);if(i.length>r)throw new V(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new V("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,u)=>{for(let d of l.keys())o.has(d)||ht(u+1,d,"unknown key (not declared in INTO).");let p={},c=new Set;for(let d of n)l.has(d.code)&&(c.add(d.code),p[d.code]=OS(l.get(d.code),d,u+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function wu(e,t,n,r,i,o){let a=Ka(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new V(`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 V("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((g,h)=>[g,h]));for(let g of r)if(!l.has(g))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let u=new Map(i.map(g=>[g.code,g])),p=new Set(r);if(o&&p.has(o))throw new V("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],d=[],f=g=>a.rows.filter(h=>h[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,h]of a.columns.entries()){if(p.has(h)||h===o)continue;let T=u.get(h);if(T)c.push({column:h,reason:R(T),nonEmptyCells:f(g)});else if(e.ignoreUnknownColumns)d.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(g)});else throw new V(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let g of r){let h=u.get(g);if(!h)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${h.fieldType}).`)}let E=[];return{rows:a.rows.map(g=>{let h=[],T={};for(let y of r){let b=g[l.get(y)];try{T[y]=TE(b,u.get(y)?.fieldType,{cliKintone:!0})}catch(P){if(!(P instanceof Si))throw P;T[y]=b,h.push({field:y,code:P.code,message:P.message})}}return E.push(h),T}),columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:u.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(g=>g[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((u,p)=>[u,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Ti=(e,t,n)=>{throw new V(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function NE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let o=$a(t.bytes);if(o.length>r)throw new V(`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 V("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,u)=>{let p=u+1;for(let R of l.keys())a.has(R)||Ti(p,R,"unknown key (not declared in INTO).");let c=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 m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Ti(p,E,"object is not accepted for a top-level field."),c.set(E,m);continue}Array.isArray(m)||Ti(p,E,"subtable value must be an array."),f.add(E);let g=new Set(R.children),h=m.map((T,y)=>{T instanceof Map||Ti(p,E,`childRow=${y+1} must be an object.`);let b=T;for(let P of b.keys())g.has(P)||Ti(p,P,`unknown child key in subtable ${E} at childRow=${y+1}.`);if(s++,s>i)throw new V(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:y+1,values:b}});d.set(E,h)}return{rowNumber:p,top:c,subtables:d,replacementTables:f}})}}function PE(e,t,n,r,i,o){let a=Ka(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new V('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 V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),u=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of u){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new V(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new V(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new V(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(p.length>=i)throw new V(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,d[s.get(m.field)]])),subtables:new Map(u.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},p.push(c)}else if(c){for(let m of l){let g=d[s.get(m.field)];if(g!==""&&g!==c.top.get(m.field))throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=d[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new V(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of u){let g=d[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(y=>[y,d[s.get(y)]]));if(g===""&&[...h.values()].every(y=>y===""))continue;let T=c.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:h})}}),p.length===0)throw new V("CSV has no parent rows.");return{records:p}}var LS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),_S=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Pu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function _E(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)CE(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)CE(E,R.get(E),d.subtableCode)}let u=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>DS(d,s,l,o,a,r,i,u)),c=p.flatMap(d=>[...d.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:u}}function DS(e,t,n,r,i,o,a,s){let l=[],u={};for(let d of t)e.top.has(d.field)&&Nu(e.top.get(d.field),r.get(d.field),o,u,d.field,l,bu(e,a,d.field));let p={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||OE(d,o,p,l,bu(e,a,d.code));let c=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 m=l.length,g={},h=i.get(d.subtableCode);for(let T of d.children){let y=h.get(T),b=bu(e,a,T,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?Nu(E.values.get(T),y,o,g,T,l,b):OE(y,o,g,l,b)}l.length===m?(f.validChildRows++,R.push(g)):f.invalidChildRows++}c.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function CE(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&&_S.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function OE(e,t,n,r,i){let o=Rn(e.defaultValue)?"":e.defaultValue;Nu(o,e,t,n,e.code,r,i,!Rn(e.defaultValue))}function Nu(e,t,n,r,i,o,a,s=!1){let l=vS(e),u=Ke(l,t,n);u.ok?r[i]={value:US(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function vS(e){return LE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:LE(t)?t.lexeme:t):e}function LE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function US(e,t){return LS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function bu(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 Cu=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Ou(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":MS(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 MS(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 Lu(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 DE(e,t){return Lu(e,t,"DROP")}function vE(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 UE(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,u])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:u.length,addRows:u.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function kS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function ME(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 kE(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],u=l===void 0?void 0:r.get(l),p=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,d=[];for(let f of o.replacementTables){let R=kS(u.record,f),E=new Set(R.map(P=>P.id).filter(P=>!!P)),m=s.subtables.get(f)??[],g=o.subtables.get(f)??[],h=0,T=0,y=0,b=m.map((P,v)=>{let C=g[v]??{};return P.rowId&&E.has(P.rowId)?(h++,{rowId:P.rowId,record:C}):(P.rowId&&((i.get(P.rowId)??[]).some(O=>O.parentId!==l||O.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:P.rowId,subtable:f,subrow:P.childRowNumber,sourceRow:P.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${P.rowId}`,sourceValues:P.values}),y++),T++,{record:C})});c.set(f,b),d.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:h,addRows:T,deleteRows:R.length-h,rowIdNotFound:y})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:p.length===0,top:o.top,subtables:c,tables:d,errors:p}})}var _u="#__import_source";function xE(e){return{...e,from:{appId:0,alias:null,cteName:_u}}}function xS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Du(e,t){let n=e.map(xS),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 FS="\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",Pn=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"}},le=new WeakMap;function sR(e){return le.get(e)}var vn=new WeakMap,ss=new WeakMap,FE=new WeakMap,GS=1,KS=1;function lR(e,t){if(t)return t;let n=FE.get(e);return n||(n=`client:${GS++}`,FE.set(e,n)),n}function pc(e){return`${e}\0inv:${KS++}`}async function dc(e,t,n={}){Rt(n);let r=Date.now(),i=pc(lR(t,n.cacheContext));try{let o=FI(e,n.enableImport===!0),a=uR(),s=pR(t,a),l={aborted:!1},u=Ec(s,l,!$S(o)||zl(o)),p=await Gu(o,u,n,i);a.elapsedMs=Date.now()-r;let c={...dR(p,l),metrics:a};if(p.type==="SELECT"){let d=le.get(p);d&&le.set(c,d)}return c}finally{_c(i)}}function uR(){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 cR=Symbol("limitMetricsSink");function fc(e,t){let n=e[cR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function pR(e,t){return{[cR]: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 GE=Symbol("searchAbortFailClosed");function Ec(e,t,n){return n&&e[GE]?e:{...e,...n?{[GE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Pn;return i}}}function BS(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 $S(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function dR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(FS),{...e,warnings:[...n]}}async function KE(e,t,n){let r=await Wi(e,t,n);return Su(r),r}async function Wi(e,t,n){return AE(e,{select:async r=>{let{resolver:i}=await wn(r,t,n);return ye(r.where,i)},dml:r=>IR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await wn(r,t,n);return Tu(r,i)},joinServerFunctionPlan:async r=>{await wn(r,t,n);let i=await us(r,t,n),o=ls(r,i);return o===null?null:(sr(o.joinPlan)&&Ic.set(r,o),o.joinPlan)}})}async function Gu(e,t,n,r){let i=await Wi(e,t,r);e.type!=="EXPLAIN"&&Su(i);let o=Bu(e);if(o!==null&&!mI(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if($n("phase15b",e),fo("phase15b",e),et(e),e.type!=="EXPLAIN"&&await nT(e,t,r),e.type==="IMPORT")return YR(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 ic(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 vc(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 WS(e,t,n,r);case"SELECT":return kt(Yu(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return MR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Cc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return cI(e,t,n,r);case"INSERT_SELECT":return xc(e,t,n,r);case"UPSERT":return OI(e,t,n,r);case"UPSERT_SELECT":return Kc(e,t,n,r);case"UPDATE":return ic(e,t,n,r);case"DELETE":return CI(e,t,n,r);case"REORDER":return MI(e,t,n,r);case"SHOW_APPS":return XR(t);case"DESCRIBE":return QR(e,t,r);case"EXPLAIN":return VI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Xe(n.dmlMaxRows,"dmlMaxRows",Ft):Ft,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne):Ne,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions);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 gR(e,t,n,r)}}var Rc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],mc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function gc(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 fR(e=!1){let t=e?mc:Rc;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:$(n==="$id"||n==="$err_count"?"number":"string")}]))}async function WS(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ER(e,t,n,r)}async function ER(e,t,n,r){let i=await ee(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=Bl(e,i),l=new Set(s.flatMap(L=>Gl(L.field))),u={present:Fl.filter(L=>l.has(L)),absent:Fl.filter(L=>!l.has(L))},p=e.checkGroups??[],c=er(p);for(let L of c){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.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`)}let d=new Map([...o].map(([L,F])=>[L,F.fieldType]));d.set("$id","RECORD_NUMBER"),Dn(e,d);let f=gc(e.where),R=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...c.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.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 E=s.some(L=>L.field.fieldType==="NUMBER")?await St(e.appId,t,r):void 0,m=L=>L.field==="$id"?te({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?te(o.get(L.field)):void 0),g=ye(e.where,m);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(g)}).`);let h=new Map([...o].map(([L,F])=>[L,F.fieldType])),T=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),y=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:el(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:T,allowKlike:!1}),b=y===null?"":Y(y),v=(await ke(t.getRecords,e.appId,b,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:vt(L,null)})).filter(L=>e.where===null||se(e.where,L.flat,F=>d.get(F.field))),C=[],M=new Map,O=new Map,N=new Set,U=0,w=L=>{if(N.add(L.id),U+=1,e.summary){let K=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),k=O.get(K);k?k.$err_count=String(Number(k.$err_count)+1):O.set(K,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),W=M.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),L.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${L.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},D=s.filter(L=>!L.subtableCode),A=new Map;for(let L of s){if(!L.subtableCode)continue;let F=A.get(L.subtableCode)??[];F.push(L),A.set(L.subtableCode,F)}for(let L of v){for(let F of D){let W=L.record[F.field.code]?.value,K=Ke(W,F.field,E);K.ok||w({id:L.id,field:F.field.code,code:K.code,message:K.message,value:ei(W,F.field.fieldType)})}for(let[F,W]of A){let K=L.record[F]?.value;if(Array.isArray(K))for(let k=0;k<K.length;k++){let G=K[k];for(let j of W){let B=G.value?.[j.field.code]?.value,_=Ke(B,j.field,E);if(!_.ok){let H=pa(F,k,G);w({id:L.id,field:j.field.code,code:_.code,message:_.message,value:ei(B,j.field.fieldType),...H})}}}}for(let F of Qo(p,L.flat,W=>d.get(W.field)))w({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...O.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),C.push(L)}let x={type:"SELECT",columns:[...e.summary?mc:Rc],rows:C,rowCount:C.length,validateStats:{errorRecords:N.size,errorCount:U,constraintMetadata:u}};return le.set(x,fR(e.summary===!0)),x}var Je=1e4;function At(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,u)=>l!==n[u])||!VS(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 VS(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||!No(i.semantics,r.semantics))return!1}return!0}var ur=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function RR(e,t,n={}){Rt(n);let r=yc(e,n.enableImport===!0),i=pl(r);if(r.forEach(f=>fo("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Ms(f)||f.type==="UPSERT"&&HS(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=jl(r,n.variables),a=mR(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 oe(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=uR(),u=pR(t,l),p=Date.now(),c=n.timeoutMs!=null?p+n.timeoutMs:null,d=pc(lR(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],m=new Set,g=null;for(let h=0;h<r.length;h++){let T=i.statements[h],y={index:h,type:T.statementType};if(g){E.push({...y,status:"skipped",skippedReason:g}),m.add(h);continue}let b=T.dependsOn.find(P=>m.has(P));if(b!==void 0){let P=i.statements[b].tempTablesCreated[0]??`statement ${b}`;E.push({...y,status:"skipped",skippedReason:`dependency: ${P}`}),m.add(h);continue}if(c!==null&&Date.now()>=c){E.push({...y,status:"skipped",skippedReason:"timeout"}),m.add(h),g="timeout";continue}try{let P=c!==null?c-Date.now():null,v=s.confirm,C=v?{...s,confirm:(w,D,A)=>v(w,D,{statementIndex:h,statementCount:r.length,statementType:T.statementType,targetAppId:T.targetAppId,...A?.importDetail?{importDetail:A.importDetail}:{},...A?.applyDetail?{applyDetail:A.applyDetail}:{},...A?.applyDiagnostic?{applyDiagnostic:A.applyDiagnostic}:{}})}:s,M={aborted:!1},O=Ec(u,M,T.statementType!=="SELECT"&&T.statementType!=="UNION"&&T.statementType!=="WITH"||zl(r[h])),N=BS(O),U=await zS(YS(r[h],T,N.client,C,d,f,R,a),P,N.closeActive);U.result&&(U.result=dR(U.result,M)),E.push({...y,status:"success",...U})}catch(P){E.push({...y,status:"error",error:qS(P),...P instanceof Fi?{result:P.diagnostic}:{}}),m.add(h),P instanceof ur?g="timeout":P instanceof pr?g="assertion":T.statementType==="SET_VARIABLE"||T.statementType==="DECLARE_VARIABLE"?g="fail-fast":n.continueOnError||(g="fail-fast")}}return l.elapsedMs=Date.now()-p,{ok:E.every(h=>h.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{_c(d)}}function HS(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 YS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let u=es(e,a);if(et(u),await KE(u,n,i),u.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:u.expr.elements.map(p=>({type:"string",value:p.value}))});else if(u.expr.type==="SCALAR_SUBQUERY")try{let p=await yR(u.expr.query,n,r,i,o),c=u.expr.query.columns[0],d=c?.type==="ARITH_COL"||c?.type==="ARITH_AGG_COL"||c?.type==="WINDOW_COL"&&(c.windowKind===void 0||c.windowKind==="RANKING"||c.windowKind==="AGGREGATE"&&(c.aggFunc==="COUNT"||c.aggFunc==="SUM"||c.aggFunc==="AVG"))||c?.type==="AGGREGATE"&&(c.func==="COUNT"||c.func==="SUM"||c.func==="AVG"||c.func==="STDDEV_POP"||c.func==="STDDEV_SAMP"||c.func==="VAR_POP"||c.func==="VAR_SAMP"||c.func==="MEDIAN");if(c?.type==="AGGREGATE"&&c.func==="MODE"||c?.type==="WINDOW_COL"&&c.windowKind==="VALUE"||c?.type==="WINDOW_COL"&&c.windowKind==="AGGREGATE"&&(c.aggFunc==="MIN"||c.aggFunc==="MAX")){let R=(await Mi(u.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(p):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:p}:{type:"string",value:p})}catch(p){throw p instanceof In?new Error(`ArgumentError: ${p.message}`):p}else a.set(e.name,BE(u.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 u=r.variables??{};if(Object.prototype.hasOwnProperty.call(u,e.name))a.set(e.name,{type:"string",value:u[e.name]});else{let p=BE(e.default);a.set(e.name,{type:"string",value:p.type==="number"?p.raw??String(p.value):p.value})}return{}}let l=es(e,a);if($n("phase15b",l),fo("phase15b",l),et(l),await KE(l,n,i),l.type==="VALIDATE"){let u=await ER(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&At(o,l.errorTable,u.columns,u.rows,r.tempTableMaxRows??Je,le.get(u)??fR(l.summary===!0)),{result:u}}if(l.type==="IMPORT")return{result:await YR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let u=await vc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&At(o,l.validationErrorTable,u.columns,u.errors,r.tempTableMaxRows??Je,vn.get(u)??new Map),{result:u}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await nc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let u={...r,maxRecords:r.tempTableMaxRows??Je,onLimitReached:"error"},p=await jS(l.query,n,u,i,o);return o.set(l.name,{rows:p.rows,columns:p.columns,columnMeta:le.get(p)}),{tempTable:l.name,rowCount:p.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let u=l;cc.set(u,o);try{return{result:await Gu(u,n,r,i)}}finally{cc.delete(u)}}if(l.type==="ASSERT")return await gR(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await lt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await Cc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await xc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Kc(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await ic(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Gu(l,n,r,i)}}async function jS(e,t,n,r,i){return e.type==="WITH"?Cc(e,t,n,r,i,!0):lt(e,t,n,i,r,!0)}async function zS(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new ur;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(u=>{l=setTimeout(u,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new ur)})()},t)})])}catch(a){throw a instanceof ur&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function qS(e){let t;if(e instanceof Et)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??vu(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:JS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:vu(r),message:r}}else{let n=String(e);t={code:vu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function vu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function JS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function yc(e,t=!1){let n=new Xt(e).tokenize();return new Qt(n,{import:t}).parseStatements()}function XS(e,t){try{let n=yc(`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 mR(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)?XS(r.name,t[r.name]):r.default);return n}function BE(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:Yd(e.name)};case"STRING_FUNC":return{type:"string",value:me(e,{})};case"ARITH":{let t=Re(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 es(e,t){return Ku(e,t,!1)}function Ku(e,t,n){if(Array.isArray(e))return e.map(r=>Ku(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,Ku(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=QS(i);if(o.type==="SELECT"&&je(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&je(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 je(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function QS(e){if(e.type==="NOT"&&je(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&je(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(je(t,!1)||je(n,!1))return{type:"BOOLEAN",value:!1};if(je(t,!0))return n;if(je(n,!0))return t}else if(e.op==="OR"){if(je(t,!0)||je(n,!0))return{type:"BOOLEAN",value:!0};if(je(t,!1))return n;if(je(n,!1))return t}}return e}function Bu(e){if(Array.isArray(e)){for(let t of e){let n=Bu(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=Bu(n);if(r!==null)return r}}return null}var pr=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},In=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function gR(e,t,n,r,i){let o=await Wa(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?$("number"):$("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Wa(e.low,t,n,r,i),u=await Wa(e.high,t,n,r,i);if(!Ct(">=",o,l,a)||!Ct("<=",o,u,a))throw new pr(`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 Wa(e.right,t,n,r,i);if(!Ct(e.op,o,s,a))throw new pr(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Wa(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return z(e);case"STRING":return e.value;case"ARITH":return String($u(e));case"SCALAR_SUBQUERY":try{return await yR(e.query,t,n,r,i)}catch(o){throw o instanceof In?new pr(o.message):o}}}async function yR(e,t,n,r,i){let{query:o,probed:a}=ZS(e),s=await _i(o,t,n,r,i);if(s.columns.length!==1)throw new In(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new In("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 In(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function ZS(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 $u(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=$u(e.left),n=$u(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 Vi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||mt(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 ee(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,u=d=>{if(Array.isArray(d)){d.forEach(u);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(u)};u(e.where),u(e.having);for(let d of e.columns)d.type==="CASE_COL"&&u(d.expr);let p=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await Dc(d,t,n);E&&p.set(d,E)}));let c=(d,f,R)=>{if(f==="$id")return zn(te({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return $("string");if(f==="_idx"||f==="_pid")return $("number")}let E=s.get(d.appId)?.get(fe(d,f));if(!E)return;let m=E.semantics??te(E),g=E.fieldType==="STATUS"&&p.has(d.appId)?{...m,optionOrder:p.get(d.appId)}:m;return zn(g,d.appId,E.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,d.field,!1);let R=o.find(E=>ue(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??$("string"):c(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??$("string"):c(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:c(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>za(R,d.field)!==void 0))return f.length>1?$("string"):void 0}}var hR=new WeakMap;async function wn(e,t,n,r,i=!1){let o=await Vi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=ad(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&hR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function eT(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function AR(e){return eT(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function $E(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=De(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ue(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=De(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function WE(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\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 SR(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"||$E(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`+WE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||$E(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`+WE(n,"VALUE"));return i}function hc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=le.get(e);return r&&le.set(n,r),n}function Ac(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=>mt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function TR(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(De(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=$("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=$("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=On(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=On(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"?$("string"):$("number"):r.type==="STRFUNC_COL"?i=Cn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=$("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function bn(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 ts(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function IR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=mt(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ye(null,()=>{}):ye(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function cr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await IR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${bn(r)})`)}async function kt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,u=new Set;if(await Ui(e,t,r,i),oT(e))return l=lT(e),o&&le.set(l,await Mi(e,l.columns,t,r,i,a)),l;let{resolver:p}=await wn(e,t,r,i,AR(e)),c=SR(e,p,s),d=await dr(e,t,r,i);await ZR(e,t,n,r,u,i);let f=wT(e,ye(e.where,p));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(f)}).`);let R=We(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let C=await Vi(e,t,r,i),M=Tu(e,C);M.eligible&&Au(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=Y(e.where)}catch{C=null}m=xo({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,m&&(E=m.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",h=await xi(e,t,r,i),T=ts(e)?(e.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:h.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ie(e.where)}):null,y=await cT(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),b=Sc(e,n,T),v=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?Ec(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await uT(e,v,b.effectiveOptions,r,T,h):l=await PT(e,v,b.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,h,E,d)}catch(C){bR(b,C)}return o&&le.set(l,await Mi(e,l.columns,t,r,i,a)),hc(l,[...u,...c,...y])}function Wu(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 wR(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 dr(e,t,n,r){let i=Z(e);if(!Yn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(c=>c.table)],s=new Map,l=await Promise.all(a.map(async c=>{if(c.cteName!==null){let E=r?.get(c.cteName);if(!E)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await ee(c.appId,t,n);if(!c.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:c.appId,owner:E.subtableCode}),s.set(E.code,wR(m))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===c.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)}})),u=xp(e,(c,d)=>l[d]),p=Bp(o,e.columns,u);return tT(e,o,p,s),Pr(e,Hp(e,p,u)),p}function tT(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 u=t[l],p=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=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(Wu(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${c}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var vi=new WeakMap;async function nT(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 Ui(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function rT(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let d=await ee(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),s=(c,d)=>{if(c.subtableCode)return null;let f=a.get(c.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(c,d)=>{if(d==="$id")return"$id";let f=fe(c,d);return s(c,f)!==null?null:a.get(c.appId)?.has(f)?f:null},u=(c,d)=>{if(c.cteName===null)return!1;let f=r?.get(c.cteName);return f?f.columns.includes(d):!0},p=(c,d,f,R)=>{let E=i.filter(h=>h.cteName===null&&l(h,f.field)!==null).length,m=i.some(h=>u(h,f.field)),g=ue(c);return{canonicalId:`source:${d}:APP${c.appId}:${R}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let m=i.findIndex(T=>ue(T)===c.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let g=i[m];if(g.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let h=l(g,c.field);if(h===null){let T=s(g,fe(g,c.field));throw T!==null&&T!==""?new Error(Wu(c.field,[{appId:g.appId,owner:T}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${g.appId}.`)}return p(g,m,c,h)}let d=i.flatMap((m,g)=>{if(m.cteName!==null)return[];let h=l(m,c.field);return h===null?[]:[{table:m,tableIndex:g,code:h}]}),f=i.filter(m=>u(m,c.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let m=d[0];return p(m.table,m.tableIndex,c,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let g=s(m,fe(m,c.field));return g===null||g===""?[]:[{appId:m.appId,owner:g}]}),E=wR(R);throw E.length>0?new Error(Wu(c.field,E)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function Ui(e,t,n,r){vi.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 rT(e,t,n,r),u=zp(e,l,jp);u&&vi.set(e,u);return}if(!Yn(e))return;if(i.type==="NONE"){yo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await dr(e,t,n,r)}function iT(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 Sc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Bt({...e,orderBy:[]}):Bt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function bR(e,t){throw e.reasons.size>0&&t instanceof Fe&&!t.completeInputWrapped?new Fe(iT(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Vu(e,t){try{return await t()}catch(n){bR(e,n)}}function st(e){return e?.type==="BOOLEAN"&&e.value===!1}function oT(e){return e.from.appId===0&&e.from.cteName===Ce}function ns(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"?ns(e.left)||ns(e.right):e.type==="STRING_FUNC"?Tc(e):!1}function aT(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Ni(e)}function Ni(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Tc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ni(e.left)||Ni(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"?ns(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Ni(n))):!1}function Tc(e){return e.args.some(t=>aT(t))}function sT(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(ns(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Tc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Ni(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 lT(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.");sT(e);let t=du([{}],e.columns),{rows:n,columns:r}=An(t,e.columns),i=Da(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function uT(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?OR(e):e,s=Io(a),l=i?.kind==="CANONICAL_LOCAL"?pn(e,e.from):s.fields,u=await wc(e,t,r),p=Nc(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await Vi(e,t,r,void 0,Ac(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&g!==null&&g<=d&&!Ie(e.where)?g:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let C=await Hf({client:t,app:s.app,fields:s.fields,query:ru(e),offset:e.offset??0,limit:e.limit});T=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?Y(e.where):"";T=await ke(t.getRecords,s.app,C,l,{parallel:E,maxRecords:d,stopAfter:h,onLimit:R,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),fc(t,e.from.appId)}})}let y=T.map(C=>vt(C,null));m||(y=cu(y,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,pu(e.columns,void 0,p.row,c)),y=Da(y,e.limit,e.offset));let{rows:b,columns:P}=An(y,e.columns,void 0,p.row,void 0,c),v=await Oc(e,b,P,t,r);return{type:"SELECT",rows:b,columns:v,rowCount:b.length,warnings:[...f]}}async function cT(e,t,n,r){let i=[],o=new Map,a=(u,p)=>{if(p.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let d of p)c.add(d)},s=new Map,l=(u,p)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let d of p)c.add(d)};if(t==="SIMPLE"){let u=Io(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(p=>p.table)].filter(p=>p.cteName===null);for(let p of u){let c=pn(e,p);a(p.appId,c),p.subtableCode||l(p.appId,c)}}for(let[u,p]of o.entries()){let c=[...p].filter(m=>!Ks(m));if(c.length===0)continue;let d=await ee(u,n,r);if(d.length===0)continue;let f=new Set(d.map(m=>m.code)),R=c.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${u})`);let E=s.get(u);if(E){let m=d.filter(g=>g.inSubtable===!0&&E.has(g.code));for(let g of m){let h=g.subtableCode??"",T=h?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${h}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${u} \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`+(h?`APP${u}$${h} \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 VE(e){return e.cteName??`APP${e.appId}`}function pT(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function dT(e,t){return Ks(t)||e.validCodes.has(t)}function Uu(e,t){return e.table.cteName!==null?e.validCodes.has(t):dT(e,t)}function fT(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 ET(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=ue(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===Ce)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:VE(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===Ce)return;let d=await ee(p.appId,t,r);s.set(p,{table:p,label:VE(p),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of pT(p.table))l.set(c,p);for(let p of e.joins)if(p.type!=="CROSS")for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let d=l.get(c.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Uu(d,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let u=ed(e);for(let[p,c]of u.bySource){let d=s.get(p);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...c].filter(R=>!Uu(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let p of u.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Uu(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${d})`)}}async function ja(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ja(e.left,t,n,r,i),await ja(e.right,t,n,r,i);return}await ET(e,t,n,r);for(let o of fT(e))await ja(o,t,n,r,i)}}function NR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Mr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Mr(e.where,{tableAlias:e.from.alias}):null}function Pi(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"?Pi(e.left)||Pi(e.right):e.type==="GROUP"||e.type==="NOT"?Pi(e.expr):!1}var Ic=new WeakMap;function ls(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=Gf(e.where,r),o=Kf(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,ar(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,u=a.get(l)??null,p=new Map(a);p.delete(l);let c=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:d,joinConditions:p,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function us(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let u=r.get(s);u?u.push(l):r.set(s,[l])};if(i(e.from.appId,NR(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=Mr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,p]=await Promise.all([ve(s,t,n),KT(s,t,n)]),c=RT(l).filter(d=>u.get(d)==="STATUS");if(c.length>0){let d=await ds(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 c)p.set(R,f)}}return[s,u,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function RT(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 Mt(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"&&rs(e.left.expr,t),e.right.type==="CASE_VALUE"&&rs(e.right.expr,t);return;case"LOGICAL":Mt(e.left,t),Mt(e.right,t);return;case"NOT":case"GROUP":Mt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function rs(e,t){for(let n of e.branches)Mt(n.condition,t)}function mT(e){let t=[];Mt(e.where,t),Mt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&rs(n.expr,t);return t}function ue(e){return e.alias??e.cteName}function PR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ue(n)===t)}function cs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function wc(e,t,n){let r=mT(e);if(r.length===0)return new Map;let i=new Set,o=cs(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 ve(s,t,n)]));return new Map(a)}function De(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 bc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Sn(t,n)}function Sn(e,t){if(e.type==="FIELD_REF"){t.push(De(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Sn(e.left,t),Sn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Sn(e.left,t),Sn(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"&&Sn(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"?fr(n,t):n.type!=="ARRAY"&&Sn(n,t)}function fr(e,t){if(e.type==="AGG_REF"){bc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(fr(e.left,t),fr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Hu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")fr(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;Ci(n,t)}}function Ci(e,t){if(e.type==="STRING_FUNC"){Hu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ci(e.left,t),Ci(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"?Hu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?fr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ci(r,t)}}function gT(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;bc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function yT(e){let t=[];for(let n of e)n.type==="AGGREGATE"?bc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?fr(n.expr,t):n.type==="STRFUNC_COL"?Hu(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ci(n.expr,t):n.type==="CASE_COL"&&gT(n.expr,t);return t}var hT=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function AT(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":hT.has(e.fieldType)?"string":void 0}async function CR(e,t,n,r){let i=yT(e.columns);if(i.length===0)return;let o=new Set,a=cs(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 ee(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,u=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...u].some(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await Dc(f,t,n);E&&l.set(f,E)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,R)=>{let E=f.semantics??te(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 m=p.find(g=>ue(g)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??$("string");R=s.get(m.appId)?.get(fe(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??$("string");R=s.get(e.from.appId)?.get(fe(e.from,f.field))}else{let m=p.flatMap(g=>{if(g.cteName!==null){let T=r?.get(g.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??$("string")]:[]}let h=s.get(g.appId)?.get(fe(g,f.field));return h?[c(h,g.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?p.find(m=>ue(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(R,E?.appId??e.from.appId)}}function fe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function za(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function _e(e,t){let n=e.semantics??te(e);return{sortKind:AT(e),fieldType:e.fieldType,semantics:t===void 0?n:zn(n,t,e.code)}}function OR(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:$(e)}}function ze(){return{semantics:$("string","KSQL_UNKNOWN")}}function LR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function qe(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return Q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Q("number")}var ST=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Cn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Q("number"):Q("string")}return ST.has(e.func)?Q("number"):Q("string")}function Er(e,t){return e.type==="STRING"?Q("string"):e.type==="ARRAY"?LR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?ze():On(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"?Cn(e):e.type==="FIELD_REF"?t(De(e.field))??ze():e.type==="FIELD"?t(e)??ze():ze()}function ps(e){if(e.length===0)return ze();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&&No(n(r.semantics),n(t.semantics)))?e.every(i=>No(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?LR("KSQL_MIXED_UNSUPPORTED"):ze()}function On(e,t){if(e.type==="FIELD_REF")return t(De(e.field))??ze();if(e.type==="FIELD")return t(e)??ze();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 Cn(e);let n=e.branches.map(r=>Er(r.result,t));return e.elseResult&&n.push(Er(e.elseResult,t)),ps(n)}function _R(e,t){return e.windowKind==="VALUE"?On(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Q("number"):e.arg.type==="WILDCARD"?ze():On(e.arg,t):Q("number")}function qa(e,t){return{...e??{},displayName:t}}function TT(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 Mi(e,t,n,r,i,o=!1){let a=new Map;TT(e)&&await Promise.all(cs(e).map(async E=>{if(a.has(E.appId))return;let m=await ee(E.appId,n,r);a.set(E.appId,new Map(m.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),u=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let T=a.get(e.from.appId)?.get(E.field);return T?_e(T,e.from.appId):void 0}let g=s.find(T=>ue(T)===E.tableAlias);if(!g)return;if(g.cteName!==null)return i?.get(g.cteName)?.columnMeta?.get(E.field);let h=a.get(g.appId)?.get(fe(g,E.field));return h?_e(h,g.appId):qe(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let g=a.get(e.from.appId)?.get(fe(e.from,E.field));return g?_e(g,e.from.appId):qe(E.field)}let m=s.flatMap(g=>{if(g.cteName!==null){let y=i?.get(g.cteName);return y?.columns.includes(E.field)?[y.columnMeta?.get(E.field)]:[]}let h=a.get(g.appId)?.get(fe(g,E.field)),T=h?_e(h,g.appId):qe(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},p=E=>{if(!l)return;let m=s.filter(g=>{if(E.tableAlias!==null&&ue(g)!==E.tableAlias)return!1;let h=fe(g,E.field);return a.get(g.appId)?.has(h)===!0||qe(E.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(E,m)=>{let g=p(m);return E&&g!==void 0?{...E,publicSourceApp:g}: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 m=De(E),g=c(u(m),m);d.set(E,qa(g,g?.displayName??E))}return d}if(f)for(let E of t){let m=De(E),g=c(u(m),m);d.set(E,qa(g,g?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let g=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!g)return;let h;if(E.type==="FIELD"){let T=De(E.field);h=c(u(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?h=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"?h=Q("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(h=On(E.arg,u));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")h=Q("number");else if(E.type==="GROUPING_COL")h=Q("number");else if(E.type==="LITERAL_COL")h=Q("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?h=Cn(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?h=Q("number"):T.type==="FIELD"?h=u(T):h=Q("string")}else if(E.type==="STRFUNC_COL")h=Cn(E.expr);else if(E.type==="WINDOW_COL")h=_R(E,u);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(y=>Er(y.result,u));E.expr.elseResult&&T.push(Er(E.expr.elseResult,u)),h=ps(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(h=ze());d.set(g,qa(h,E.aliasDisplay??g))}),d}function IT(e,t){let n=le.get(e),r=le.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],u=l===void 0?void 0:r?.get(l),p;if(s&&u){let c=ps([s,u]),d=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=c;p=d===void 0?R:{...R,publicSourceApp:d}}else p=ze();i.set(o,qa(p,s?.displayName??o))}),i}function Nc(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 u=n.find(p=>ue(p)===s.tableAlias);return!u||u.cteName!==null?void 0:za(u,s.field)??t.get(u.appId)?.get(fe(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:za(e.from,s.field)??t.get(e.from.appId)?.get(fe(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let p=za(u,s.field)??t.get(u.appId)?.get(fe(u,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var DR=new WeakSet,Pc=new WeakMap;function Yu(e){return DR.add(e),e}function wT(e,t){return Pc.set(e,t),t}function vR(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 bT(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function NT(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":Y(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Pn;if(!bT(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=An([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function PT(e,t,n,r,i,o=!0,a,s,l){let u=Pc.get(e);if(DR.has(e)&&u!==void 0&&vR(e,u)){let _=await NT(e,t);if(_!==null)return _}let p=n.maxRecords??1e4,c=new Set,d=n.fetchParallel??1;await Promise.all([Bi(e.where,t,n,r,c,i),Bi(e.having,t,n,r,c,i)]);let[f,R,E]=await Promise.all([us(e,t,r),wc(e,t,r),CR(e,t,r,i)]),m=Nc(e,R),g=await Vi(e,t,r,i,mt(e.having)||Ac(e)),h=TR(e,g),T=Ic.get(e);if(T&&!sr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let y=T??ls(e,f)??dn(e,f);rl(y);let b="joinPlan"in y?y:null,P=b&&sr(b.joinPlan)?b:null,v=t,C=y.mainCondition,M=y.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let O=s?s.prefilterWhere:P?null:C,N=P?.queriesByAlias.get(e.from.alias)??"",U=await tm(e.columns,t,n,r,c,i),w=st(e.where),D=w?Promise.resolve([]):Oi(e,e.from,v,p,d,!0,n.onLimitReached??"error",c,O,P?!1:o,l,N),A=[],I=[];for(let _ of e.joins){if(w){A.push({join:_,promise:Promise.resolve([])});continue}let H=_.table.alias?P?.queriesByAlias.get(_.table.alias)??"":"",ne=P?null:_.table.alias?M.get(_.table.alias)??null:null;ne!==null||H!==""?A.push({join:_,promise:Oi(e,_.table,v,p,d,!1,n.onLimitReached??"error",c,ne,!0,l,H)}):I.push(_)}let x=a?Promise.resolve(a):xi(e,t,r,i);x.catch(()=>{});let L=await D,F=new Map;F.set(e.from.alias,L);for(let{join:_,promise:H}of A)F.set(_.table.alias,await H);await Promise.all(I.map(async _=>{let ne=await BR(e,_,F,v,p,d,n.onLimitReached??"error",c,r,i,null,l,"")??await Oi(e,_.table,v,p,d,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(_.table.alias,ne)}));let{optionOrders:W,sortKinds:K,semantics:k}=await x,{rows:G,columns:j}=Ru({tables:F,stmt:e,scalarCache:U,optionOrders:W,sortKinds:K,orderSemantics:k,fieldTypeResolver:m.row,fieldSemanticsResolver:g,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:h,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??y.appliedKlikes,...s?{residualWhere:s.residualWhere}:P?{residualWhere:P.joinPlan.residualWhere}:{},resolvedGroupingSpec:vi.get(e),plainGroupByPlan:l,warnings:c}),B=await Oc(e,G,j,t,r);return{type:"SELECT",rows:G,columns:B,rowCount:G.length,warnings:[...c]}}function CT(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`)}function ju(e,t,n){CT(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,u)=>{s[l]=a[e.columns[u]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=le.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let u=e.columns[l],p=n?.get(s)??(u===void 0?void 0:o?.get(u));p&&a.set(s,{...p,displayName:s})}),le.set(i,a)}return i}function UR(e,t,n,r){let i=ju(t,e.columns),o=[...e.rows,...i.rows],a=n?o:OT(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&le.set(l,IT(e,t)),l}async function MR(e,t,n,r,i=!1,o=!1){let a=Sc(e,n,null);return Vu(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?MR(e.left,t,s,r,i,o):kt(Yu(e.left),t,s,r,void 0,i,o,"DERIVED"),kt(Yu(e.right),t,s,r,void 0,i,o,"DERIVED")]);return UR(l,u,e.all,i)})}function OT(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)})}function kR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function LT(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(kR);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function HE(e){return e.columns.map((t,n)=>kR(t)??`__b53_column_${n}`)}function YE(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function xR(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await ee(s.appId,t,n);o.set(s.appId,new Map(l.map(u=>[u.code,u])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let u=o.get(s.appId)?.get(fe(s,l));return u?_e(u,s.appId):qe(l)};return s=>{if(s.tableAlias!==null){let u=i.find(p=>ue(p)===s.tableAlias);return u?a(u,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(u=>a(u,s.field)).filter(u=>u!==void 0);return l.length===1?l[0]:void 0}}function wi(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>wi(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:De(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=De(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){wi(r.left,t,!0),wi(r.right,t,!0);return}for(let i of Object.values(r))wi(i,t,n)}async function jE(e,t,n,r,i){let o=await xR(e,n,r,i);e.columns.forEach(u=>wi(u,o));let a=await Mi(e,HE(e),n,r,i),s=HE(e),l=new Map;return t.forEach((u,p)=>{let c=a.get(s[p]);if(!c?.semantics||c.semantics.fieldType==="KSQL_UNKNOWN"||c.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${p+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(u,{...c,displayName:u})}),l}function rn(e){return`${e.appId}:${e.subtableCode??""}`}function FR(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(rn(r))&&t.set(rn(r),r);return[...t.values()]}function _T(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function DT(e){let t=new Map,n=r=>{for(let i of r)t.set(rn(i),null)};for(let r of e){let i=cs(r);for(let s of i){let l=rn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let u=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(c=>c.table)].find(c=>ue(c)?.toLowerCase()===s.toLowerCase());if(!u){n(i);return}if(u.cteName!==null)return;let p=t.get(rn(u));p!==null&&p?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let u=_T(l.field),p=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:u.alias;o(p,u.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(Z(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function vT(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function UT(e,t,n,r){let i=DT(e),o=await Promise.all(FR(...e).map(async(a,s)=>{let l=await kt(vT(a,i.get(rn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),u=`__b53_source_${s}`;return[rn(a),{name:u,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:le.get(l)}}]}));return new Map(o)}function zE(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(rn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function qE(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function Mu(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=he(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function JE(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ue(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function MT(e,t,n,r,i){let o=e.recursiveSpec,a=LT(e),s=await jE(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await jE(o.recursiveTerm,a,t,i,l);a.forEach((K,k)=>{let G=s.get(K),j=u.get(K);if(!G||!j||!YE(G,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let p=JE(e.name,o.recursiveTerm),c=await xR(o.recursiveTerm,t,i,l),d=c({type:"FIELD",tableAlias:ue(p.self),field:p.selfField}),f=c({type:"FIELD",tableAlias:ue(p.source),field:p.sourceField});if(!d||!f||!YE(d,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await UT([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let K of R.values())E.set(K.name,K.table);let m=zE(o.seed,R),g=zE(o.recursiveTerm,R),h=await lt(m,t,n,E,i,!0,!0),T=ju(h,a,s),y=o.cycle,b=y?s.get(y.column):void 0,P=new Map(s);y&&P.set(y.markColumn,{...Q("string"),displayName:y.markColumn});let v=y?[...a,y.markColumn]:[...a],C=[],M=[],O=new Set([...T.warnings??[],...[...R.values()].flatMap(K=>K.warnings)]),N=new ma(e.name,Rt(n)),U=K=>{N.addRow(),C.push(K)};for(let K of T.rows){let k=y?String(K[y.column]??""):"",G=y?{...K,[y.markColumn]:y.defaultValue}:K;U(G),M.push({row:K,path:y?[k]:[]})}let w=JE(e.name,g),D=w.source.cteName===null?void 0:E.get(w.source.cteName);if(!D)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=qE(w.self,w.selfField,l)??qE(w.source,w.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${w.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let I=new Map;for(let K of D.rows){let k=String(K[w.sourceField]??""),G=Mu(k,A.semantics),j=I.get(G);j?j.push(K):I.set(G,[K])}let x=I.has(Mu("",A.semantics)),L=0,F=!1;for(;M.length>0;){L++;let K=[];for(let k of M){let G=String(k.row[w.selfField]??"");!F&&G===""&&x&&(O.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${w.selfField} = ${w.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=I.get(Mu(G,A.semantics))??[];for(let ne of j){let Pe=String(ne[w.sourceField]??"");Ct("=",G,Pe,A.semantics)&&N.addExpansion()}if(j.length===0)continue;let B=new Map(E);B.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let _=await lt(g,t,n,B,i,!0,!0);for(let ne of _.warnings??[])O.add(ne);let H=ju(_,a,s);H.rows.length>0&&N.observeDepth(L);for(let ne of H.rows){if(!y){U(ne),K.push({row:ne,path:[]});continue}let Pe=String(ne[y.column]??""),Gt=k.path.some(re=>Ct("=",re,Pe,b.semantics));U({...ne,[y.markColumn]:Gt?y.markValue:y.defaultValue}),Gt||K.push({row:ne,path:[...k.path,Pe]})}}M=K}let W={type:"SELECT",rows:C,columns:v,rowCount:C.length,warnings:[...O]};return le.set(W,P),W}async function Cc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Yt(e))return kt(jt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let u of e.ctes){let p;u.recursiveSpec?p=await MT(u,t,n,a,r):u.query.type==="SHOW_APPS"?p=await XR(t):u.query.type==="DESCRIBE"?p=await QR(u.query,t,r):u.query.type==="GENERATE_SERIES"?p=GR(u.query):p=await lt(u.query,t,n,a,r,!0);for(let c of p.warnings??[])s.add(c);a.set(u.name,{rows:p.rows,columns:p.columns,columnMeta:le.get(p),...u.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:u.query.columnAlias}:{}})}let l=await lt(e.query,t,n,a,r,o);return hc(l,[...s])}function GR(e){let t=Vo(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:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return le.set(n,new Map([[e.columnAlias,r]])),n}async function lt(e,t,n,r,i,o=!1,a=!1){if(a||await ja(e,t,r,i),e.type==="UNION"){let[u,p]=await Promise.all([lt(e.left,t,n,r,i,o,!0),lt(e.right,t,n,r,i,o,!0)]);return UR(u,p,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Ce||e.joins.some(u=>u.table.cteName!=null)))return kt(e,t,n,i,r,o,!1,"DERIVED");let l=await kT(e,t,n,r,i);return o&&le.set(l,await Mi(e,l.columns,t,i,r)),l}async function kT(e,t,n,r,i){await Ui(e,t,i,r);let o=vi.get(e),a=await dr(e,t,i,r),s=new Set,l=B=>{if(B.alias!==null||B.cteName===null)return B;let _=ue(B);return s.add(_),{...B,alias:_}};e={...e,from:l(e.from),joins:e.joins.map(B=>({...B,table:l(B.table)}))};let u=new Set;for(let B of[e.from,...e.joins.map(_=>_.table)]){let _=ue(B);if(_!==null){if(u.has(_))throw new Error(`ArgumentError: effective alias ${_} is used by multiple tables.`);u.add(_)}}let p=B=>{let _=r.get(B);if(!_)throw new Error(`ArgumentError: materialized source ${B} is not available.`);return _};for(let B of[e.from,...e.joins.map(_=>_.table)])B.cteName!==null&&p(B.cteName);let{resolver:c}=await wn(e,t,i,r,AR(e)),d=SR(e,c,"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([Bi(e.where,t,n,i,R,r),Bi(e.having,t,n,i,R,r),ZR(e,t,n,i,R,r)]);let m=ye(e.where,c);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(m)}).`);let g=await xi(e,t,i,r),h=ts(e)?(e.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:Ie(e.where)}):null,T=Sc(e,n,h),y=T.effectiveOptions,[b,P,v]=await Promise.all([us(e,t,i),wc(e,t,i),CR(e,t,i,r)]),C=Nc(e,P),M=await Vi(e,t,i,r,mt(e.having)||Ac(e)),O=TR(e,M),N=ls(e,b)??dn(e,b);rl(N);let U=t,w=await tm(e.columns,t,y,i,R,r),D=Promise.resolve(g);D.catch(()=>{});let A=new Map,I=new Map;if(e.from.cteName!=null){let B=p(e.from.cteName);A.set(e.from.alias,B.rows.map(XE)),I.set(e.from.alias,B.columns)}else{let B=await Vu(T,()=>Oi(e,e.from,U,f,E,!0,y.onLimitReached??"error",R,N.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,B)}let x=e.joins.map(B=>Vu(T,async()=>{if(B.table.cteName!=null){let _=p(B.table.cteName);A.set(B.table.alias,_.rows.map(XE)),I.set(B.table.alias,_.columns)}else{let _=B.table.alias?N.joinConditions.get(B.table.alias)??null:null,ne=await BR(e,B,A,U,f,E,y.onLimitReached??"error",R,i,r,_,a)??await Oi(e,B.table,U,f,E,!1,y.onLimitReached??"error",R,_,!0,a);A.set(B.table.alias,ne)}}));await Promise.all(x);let{optionOrders:L,sortKinds:F,semantics:W}=await D,K=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:k,columns:G}=Ru({tables:A,stmt:e,scalarCache:w,optionOrders:L,sortKinds:F,orderSemantics:W,fieldTypeResolver:C.row,fieldSemanticsResolver:M,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:O,aggregateSortKindResolver:v,appliedKlikes:N.appliedKlikes,sourceColumns:K,tableColumns:I,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),j=await Oc(e,k,G,t,i);return hc({type:"SELECT",rows:k,columns:j,rowCount:k.length,warnings:[...R]},d)}async function Oc(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await ee(e.from.appId,r,i);return jf(o,e.from.subtableCode,()=>ds(e.from.appId,r,i))}function XE(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Oi(e,t,n,r,i,o,a,s,l=null,u=!0,p,c=""){let d=pn(e,t,p),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),fc(n,t.appId),Uf(e,t,o))throw new Fe(`\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${g} \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 g=o&&u?Qp(e,t.appId).query:"",h=[l!==null?Y(l):"",c].filter(P=>P!==""),T=h.length>1?h.map(P=>`(${P})`).join(" and "):h[0]??"",y=g&&T?`(${g}) and (${T})`:g||T;return(await nt(n.getRecords,t.appId,y,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&u&&e.joins.length===0&&e.where!==null&&Pc.get(e)?.capability==="EXACT_PUSHDOWN"&&!bt(e.where)?Y(e.where):"",m=(await nt(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return fE(m,t.subtableCode)}var KR=50;function xT(e){let t=he(e);return t!==null?JSON.stringify(t):e}function zu(e){return JSON.stringify(e)}function Ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?xT(n):n))}function Hi(e,t){let n=e.raw.get(zu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Ln(t,e.numericKey))}async function Yi(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),u={raw:new Map,normalized:new Map,numericKey:l},p=(m,g,h)=>{let T=m.get(g);(T===void 0||h>T)&&m.set(g,h)},c=(m,g)=>{p(u.raw,zu(m),g),l.some(Boolean)&&p(u.normalized,Ln(m,l),g)},d=new Set,f=[],R=new Set;for(let m of n){let g=zu(m);R.has(g)||(R.add(g),m.some(h=>h==="")?f.push(m):d.add(m[0]))}let E=["$id",...t];for(let m of ji([...d],KR)){let g=`${t[0]} in (${m.map(ki).join(",")})`,h=await ke(r.getRecords,e,g,E,{maxRecords:a,parallel:s});for(let T of h){let y=Number(T.$id?.value);Number.isFinite(y)&&c(t.map(b=>Lc(T[b]?.value)),y)}}for(let m of f){let g=t.map((T,y)=>`${T} = ${ki(m[y])}`).join(" and "),h=await ke(r.getRecords,e,g,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(m,FT(h))}return u}function FT(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 Lc(e){return typeof e=="string"?e:e==null?"":String(e)}function ki(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ji(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var GT=6,Ja=ga*GT;async function BR(e,t,n,r,i,o,a,s,l,u,p=null,c,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,m,g;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,g=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,g=t.on.right.field;else return null;let h=n.get(E);if(!h)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ue(A)===E),y=(await ee(t.table.appId,r,l)).find(A=>A.code===fe(t.table,g)),b=y?_e(y,t.table.appId):qe(g),P;if(T?.cteName!==null&&T?.cteName!==void 0)P=u?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await ee(T.appId,r,l)).find(I=>I.code===fe(T,m));P=A?_e(A,T.appId):qe(m)}let v=[],C=!1;for(let A of h){let I=A[m]?.value,x=Lc(I);(I==null||x.length===0)&&(C=!0),v.push(x)}let M=Xl({fieldType:b?.fieldType,sourceSemantics:P?.semantics,sourceRowCount:h.length,values:v,hasEmptyValue:C,maxInKeys:Ja});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \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 ${Ja} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let O=Jl(M,g,ki);if(O.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 ${Ja} \u4EF6\uFF09\u3002`),null;let N=pn(e,t.table,c),U=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),fc(r,t.table.appId)},w=[],D=new Set;for(let A of O){let x=[p!==null?Y(p):"",d].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,A),L=await nt(r.getRecords,t.table.appId,x,N,{parallel:o,maxRecords:i,onLimit:a,onTruncate:U});for(let F of L.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;D.has(W)||(D.add(W),w.push(F))}}return w}var qu=new Map,Ju=new Map,Xu=new Map,Qu=new Map,Zu=new Map,ec=new Map;function _c(e){qu.delete(e),Ju.delete(e),Xu.delete(e),Qu.delete(e),Zu.delete(e),ec.delete(e)}function Rr(e,t,n){return e.get(t)?.get(n)}function mr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Rr(Qu,n,e);if(r)return r;let i=t.getFields(e);return mr(Qu,n,e,i),i}async function St(e,t,n){let r=Rr(ec,n,e);if(r)return r;let i=t.getNumberPrecision(e);return mr(ec,n,e,i),i}async function ds(e,t,n){let r=Rr(Zu,n,e);if(r)return r;let i=t.getProcessStatuses(e);return mr(Zu,n,e,i),i}async function Dc(e,t,n){let r=await ds(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function ve(e,t,n){let r=Rr(qu,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return mr(qu,n,e,o),o}async function tc(e,t,n){let r=Rr(Ju,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return mr(Ju,n,e,o),o}async function KT(e,t,n){let r=await tc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function QE(e,t,n){let r=Rr(Xu,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return mr(Xu,n,e,o),o}function BT(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 $T(e,t,n,r){let i=BT(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let d=await ee(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(c.field);return E?_e(E,e.from.appId):void 0}let f=o.find(E=>ue(E)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let R=s.get(f.appId)?.get(fe(f,c.field));return R?_e(R,f.appId):qe(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(fe(e.from,c.field));return f?_e(f,e.from.appId):qe(c.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),g=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return g?[g]:[]}let R=s.get(f.appId)?.get(fe(f,c.field)),E=R?_e(R,f.appId):qe(c.field);return E?[E]:[]});return d.length>1&&a.add(c.field),d.length===1?d[0]:void 0},u=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let d;if(c.type==="FIELD")d=l(De(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL")d=Q("number");else if(c.type==="WINDOW_COL")d=_R(c,l);else if(c.type==="GROUPING_COL")d=Q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")d=Q("string");else if(c.type==="STRFUNC_COL")d=Cn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")d=ze();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(R=>Er(R.result,l));c.expr.elseResult&&f.push(Er(c.expr.elseResult,l)),d=ps(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(d=On(c.arg,l)):d=c.func==="GROUP_CONCAT"?Q("string"):Q("number"));d?.semantics&&u.set(c.alias,d.semantics)}let p=new Map;for(let c of i){let d=u.get(c)??l(De(c))?.semantics;if(!d){let R=De(c);R.tableAlias===null&&a.has(R.field)&&p.set(c,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await ds(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}p.set(c,f)}return p}async function xi(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([WT(e,t,n),VT(e,t,n),$T(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function WT(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 tc(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await tc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function VT(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 QE(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await QE(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function $R(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 HT=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||HT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function ut(e,t,n,r){let i=await ee(e,n,r);return YT(e,t,i),i}async function xt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?St(e,r,i):void 0}function _n(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),u=o[s]?.value??"",p=Ke(u,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(u)&&u.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:c?u:p.value}}})}async function jT(e,t,n,r,i){let o=await ut(e.appId,e.fields,t,r),a=await ni({statement:e,fieldInfos:o,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>St(e.appId,t,r)});return II(e,a,o)}async function zT(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await WR(e,t,n,r,i);return bI(e,a,o)}async function WR(e,t,n,r,i){let o=await ut(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=qR(e),l=new Set;for(let m of s){let g=Ln(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(g))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(g)}let u=await Yi(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>Hi(u,m)),c=new Map,d=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of ji(d,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of g.records){let T=Number(h.$id?.value);Number.isSafeInteger(T)&&T>0&&c.set(T,h)}}let R=p.map((m,g)=>({sourceRowIndex:g,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),E=await Pf({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>St(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function qT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await ut(e.appId,e.fields,t,r),o=await ni({statement:e,fieldInfos:i,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),loadNumberPrecision:()=>St(e.appId,t,r)}),a=Hl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:fs(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await Df(o,t,a);return{...s,diagnostic:He(a,s)}}async function JT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await WR(e,t,n,r,1),o=Yl(i);if(n.confirm){let s=fs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ge("UPDATE",i.guards.parentRows)}let a=await vf(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:He(o,a)}}function XT(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 fs(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=XT(n?Va(n):[],r?Va(r):[]),a=QT(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),u=o.reduce((d,f)=>d+f.appendRows,0),p=o.reduce((d,f)=>d+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:u,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,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{...c,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=Va(n),f=Va(r);return{...c,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 c}function Va(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Nn(t,"APPEND"),r=Nn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Nn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function QT(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:Nn(n,"ADD"),removedValues:Nn(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 vc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return jT(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return zT(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await zR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Uc(e,t,n,r,i,o)).result}var Fi=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Uc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",u=e.type==="UPDATE"?["$id",...e.assignments.map(D=>D.field)]:[...e.fields];if(new Set(u).size!==u.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(D=>D.field):e.fields,c=await ut(e.appId,p,t,r);e.type==="UPDATE"&&await cr(e,t,r);let d=new Map(c.map(D=>[D.code,D])),f=await xt(e.appId,p,c,t,r),R=dt(c,u),E=EE(R),m=(await ZT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((D,A)=>D.rowNumber-A.rowNumber),g=m.filter(D=>D.mode==="update"),h=e.type==="UPDATE"?nI:e.type.startsWith("UPSERT")?D=>rI(D,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??h,y=g.length>0&&T!==void 0,b=new Map;if(y){kl(g,p,c);let D=await T({appId:e.appId,candidates:g,fields:E}),A=new Map;for(let I of g){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let x=D.get(I.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let L=RE(x,I.record??{});A.set(I.rowNumber,L)}f===void 0&&[...A.values()].some(I=>mn(I,R))&&(f=await St(e.appId,t,r));for(let I of g){let x=A.get(I.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);b.set(I.rowNumber,gn(x,R,f,o,I.rowNumber,l))}}let P=xl(m,l,u,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!y}),{errors:v,invalidRows:C,invalidRowNumbers:M}=P;if(y){let D=new Map(P.candidateResults.map(A=>[A.rowNumber,A]));v=[],M=new Set;for(let A of m){let I=D.get(A.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...I.preErrors,...I.builtInErrors,...I.checkErrors];v.push(...F),F.length>0&&M.add(A.rowNumber);continue}let x=b.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let L=mE({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:I.preErrors,postImageErrors:x.errors,checkErrors:I.checkErrors});A.record=L.writeRecord,v.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}C=M.size}let O=[...u,...nr],N={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-C,invalidRows:C,errorCount:v.length,columns:O,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let D of u){if(D==="$id"){U.set(D,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let A=d.get(D);A&&U.set(D,_e(A,e.appId))}let w=new Set(["$err_statement","$err_row"]);for(let D of nr)U.set(D,Q(w.has(D)?"number":"string"));return vn.set(N,U),{result:N,candidates:m,invalidRowNumbers:M,columnMeta:U}}async function nc(e,t,n,r,i,o){let a=await Uc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");At(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Je,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Fi(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let u=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(u.length,R))throw new ge(R,u.length)}let p={affectedRows:u.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<u.length;E+=100){let m=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...p}}if(e.type==="UPDATE"){let R=u.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,...p}}let c=u.filter(R=>R.mode==="create"),d=u.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<c.length;R+=100){let E=await t.postRecords({app:e.appId,records:c.slice(R,R+100).map(m=>m.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,...p}}async function ZT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return tI(e,n,r,i,o,s);let l,u,p,c,d;if(e.type==="INSERT"||e.type==="UPSERT")ZE(e,e.fields),d=new Map(e.fields.map(y=>[y,a.get(y)?.fieldType??""])),Dn(e,d),l=e.values.map(y=>y.map((b,P)=>b.type==="CASE_VALUE"?en(b.expr,{},a.get(e.fields[P])?.fieldType):b));else{let y=await kc.materialize(e,n,r,i,o,[...a.values()]),b=(e.checkGroups?.length??0)>0;if(y.columns.length<e.fields.length||!b&&y.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${y.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(b&&new Set(y.columns).size!==y.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");ZE(e,y.columns),u=y.rows,p=y.importPresence,c=y.importRowErrors;let P=y.columnMeta;d=new Map(y.columns.map(v=>{let C=P?.get(v),M=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,M]})),Dn(e,d),l=y.rows.map(v=>y.columns.map(C=>v[C]??""))}let f=l.map((y,b)=>({rowNumber:b+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((P,v)=>p&&!p[b]?.has(P)?[]:[[P,y[v]]])),preErrors:[...c?.[b]??[]],record:{},evaluationRow:u?.[b]??Object.fromEntries(e.fields.map((P,v)=>[P,pt(y[v])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;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 R=new Map([...a].map(([y,b])=>[y,b.fieldType])),E=f.map(y=>e.keyFields.map(b=>pt(y.payload.get(b)))),m=e.keyFields.map(y=>R.get(y)==="NUMBER"),g=new Map;for(let y of E){let b=Ln(y,m);g.set(b,(g.get(b)??0)+1)}let h=ss.has(e);if(h&&[...g.values()].some(y=>y>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 T=await Yi(e.appId,e.keyFields,E,n,r,R);return f.forEach((y,b)=>{let P=E[b],v=Hi(T,P);y.mode=v===void 0?"create":"update",v!==void 0&&(y.targetId=v),e.keyFields.forEach((C,M)=>{P[M]===""&&y.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(g.get(Ln(P,m))??0)>1&&y.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 Mc(e){return e.checkGroups?er(e.checkGroups):[]}function ZE(e,t){let n=new Set(t);for(let r of Mc(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 eI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Dn(e,t){if(e.checkGroups)for(let n of jd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(eI.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 tI(e,t,n,r,i,o){if(e.from)return oI(e,e.from,t,n,r,i,o);await em(e.assignments,t,n,r);let a=await ve(e.appId,t,r),s=VR(e,a);Dn(e,rc(a,e.appId));let l,u=new Map,p=new Map;if(na(e)){let c=Al(e),d=[...new Set([...c.fields,...s,...o??[]])],f=await nt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(f.records),u=p,l=Tl(e,f.records,a).flatMap(R=>R.records)}else{let c=jr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await nt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(f.records),u=p,l=zr(e,[...u.keys()],a).flatMap(R=>R.records)}else if(o){let d=await nt(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(d.records),l=zr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await ha(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=zr(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((c,d)=>c.id-d.id).map((c,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:iI(u.get(c.id),e.appId),evaluationFieldTypes:rc(a,e.appId)}))}function Xa(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 nI(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 rI(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 Fe(`\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 ji(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 u=l.$id?.value,p=Number(u);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(u)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function VR(e,t){if(e.from)return[];let n=new Set;for(let r of Mc(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 iI(e,t){if(!e)return{};let n=vt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function rc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function oI(e,t,n,r,i,o,a){let s=await mm(e,t,n,i,o);Dn(e,s.evaluationTypes);let l=await HR(e,t,n,r,i,o,a),u=await ve(e.appId,n,i),p=wl(e,l,u).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Xa(l.map(f=>f.target)):new Map;return p.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:uw(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var aI=KR,sI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function HR(e,t,n,r,i,o,a){let s=await lI(e,t,n,i),l=await mm(e,t,n,i,o),u=[...new Set(e.assignments.filter(b=>b.value.type==="SOURCE_FIELD").map(b=>b.value.type==="SOURCE_FIELD"?b.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...u])],c=await uI(t,p,u,n,r,i,o),d=new Map,f=new Map;for(let b of c){if(!Object.prototype.hasOwnProperty.call(b,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let P=eR(b[t.joinKeyField],s,"source");if(d.has(P))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${P}.`);d.set(P,b),f.set(P,String(b[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...PI(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":jr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],h=new Set,T=0;for(let b of ji([...f.values()],aI)){let P=`${t.targetJoinField} in (${b.map(ki).join(",")})`,v=m?`(${P}) and (${m})`:P,C=await nt(n.getRecords,e.appId,v,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=C.records.length,T>R)throw new Fe(`\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 M of C.records){let O=M.$id?.value;if(typeof O!="string"||O==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(O)||(h.add(O),g.push(M))}}let y=[];for(let b of g){let P=b[t.targetJoinField]?.value,v=eR(P,s,"target");if(v===null)continue;let C=d.get(v);C!==void 0&&y.push({target:b,source:C})}return y}async function lI(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function uI(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await ve(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(sI.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await nt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>vt(p,null))}function eR(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=he(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function zi(e,t,n,r,i){let o=await Uc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];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)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<c.length;d+=100)await t.putRecords({app:e.appId,records:c.slice(d,d+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),u=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let d=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=d.ids.length}for(let c=0;c<u.length;c+=100)await t.putRecords({app:e.appId,records:u.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:u.length}}async function cI(e,t,n,r){if(e.applyBlocks?.length)return qT(e,t,n,r);if(e.checkGroups?.length)return zi(e,t,n,r);if(e.subtableCode)return LI(e,t,n,r);let i=await ut(e.appId,e.fields,t,r),o=await xt(e.appId,e.fields,i,t,r),a=await ve(e.appId,t,r),s=ta(e,a);_n(s.flatMap(u=>u.records),e.fields,i,o);let l=[];for(let u of s){let p=await t.postRecords(u);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function pI(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ce},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function YR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=SE(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!k.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 c=e.targets,d=await ee(e.appId,t,r),f=c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),R=d.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await St(e.appId,t,r):void 0,E=await Ga(o,new Map),m=e.source.kind==="JSON"?NE(e.source,E,c,n.maxRecords??1e4):PE(e.source,E,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=_E(m,c,d,R,g);if(e.source.kind==="CSV")return dI(e,m,h,d,t,n,i);Pu(h,e.rejectLimit);let T=[...new Set(c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],y=Ou(h.errors,T),b=[...T,...Cu],P=h.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-P,invalid:P,mutationCandidates:h.parents.filter(k=>k.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:g,validatedRows:h.parents.length,validRows:h.parents.length-P,invalidRows:P,errorCount:y.length,columns:b,errors:y,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&At(i,e.validationErrorTable,b,y,n.tempTableMaxRows??Je,new Map),e.validateOnly)return C;if(vE(m),h.errors.length>0&&!e.onErrorSkip){let k=h.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");At(i,e.errorTable,b,y,n.tempTableMaxRows??Je,new Map)}let M=h.parents.filter(k=>k.valid),O=new Map(d.map(k=>[k.code,k.fieldType])),N=M.map(()=>{});if(e.keyFields){for(let _ of e.keyFields)if(!e.fields.includes(_))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${_}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(_=>O.get(_)==="NUMBER"),G=new Set,j=M.map(_=>e.keyFields.map(H=>String(_.top[H]?.value??"")));for(let _ of j){let H=Ln(_,k);if(G.has(H))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(H)}let B=await Yi(e.appId,e.keyFields,j,t,n,O);j.forEach((_,H)=>{N[H]=Hi(B,_)})}let U=c.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),w=new Map,D=N.filter(k=>k!==void 0);for(let k of ji([...new Set(D)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let j of G.records){let B=Number(j.$id?.value),_=Number(j.$revision?.value);Number.isFinite(B)&&w.set(B,{id:B,...Number.isFinite(_)?{revision:_}:{},record:j})}}let A=UE(M,N,w),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some(G=>G.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new ge(e.keyFields?"UPDATE":"INSERT",A.length)}let x=k=>new Map(Object.entries(k).map(([G,j])=>[G,j.value])),L=k=>DE(x(k.top),new Map([...k.subtables].map(([G,j])=>[G,j.map(B=>({values:x(B)}))]))),F=A.filter(k=>k.mode==="INSERT"),W=A.filter(k=>k.mode==="UPDATE"),K=[];for(let k=0;k<F.length;k+=100){let G=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(L)});K.push(G.ids)}for(let k=0;k<W.length;k+=100)await t.putRecords({app:e.appId,records:W.slice(k,k+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:L(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:K.flat().length,updatedCount:W.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:K,insertedCount:K.flat().length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return fI(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:pI(),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};ss.set(s,l);let u=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await vc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&At(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Je,vn.get(c)??new Map),u(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",nc(s,t,n,r,i,1));return u(c)}let p=await(s.type==="UPSERT_SELECT"?Kc(s,t,n,r,i):xc(s,t,n,r,i));return u(p)}async function dI(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");ME(t.records);let s=t.records.map(w=>w.recordNumberSourceValue??""),l=Du(s,e.recordNumberSourceHeader),u=[...e.replaceSubtables],p=[...new Set(r.filter(w=>!w.inSubtable&&w.fieldType==="SUBTABLE").map(w=>w.code))],c=await ke(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let w of c){let D=Number(w.$id?.value),A=Number(w.$revision?.value);if(Number.isFinite(D)){d.set(D,{id:D,...Number.isFinite(A)?{revision:A}:{},record:w});for(let I of p){let x=w[I]?.value;if(Array.isArray(x)){for(let L of x)if(L.id){let F=f.get(L.id)??[];F.push({parentId:D,table:I}),f.set(L.id,F)}}}}}let R=l.normalized.map(w=>w===null?void 0:Number(w)),E=n.parents.map((w,D)=>{let A=[...w.errors];for(let x of l.errors[D])A.push({operation:"UPDATE",parentRow:w.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[D].top});let I=R[D];return I!==void 0&&!d.has(I)&&A.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:A.length===0,errors:A}}),m=kE(t.records,E,R,d,f),g=m.flatMap(w=>[...w.errors]),h=new Set(m.filter(w=>!w.valid).map(w=>w.parentRow)),T={...n,parents:E,errors:g,invalidParentRows:h};Pu(T,e.rejectLimit);let y=m.filter(w=>w.valid),b=m.flatMap(w=>w.tables),P=(w,D)=>b.filter(A=>A.table===w).reduce((A,I)=>A+Number(I[D]),0),v=Object.fromEntries(u.map(w=>[w,{existingRows:P(w,"existingRows"),inputRows:P(w,"inputRows"),updateRows:P(w,"updateRows"),addRows:P(w,"addRows"),deleteRows:P(w,"deleteRows"),rowIdNotFound:P(w,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:y.length,insertedParents:0,updatedParents:y.length,hasDeletes:y.some(w=>w.tables.some(D=>D.deleteRows>0)),totalDeleteRows:y.flatMap(w=>w.tables).reduce((w,D)=>w+D.deleteRows,0),rowIdNotFound:y.flatMap(w=>w.tables).reduce((w,D)=>w+D.rowIdNotFound,0),invalidParents:h.size,parents:y.map(w=>({parentRow:w.parentRow,mode:"UPDATE",targetId:w.targetId,tables:w.tables}))},M=[...new Set(e.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children))],O=Ou(g,M),N=[...M,...Cu];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&At(a,e.validationErrorTable,N,O,o.tempTableMaxRows??Je,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-h.size,invalidRows:h.size,errorCount:O.length,columns:N,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:y.length,invalid:h.size,mutationCandidates:y.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let w=g[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.");At(a,e.errorTable,N,O,o.tempTableMaxRows??Je,new Map)}if(y.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(y.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ge("UPDATE",y.length)}let U=w=>new Map(Object.entries(w).map(([D,A])=>[D,A.value]));for(let w of y){let D=Lu(U(w.top),new Map([...w.subtables].map(([A,I])=>[A,I.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:U(x.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:y.length,affectedRows:y.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function fI(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 ut(e.appId,e.fields,n,i),s=await xt(e.appId,e.fields,a,n,i),l=await Ga(t,new Map),u=wu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=u.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=Du(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(c.normalized.filter(C=>C!==null))];for(let C=0;C<f.length;C+=100){let M=f.slice(C,C+100),O=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let N of O.records){let U=N.$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"])),m=u.rows.map((C,M)=>{let O=c.normalized[M],N=[...u.importRowErrors?.[M]??[],...c.errors[M]];return O!==null&&!d.has(O)&&N.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${O} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...O!==null&&d.has(O)?{targetId:Number(O)}:{},payload:new Map([[e.recordNumberSourceHeader,p[M]],...e.fields.map(U=>[U,C[U]??""])]),preErrors:N,record:{},evaluationRow:C,evaluationFieldTypes:E}}),g=[e.recordNumberSourceHeader,...e.fields],h=xl(m,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),T=[...g,...nr],y={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:T,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(y,{importAudit:u.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&At(o,e.validationErrorTable,T,h.errors,r.tempTableMaxRows??Je,new Map),y}if(!e.onErrorSkip&&h.invalidRows>0){let C=h.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(At(o,e.errorTable,T,h.errors,r.tempTableMaxRows??Je,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new Fi(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,y)}let b=m.filter(C=>!h.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(b.length,"UPDATE"))throw new ge("UPDATE",b.length);let P=b.map(C=>({id:C.targetId,record:C.record}));for(let C=0;C<P.length;C+=100)await n.putRecords({app:e.appId,records:P.slice(C,C+100)});let v={type:"UPDATE",updatedCount:P.length,...e.onErrorSkip?{affectedRows:P.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:u.importAudit}),v}async function EI(e,t,n,r,i,o){let a=ss.get(e);if(!a){let E=i&&i.size>0?await lt(e.select,t,n,i,r,!0):await kt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:le.get(E)}}let s=await Ga(a.handle,a.cache),l=n.maxRecords??1e4,u=new Map((o??[]).map(E=>[E.code,E])),p=e.fields.map(E=>({code:E,fieldType:u.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Iu(a.source,s,p,l):wu(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let d=xE(a.source.projection),f=new Map(i??[]);f.set(_u,c);let R=await lt(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:le.get(R)}}var kc={materialize:EI};function jR(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 xc(e,t,n,r,i){if(e.checkGroups?.length)return zi(e,t,n,r,i);let o=await ut(e.appId,e.fields,t,r),a=await xt(e.appId,e.fields,o,t,r),s=await kc.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(jR(s),u.length!==e.fields.length){let f=u.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${u.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 ge("INSERT",l.length);let p=await ve(e.appId,t,r),c=l.map((f,R)=>{let E={};return e.fields.forEach((m,g)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let h=f[u[g]]??"";E[m]={value:$R(h,p.get(m))}}),E});c.forEach(f=>_n([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<c.length;f+=100){let R=c.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 ic(e,t,n,r,i){if(e.applyBlocks?.length)return zR(e,t,n,r);if(e.checkGroups?.length&&st(e.where)){let R=await ut(e.appId,e.assignments.map(m=>m.field),t,r);await xt(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await ve(e.appId,t,r);return VR(e,E),Dn(e,rc(E,e.appId)),await cr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return zi(e,t,n,r,i);if(e.subtableCode)return await cr(e,t,r),_I(e,t,n,r);let o=await ut(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await xt(e.appId,a,o,t,r);if(await cr(e,t,r),st(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return NI(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await em(e.assignments,t,n,r);let u=await ve(e.appId,t,r);if(na(e)){let R=Al(e),m=(await nt(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=Tl(e,m,u);if(_n(g.flatMap(h=>h.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new ge("UPDATE",m.length);for(let h of g)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let p=jr(e),d=(await ha(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=zr(e,d,u);if(_n(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ge("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function zR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!wt(e.where))return RI(e,t,n,r,i);let o=await ee(e.appId,t,r),a=_t(e,o),s=ia(e,o),l=Ll(e),u=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(u.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(u.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(u.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);la(u.records[0]);let c=pf({statement:e,snapshot:u.records[0],fieldInfos:o,metadata:a}),d=dt(o,e.assignments.map(b=>b.field)),f=mn(c.postImage,d)?await St(e.appId,t,r):void 0,R=gn(c.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=Xe(n.dmlMaxRows,"dmlMaxRows",Ft),m=Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),g=c.parentRows>E||c.changedSubtableRows>m;if(e.validateOnly){let b=ii({plans:[c],records:Qr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:E,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}}),P={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:Gi(b.branches[0]),guards:Ki(b.branches[0]),deletedRows:{total:c.tables.reduce((v,C)=>v+C.deletedRows,0),parentRows:c.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:b};return vn.set(P,Es(R.columns,o,e.appId)),P}if(c.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${E}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=aa(c,R.normalizedRecord),T=Qr(h),y=ii({plans:[h],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:E,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}});if(n.confirm){let b=fs(y,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:b,applyDiagnostic:y}))throw new ge("UPDATE",c.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:He(y,{successfulChunks:1,successfulParents:c.parentRows})}}async function RI(e,t,n,r,i){let o=Xe(n.dmlMaxRows,"dmlMaxRows",Ft),a=Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),s=await ee(e.appId,t,r),l=_t(e,s),u;if(is(e))u=await hI(e,t,n,s,r);else{let f=ia(e,s),R=jr(e).query,E=o+1;u=await ke(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&u.length>o)throw new Error(`ArgumentError: APPLY parent rows (${u.length}) exceed dmlMaxRows (${o}).`);let p=await da({statement:e,snapshots:u,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>St(e.appId,t,r)});if(e.validateOnly)return wI(e,p,s);bp("phase15b",e);let c=ii(p);if(n.confirm){let f=fs(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new ge("UPDATE",p.guards.parentRows)}let d=await _f(p,t,c);return{...d,diagnostic:He(c,d)}}function is(e){return(e.applyBlocks?.length??0)>0&&!wt(e.where)&&(Wt(e.where)||Ie(e.where))}function mI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&is(t)&&Ie(t.where)}var gI=`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 m){d+=m[E];continue}E!=="u"&&Ut(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||Ut("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)o();let h=Number.parseInt(g,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Ut("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let b=0;b<4;b++)o();let y=Number.parseInt(T,16);(y<56320||y>57343)&&Ut("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(h-55296<<10)+y-56320)}else h>=56320&&h<=57343?Ut("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(h)}f||Ut("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let u=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(p){for(let d=0;d<p.length;d++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Ut(`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 Ba(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function $a(e){if(e.byteLength===0)throw new V("JSON source is empty.");let t=wE(IE(e)),n=0,r=(u,p=t[n])=>{throw new V(`JSON ${u} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(u,p)=>u.kind==="punct"&&u.value===p,o=u=>{let p=t[n];(p.kind!=="punct"||p.value!==u)&&r(`expected ${u}; found ${Ba(p)}`,p),n++},a=()=>{let u=t[n++];if(u.kind==="string")return u.value;if(u.kind==="number")return{kind:"number",lexeme:u.lexeme};if(u.kind==="literal")return u.value;if(u.kind==="punct"&&u.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Ba(c)}`,c);let d=c.value;p.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,c),o(":"),p.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(u.kind==="punct"&&u.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${Ba(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Ba(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 V("JSON source contains no records.");return l.forEach((u,p)=>{if(!(u instanceof Map))throw new V(`JSON record ${p+1} must be an object.`)}),l}var NS=new Set(["CHECK_BOX","MULTI_SELECT"]),bE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function At(e,t,n){throw new V(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function PS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function CS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&At(n,t.code,"boolean is not accepted."),PS(e)){t.fieldType==="NUMBER"&&At(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&At(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)||At(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&At(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||At(n,t.code,"unsupported value type."),!NS.has(t.fieldType)&&!bE.has(t.fieldType)&&At(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&At(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&At(n,t.code,"array elements must not contain duplicates."),bE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function wu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let i=$a(t.bytes);if(i.length>r)throw new V(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new V("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,u)=>{for(let d of l.keys())o.has(d)||At(u+1,d,"unknown key (not declared in INTO).");let p={},c=new Set;for(let d of n)l.has(d.code)&&(c.add(d.code),p[d.code]=CS(l.get(d.code),d,u+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function bu(e,t,n,r,i,o){let a=Ka(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new V(`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 V("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((g,h)=>[g,h]));for(let g of r)if(!l.has(g))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let u=new Map(i.map(g=>[g.code,g])),p=new Set(r);if(o&&p.has(o))throw new V("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],d=[],f=g=>a.rows.filter(h=>h[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,h]of a.columns.entries()){if(p.has(h)||h===o)continue;let T=u.get(h);if(T)c.push({column:h,reason:R(T),nonEmptyCells:f(g)});else if(e.ignoreUnknownColumns)d.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(g)});else throw new V(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let g of r){let h=u.get(g);if(!h)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${h.fieldType}).`)}let E=[];return{rows:a.rows.map(g=>{let h=[],T={};for(let y of r){let b=g[l.get(y)];try{T[y]=TE(b,u.get(y)?.fieldType,{cliKintone:!0})}catch(P){if(!(P instanceof Si))throw P;T[y]=b,h.push({field:y,code:P.code,message:P.message})}}return E.push(h),T}),columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:u.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(g=>g[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((u,p)=>[u,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Ti=(e,t,n)=>{throw new V(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function NE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let o=$a(t.bytes);if(o.length>r)throw new V(`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 V("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,u)=>{let p=u+1;for(let R of l.keys())a.has(R)||Ti(p,R,"unknown key (not declared in INTO).");let c=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 m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Ti(p,E,"object is not accepted for a top-level field."),c.set(E,m);continue}Array.isArray(m)||Ti(p,E,"subtable value must be an array."),f.add(E);let g=new Set(R.children),h=m.map((T,y)=>{T instanceof Map||Ti(p,E,`childRow=${y+1} must be an object.`);let b=T;for(let P of b.keys())g.has(P)||Ti(p,P,`unknown child key in subtable ${E} at childRow=${y+1}.`);if(s++,s>i)throw new V(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:y+1,values:b}});d.set(E,h)}return{rowNumber:p,top:c,subtables:d,replacementTables:f}})}}function PE(e,t,n,r,i,o){let a=Ka(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new V('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 V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),u=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of u){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new V(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new V(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new V(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(p.length>=i)throw new V(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,d[s.get(m.field)]])),subtables:new Map(u.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},p.push(c)}else if(c){for(let m of l){let g=d[s.get(m.field)];if(g!==""&&g!==c.top.get(m.field))throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=d[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new V(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of u){let g=d[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(y=>[y,d[s.get(y)]]));if(g===""&&[...h.values()].every(y=>y===""))continue;let T=c.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:h})}}),p.length===0)throw new V("CSV has no parent rows.");return{records:p}}var OS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),LS=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Cu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function _E(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)CE(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)CE(E,R.get(E),d.subtableCode)}let u=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>_S(d,s,l,o,a,r,i,u)),c=p.flatMap(d=>[...d.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:u}}function _S(e,t,n,r,i,o,a,s){let l=[],u={};for(let d of t)e.top.has(d.field)&&Pu(e.top.get(d.field),r.get(d.field),o,u,d.field,l,Nu(e,a,d.field));let p={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||OE(d,o,p,l,Nu(e,a,d.code));let c=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 m=l.length,g={},h=i.get(d.subtableCode);for(let T of d.children){let y=h.get(T),b=Nu(e,a,T,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?Pu(E.values.get(T),y,o,g,T,l,b):OE(y,o,g,l,b)}l.length===m?(f.validChildRows++,R.push(g)):f.invalidChildRows++}c.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function CE(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&&LS.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function OE(e,t,n,r,i){let o=Rn(e.defaultValue)?"":e.defaultValue;Pu(o,e,t,n,e.code,r,i,!Rn(e.defaultValue))}function Pu(e,t,n,r,i,o,a,s=!1){let l=DS(e),u=Ke(l,t,n);u.ok?r[i]={value:vS(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function DS(e){return LE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:LE(t)?t.lexeme:t):e}function LE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function vS(e,t){return OS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Nu(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 Ou=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Lu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":US(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 US(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 _u(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 DE(e,t){return _u(e,t,"DROP")}function vE(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 UE(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,u])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:u.length,addRows:u.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function MS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function ME(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 kE(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],u=l===void 0?void 0:r.get(l),p=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,d=[];for(let f of o.replacementTables){let R=MS(u.record,f),E=new Set(R.map(P=>P.id).filter(P=>!!P)),m=s.subtables.get(f)??[],g=o.subtables.get(f)??[],h=0,T=0,y=0,b=m.map((P,v)=>{let C=g[v]??{};return P.rowId&&E.has(P.rowId)?(h++,{rowId:P.rowId,record:C}):(P.rowId&&((i.get(P.rowId)??[]).some(O=>O.parentId!==l||O.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:P.rowId,subtable:f,subrow:P.childRowNumber,sourceRow:P.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${P.rowId}`,sourceValues:P.values}),y++),T++,{record:C})});c.set(f,b),d.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:h,addRows:T,deleteRows:R.length-h,rowIdNotFound:y})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:p.length===0,top:o.top,subtables:c,tables:d,errors:p}})}var Du="#__import_source";function xE(e){return{...e,from:{appId:0,alias:null,cteName:Du}}}function kS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function vu(e,t){let n=e.map(kS),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 xS="\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",Pn=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"}},le=new WeakMap;function sR(e){return le.get(e)}var vn=new WeakMap,ss=new WeakMap,FE=new WeakMap,FS=1,GS=1;function lR(e,t){if(t)return t;let n=FE.get(e);return n||(n=`client:${FS++}`,FE.set(e,n)),n}function dc(e){return`${e}\0inv:${GS++}`}async function fc(e,t,n={}){mt(n);let r=Date.now(),i=dc(lR(t,n.cacheContext));try{let o=xI(e,n.enableImport===!0),a=uR(),s=pR(t,a),l={aborted:!1},u=Rc(s,l,!BS(o)||ql(o)),p=await Ku(o,u,n,i);a.elapsedMs=Date.now()-r;let c={...dR(p,l),metrics:a};if(p.type==="SELECT"){let d=le.get(p);d&&le.set(c,d)}return c}finally{Dc(i)}}function uR(){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 cR=Symbol("limitMetricsSink");function Ec(e,t){let n=e[cR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function pR(e,t){return{[cR]: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 GE=Symbol("searchAbortFailClosed");function Rc(e,t,n){return n&&e[GE]?e:{...e,...n?{[GE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Pn;return i}}}function KS(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 BS(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function dR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(xS),{...e,warnings:[...n]}}async function KE(e,t,n){let r=await Wi(e,t,n);return Tu(r),r}async function Wi(e,t,n){return AE(e,{select:async r=>{let{resolver:i}=await wn(r,t,n);return ye(r.where,i)},dml:r=>IR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await wn(r,t,n);return Iu(r,i)},joinServerFunctionPlan:async r=>{await wn(r,t,n);let i=await us(r,t,n),o=ls(r,i);return o===null?null:(sr(o.joinPlan)&&wc.set(r,o),o.joinPlan)}})}async function Ku(e,t,n,r){let i=await Wi(e,t,r);e.type!=="EXPLAIN"&&Tu(i);let o=$u(e);if(o!==null&&!RI(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if($n("phase15b",e),fo("phase15b",e),tt(e),e.type!=="EXPLAIN"&&await tT(e,t,r),e.type==="IMPORT")return YR(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 oc(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 Uc(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 $S(e,t,n,r);case"SELECT":return kt(ju(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return MR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Oc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return uI(e,t,n,r);case"INSERT_SELECT":return Fc(e,t,n,r);case"UPSERT":return CI(e,t,n,r);case"UPSERT_SELECT":return Bc(e,t,n,r);case"UPDATE":return oc(e,t,n,r);case"DELETE":return PI(e,t,n,r);case"REORDER":return UI(e,t,n,r);case"SHOW_APPS":return XR(t);case"DESCRIBE":return QR(e,t,r);case"EXPLAIN":return WI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Xe(n.dmlMaxRows,"dmlMaxRows",Ft):Ft,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne):Ne,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions);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 gR(e,t,n,r)}}var mc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],gc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function yc(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 fR(e=!1){let t=e?gc:mc;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:$(n==="$id"||n==="$err_count"?"number":"string")}]))}async function $S(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ER(e,t,n,r)}async function ER(e,t,n,r){let i=await ee(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=$l(e,i),l=new Set(s.flatMap(L=>Kl(L.field))),u={present:Gl.filter(L=>l.has(L)),absent:Gl.filter(L=>!l.has(L))},p=e.checkGroups??[],c=er(p);for(let L of c){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.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`)}let d=new Map([...o].map(([L,F])=>[L,F.fieldType]));d.set("$id","RECORD_NUMBER"),Dn(e,d);let f=yc(e.where),R=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...c.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.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 E=s.some(L=>L.field.fieldType==="NUMBER")?await Tt(e.appId,t,r):void 0,m=L=>L.field==="$id"?te({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?te(o.get(L.field)):void 0),g=ye(e.where,m);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(g)}).`);let h=new Map([...o].map(([L,F])=>[L,F.fieldType])),T=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),y=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:tl(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:T,allowKlike:!1}),b=y===null?"":Y(y),v=(await ke(t.getRecords,e.appId,b,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:vt(L,null)})).filter(L=>e.where===null||se(e.where,L.flat,F=>d.get(F.field))),C=[],M=new Map,O=new Map,N=new Set,U=0,w=L=>{if(N.add(L.id),U+=1,e.summary){let K=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),k=O.get(K);k?k.$err_count=String(Number(k.$err_count)+1):O.set(K,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),W=M.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),L.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${L.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},D=s.filter(L=>!L.subtableCode),A=new Map;for(let L of s){if(!L.subtableCode)continue;let F=A.get(L.subtableCode)??[];F.push(L),A.set(L.subtableCode,F)}for(let L of v){for(let F of D){let W=L.record[F.field.code]?.value,K=Ke(W,F.field,E);K.ok||w({id:L.id,field:F.field.code,code:K.code,message:K.message,value:ei(W,F.field.fieldType)})}for(let[F,W]of A){let K=L.record[F]?.value;if(Array.isArray(K))for(let k=0;k<K.length;k++){let G=K[k];for(let j of W){let B=G.value?.[j.field.code]?.value,_=Ke(B,j.field,E);if(!_.ok){let H=pa(F,k,G);w({id:L.id,field:j.field.code,code:_.code,message:_.message,value:ei(B,j.field.fieldType),...H})}}}}for(let F of Qo(p,L.flat,W=>d.get(W.field)))w({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...O.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),C.push(L)}let x={type:"SELECT",columns:[...e.summary?gc:mc],rows:C,rowCount:C.length,validateStats:{errorRecords:N.size,errorCount:U,constraintMetadata:u}};return le.set(x,fR(e.summary===!0)),x}var Je=1e4;function St(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,u)=>l!==n[u])||!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||!No(i.semantics,r.semantics))return!1}return!0}var ur=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function RR(e,t,n={}){mt(n);let r=hc(e,n.enableImport===!0),i=dl(r);if(r.forEach(f=>fo("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>ks(f)||f.type==="UPSERT"&&VS(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=zl(r,n.variables),a=mR(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 oe(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=uR(),u=pR(t,l),p=Date.now(),c=n.timeoutMs!=null?p+n.timeoutMs:null,d=dc(lR(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],m=new Set,g=null;for(let h=0;h<r.length;h++){let T=i.statements[h],y={index:h,type:T.statementType};if(g){E.push({...y,status:"skipped",skippedReason:g}),m.add(h);continue}let b=T.dependsOn.find(P=>m.has(P));if(b!==void 0){let P=i.statements[b].tempTablesCreated[0]??`statement ${b}`;E.push({...y,status:"skipped",skippedReason:`dependency: ${P}`}),m.add(h);continue}if(c!==null&&Date.now()>=c){E.push({...y,status:"skipped",skippedReason:"timeout"}),m.add(h),g="timeout";continue}try{let P=c!==null?c-Date.now():null,v=s.confirm,C=v?{...s,confirm:(w,D,A)=>v(w,D,{statementIndex:h,statementCount:r.length,statementType:T.statementType,targetAppId:T.targetAppId,...A?.importDetail?{importDetail:A.importDetail}:{},...A?.applyDetail?{applyDetail:A.applyDetail}:{},...A?.applyDiagnostic?{applyDiagnostic:A.applyDiagnostic}:{}})}:s,M={aborted:!1},O=Rc(u,M,T.statementType!=="SELECT"&&T.statementType!=="UNION"&&T.statementType!=="WITH"||ql(r[h])),N=KS(O),U=await jS(HS(r[h],T,N.client,C,d,f,R,a),P,N.closeActive);U.result&&(U.result=dR(U.result,M)),E.push({...y,status:"success",...U})}catch(P){E.push({...y,status:"error",error:zS(P),...P instanceof Fi?{result:P.diagnostic}:{}}),m.add(h),P instanceof ur?g="timeout":P instanceof pr?g="assertion":T.statementType==="SET_VARIABLE"||T.statementType==="DECLARE_VARIABLE"?g="fail-fast":n.continueOnError||(g="fail-fast")}}return l.elapsedMs=Date.now()-p,{ok:E.every(h=>h.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{Dc(d)}}function VS(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 HS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let u=es(e,a);if(tt(u),await KE(u,n,i),u.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:u.expr.elements.map(p=>({type:"string",value:p.value}))});else if(u.expr.type==="SCALAR_SUBQUERY")try{let p=await yR(u.expr.query,n,r,i,o),c=u.expr.query.columns[0],d=c?.type==="ARITH_COL"||c?.type==="ARITH_AGG_COL"||c?.type==="WINDOW_COL"&&(c.windowKind===void 0||c.windowKind==="RANKING"||c.windowKind==="AGGREGATE"&&(c.aggFunc==="COUNT"||c.aggFunc==="SUM"||c.aggFunc==="AVG"))||c?.type==="AGGREGATE"&&(c.func==="COUNT"||c.func==="SUM"||c.func==="AVG"||c.func==="STDDEV_POP"||c.func==="STDDEV_SAMP"||c.func==="VAR_POP"||c.func==="VAR_SAMP"||c.func==="MEDIAN");if(c?.type==="AGGREGATE"&&c.func==="MODE"||c?.type==="WINDOW_COL"&&c.windowKind==="VALUE"||c?.type==="WINDOW_COL"&&c.windowKind==="AGGREGATE"&&(c.aggFunc==="MIN"||c.aggFunc==="MAX")){let R=(await Mi(u.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(p):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:p}:{type:"string",value:p})}catch(p){throw p instanceof In?new Error(`ArgumentError: ${p.message}`):p}else a.set(e.name,BE(u.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 u=r.variables??{};if(Object.prototype.hasOwnProperty.call(u,e.name))a.set(e.name,{type:"string",value:u[e.name]});else{let p=BE(e.default);a.set(e.name,{type:"string",value:p.type==="number"?p.raw??String(p.value):p.value})}return{}}let l=es(e,a);if($n("phase15b",l),fo("phase15b",l),tt(l),await KE(l,n,i),l.type==="VALIDATE"){let u=await ER(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&St(o,l.errorTable,u.columns,u.rows,r.tempTableMaxRows??Je,le.get(u)??fR(l.summary===!0)),{result:u}}if(l.type==="IMPORT")return{result:await YR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let u=await Uc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&St(o,l.validationErrorTable,u.columns,u.errors,r.tempTableMaxRows??Je,vn.get(u)??new Map),{result:u}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await rc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let u={...r,maxRecords:r.tempTableMaxRows??Je,onLimitReached:"error"},p=await YS(l.query,n,u,i,o);return o.set(l.name,{rows:p.rows,columns:p.columns,columnMeta:le.get(p)}),{tempTable:l.name,rowCount:p.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let u=l;pc.set(u,o);try{return{result:await Ku(u,n,r,i)}}finally{pc.delete(u)}}if(l.type==="ASSERT")return await gR(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await ut(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await Oc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Fc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Bc(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await oc(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Ku(l,n,r,i)}}async function YS(e,t,n,r,i){return e.type==="WITH"?Oc(e,t,n,r,i,!0):ut(e,t,n,i,r,!0)}async function jS(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new ur;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(u=>{l=setTimeout(u,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new ur)})()},t)})])}catch(a){throw a instanceof ur&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function zS(e){let t;if(e instanceof Rt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Uu(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:qS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Uu(r),message:r}}else{let n=String(e);t={code:Uu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Uu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function qS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function hc(e,t=!1){let n=new Qt(e).tokenize();return new Zt(n,{import:t}).parseStatements()}function JS(e,t){try{let n=hc(`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 mR(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)?JS(r.name,t[r.name]):r.default);return n}function BE(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:Yd(e.name)};case"STRING_FUNC":return{type:"string",value:me(e,{})};case"ARITH":{let t=Re(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 es(e,t){return Bu(e,t,!1)}function Bu(e,t,n){if(Array.isArray(e))return e.map(r=>Bu(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,Bu(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=XS(i);if(o.type==="SELECT"&&je(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&je(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 je(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function XS(e){if(e.type==="NOT"&&je(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&je(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(je(t,!1)||je(n,!1))return{type:"BOOLEAN",value:!1};if(je(t,!0))return n;if(je(n,!0))return t}else if(e.op==="OR"){if(je(t,!0)||je(n,!0))return{type:"BOOLEAN",value:!0};if(je(t,!1))return n;if(je(n,!1))return t}}return e}function $u(e){if(Array.isArray(e)){for(let t of e){let n=$u(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=$u(n);if(r!==null)return r}}return null}var pr=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},In=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function gR(e,t,n,r,i){let o=await Wa(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?$("number"):$("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Wa(e.low,t,n,r,i),u=await Wa(e.high,t,n,r,i);if(!Ct(">=",o,l,a)||!Ct("<=",o,u,a))throw new pr(`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 Wa(e.right,t,n,r,i);if(!Ct(e.op,o,s,a))throw new pr(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Wa(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return z(e);case"STRING":return e.value;case"ARITH":return String(Wu(e));case"SCALAR_SUBQUERY":try{return await yR(e.query,t,n,r,i)}catch(o){throw o instanceof In?new pr(o.message):o}}}async function yR(e,t,n,r,i){let{query:o,probed:a}=QS(e),s=await _i(o,t,n,r,i);if(s.columns.length!==1)throw new In(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new In("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 In(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function QS(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 Wu(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=Wu(e.left),n=Wu(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 Vi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||gt(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 ee(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,u=d=>{if(Array.isArray(d)){d.forEach(u);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(u)};u(e.where),u(e.having);for(let d of e.columns)d.type==="CASE_COL"&&u(d.expr);let p=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await vc(d,t,n);E&&p.set(d,E)}));let c=(d,f,R)=>{if(f==="$id")return zn(te({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return $("string");if(f==="_idx"||f==="_pid")return $("number")}let E=s.get(d.appId)?.get(fe(d,f));if(!E)return;let m=E.semantics??te(E),g=E.fieldType==="STATUS"&&p.has(d.appId)?{...m,optionOrder:p.get(d.appId)}:m;return zn(g,d.appId,E.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,d.field,!1);let R=o.find(E=>ue(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??$("string"):c(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??$("string"):c(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:c(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>za(R,d.field)!==void 0))return f.length>1?$("string"):void 0}}var hR=new WeakMap;async function wn(e,t,n,r,i=!1){let o=await Vi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=ad(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&hR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function ZS(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function AR(e){return ZS(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function $E(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=ve(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ue(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=ve(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function WE(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\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 SR(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"||$E(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`+WE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||$E(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`+WE(n,"VALUE"));return i}function Ac(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=le.get(e);return r&&le.set(n,r),n}function Sc(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=>gt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function TR(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(ve(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=$("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=$("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=On(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=On(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"?$("string"):$("number"):r.type==="STRFUNC_COL"?i=Cn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=$("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function bn(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 ts(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function IR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=gt(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ye(null,()=>{}):ye(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function cr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await IR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${bn(r)})`)}async function kt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,u=new Set;if(await Ui(e,t,r,i),iT(e))return l=sT(e),o&&le.set(l,await Mi(e,l.columns,t,r,i,a)),l;let{resolver:p}=await wn(e,t,r,i,AR(e)),c=SR(e,p,s),d=await dr(e,t,r,i);await ZR(e,t,n,r,u,i);let f=IT(e,ye(e.where,p));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(f)}).`);let R=We(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let C=await Vi(e,t,r,i),M=Iu(e,C);M.eligible&&Su(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=Y(e.where)}catch{C=null}m=xo({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,m&&(E=m.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",h=await xi(e,t,r,i),T=ts(e)?(e.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:h.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ie(e.where)}):null,y=await uT(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),b=Tc(e,n,T),v=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?Rc(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await lT(e,v,b.effectiveOptions,r,T,h):l=await NT(e,v,b.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,h,E,d)}catch(C){bR(b,C)}return o&&le.set(l,await Mi(e,l.columns,t,r,i,a)),Ac(l,[...u,...c,...y])}function Vu(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 wR(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 dr(e,t,n,r){let i=Z(e);if(!Yn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(c=>c.table)],s=new Map,l=await Promise.all(a.map(async c=>{if(c.cteName!==null){let E=r?.get(c.cteName);if(!E)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await ee(c.appId,t,n);if(!c.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:c.appId,owner:E.subtableCode}),s.set(E.code,wR(m))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===c.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)}})),u=xp(e,(c,d)=>l[d]),p=Bp(o,e.columns,u);return eT(e,o,p,s),Pr(e,Hp(e,p,u)),p}function eT(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 u=t[l],p=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=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(Vu(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${c}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var vi=new WeakMap;async function tT(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 Ui(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function nT(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let d=await ee(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),s=(c,d)=>{if(c.subtableCode)return null;let f=a.get(c.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(c,d)=>{if(d==="$id")return"$id";let f=fe(c,d);return s(c,f)!==null?null:a.get(c.appId)?.has(f)?f:null},u=(c,d)=>{if(c.cteName===null)return!1;let f=r?.get(c.cteName);return f?f.columns.includes(d):!0},p=(c,d,f,R)=>{let E=i.filter(h=>h.cteName===null&&l(h,f.field)!==null).length,m=i.some(h=>u(h,f.field)),g=ue(c);return{canonicalId:`source:${d}:APP${c.appId}:${R}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let m=i.findIndex(T=>ue(T)===c.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let g=i[m];if(g.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let h=l(g,c.field);if(h===null){let T=s(g,fe(g,c.field));throw T!==null&&T!==""?new Error(Vu(c.field,[{appId:g.appId,owner:T}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${g.appId}.`)}return p(g,m,c,h)}let d=i.flatMap((m,g)=>{if(m.cteName!==null)return[];let h=l(m,c.field);return h===null?[]:[{table:m,tableIndex:g,code:h}]}),f=i.filter(m=>u(m,c.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let m=d[0];return p(m.table,m.tableIndex,c,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let g=s(m,fe(m,c.field));return g===null||g===""?[]:[{appId:m.appId,owner:g}]}),E=wR(R);throw E.length>0?new Error(Vu(c.field,E)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function Ui(e,t,n,r){vi.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 nT(e,t,n,r),u=zp(e,l,jp);u&&vi.set(e,u);return}if(!Yn(e))return;if(i.type==="NONE"){yo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await dr(e,t,n,r)}function rT(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 Tc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?$t({...e,orderBy:[]}):$t(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function bR(e,t){throw e.reasons.size>0&&t instanceof Fe&&!t.completeInputWrapped?new Fe(rT(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Hu(e,t){try{return await t()}catch(n){bR(e,n)}}function lt(e){return e?.type==="BOOLEAN"&&e.value===!1}function iT(e){return e.from.appId===0&&e.from.cteName===Oe}function ns(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"?ns(e.left)||ns(e.right):e.type==="STRING_FUNC"?Ic(e):!1}function oT(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Ni(e)}function Ni(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Ic(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ni(e.left)||Ni(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"?ns(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Ni(n))):!1}function Ic(e){return e.args.some(t=>oT(t))}function aT(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(ns(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Ic(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Ni(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 sT(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.");aT(e);let t=fu([{}],e.columns),{rows:n,columns:r}=An(t,e.columns),i=Da(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function lT(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?OR(e):e,s=Io(a),l=i?.kind==="CANONICAL_LOCAL"?pn(e,e.from):s.fields,u=await bc(e,t,r),p=Pc(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await Vi(e,t,r,void 0,Sc(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&g!==null&&g<=d&&!Ie(e.where)?g:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let C=await Hf({client:t,app:s.app,fields:s.fields,query:iu(e),offset:e.offset??0,limit:e.limit});T=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?Y(e.where):"";T=await ke(t.getRecords,s.app,C,l,{parallel:E,maxRecords:d,stopAfter:h,onLimit:R,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ec(t,e.from.appId)}})}let y=T.map(C=>vt(C,null));m||(y=pu(y,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,du(e.columns,void 0,p.row,c)),y=Da(y,e.limit,e.offset));let{rows:b,columns:P}=An(y,e.columns,void 0,p.row,void 0,c),v=await Lc(e,b,P,t,r);return{type:"SELECT",rows:b,columns:v,rowCount:b.length,warnings:[...f]}}async function uT(e,t,n,r){let i=[],o=new Map,a=(u,p)=>{if(p.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let d of p)c.add(d)},s=new Map,l=(u,p)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let d of p)c.add(d)};if(t==="SIMPLE"){let u=Io(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(p=>p.table)].filter(p=>p.cteName===null);for(let p of u){let c=pn(e,p);a(p.appId,c),p.subtableCode||l(p.appId,c)}}for(let[u,p]of o.entries()){let c=[...p].filter(m=>!Bs(m));if(c.length===0)continue;let d=await ee(u,n,r);if(d.length===0)continue;let f=new Set(d.map(m=>m.code)),R=c.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${u})`);let E=s.get(u);if(E){let m=d.filter(g=>g.inSubtable===!0&&E.has(g.code));for(let g of m){let h=g.subtableCode??"",T=h?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${h}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${u} \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`+(h?`APP${u}$${h} \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 VE(e){return e.cteName??`APP${e.appId}`}function cT(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function pT(e,t){return Bs(t)||e.validCodes.has(t)}function Mu(e,t){return e.table.cteName!==null?e.validCodes.has(t):pT(e,t)}function dT(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 fT(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=ue(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===Oe)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:VE(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===Oe)return;let d=await ee(p.appId,t,r);s.set(p,{table:p,label:VE(p),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of cT(p.table))l.set(c,p);for(let p of e.joins)if(p.type!=="CROSS")for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let d=l.get(c.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Mu(d,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let u=ed(e);for(let[p,c]of u.bySource){let d=s.get(p);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...c].filter(R=>!Mu(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let p of u.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Mu(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${d})`)}}async function ja(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ja(e.left,t,n,r,i),await ja(e.right,t,n,r,i);return}await fT(e,t,n,r);for(let o of dT(e))await ja(o,t,n,r,i)}}function NR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Mr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Mr(e.where,{tableAlias:e.from.alias}):null}function Pi(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"?Pi(e.left)||Pi(e.right):e.type==="GROUP"||e.type==="NOT"?Pi(e.expr):!1}var wc=new WeakMap;function ls(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=Gf(e.where,r),o=Kf(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,ar(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,u=a.get(l)??null,p=new Map(a);p.delete(l);let c=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:d,joinConditions:p,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function us(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let u=r.get(s);u?u.push(l):r.set(s,[l])};if(i(e.from.appId,NR(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=Mr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,p]=await Promise.all([Ue(s,t,n),GT(s,t,n)]),c=ET(l).filter(d=>u.get(d)==="STATUS");if(c.length>0){let d=await ds(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 c)p.set(R,f)}}return[s,u,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function ET(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 Mt(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"&&rs(e.left.expr,t),e.right.type==="CASE_VALUE"&&rs(e.right.expr,t);return;case"LOGICAL":Mt(e.left,t),Mt(e.right,t);return;case"NOT":case"GROUP":Mt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function rs(e,t){for(let n of e.branches)Mt(n.condition,t)}function RT(e){let t=[];Mt(e.where,t),Mt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&rs(n.expr,t);return t}function ue(e){return e.alias??e.cteName}function PR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ue(n)===t)}function cs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function bc(e,t,n){let r=RT(e);if(r.length===0)return new Map;let i=new Set,o=cs(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 Ue(s,t,n)]));return new Map(a)}function ve(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 Nc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Sn(t,n)}function Sn(e,t){if(e.type==="FIELD_REF"){t.push(ve(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Sn(e.left,t),Sn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Sn(e.left,t),Sn(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"&&Sn(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"?fr(n,t):n.type!=="ARRAY"&&Sn(n,t)}function fr(e,t){if(e.type==="AGG_REF"){Nc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(fr(e.left,t),fr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Yu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")fr(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;Ci(n,t)}}function Ci(e,t){if(e.type==="STRING_FUNC"){Yu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ci(e.left,t),Ci(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"?Yu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?fr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ci(r,t)}}function mT(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;Nc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function gT(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Nc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?fr(n.expr,t):n.type==="STRFUNC_COL"?Yu(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ci(n.expr,t):n.type==="CASE_COL"&&mT(n.expr,t);return t}var yT=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function hT(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":yT.has(e.fieldType)?"string":void 0}async function CR(e,t,n,r){let i=gT(e.columns);if(i.length===0)return;let o=new Set,a=cs(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 ee(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,u=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...u].some(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await vc(f,t,n);E&&l.set(f,E)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,R)=>{let E=f.semantics??te(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 m=p.find(g=>ue(g)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??$("string");R=s.get(m.appId)?.get(fe(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??$("string");R=s.get(e.from.appId)?.get(fe(e.from,f.field))}else{let m=p.flatMap(g=>{if(g.cteName!==null){let T=r?.get(g.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??$("string")]:[]}let h=s.get(g.appId)?.get(fe(g,f.field));return h?[c(h,g.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?p.find(m=>ue(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(R,E?.appId??e.from.appId)}}function fe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function za(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function De(e,t){let n=e.semantics??te(e);return{sortKind:hT(e),fieldType:e.fieldType,semantics:t===void 0?n:zn(n,t,e.code)}}function OR(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:$(e)}}function ze(){return{semantics:$("string","KSQL_UNKNOWN")}}function LR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function qe(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return Q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Q("number")}var AT=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Cn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Q("number"):Q("string")}return AT.has(e.func)?Q("number"):Q("string")}function Er(e,t){return e.type==="STRING"?Q("string"):e.type==="ARRAY"?LR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?ze():On(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"?Cn(e):e.type==="FIELD_REF"?t(ve(e.field))??ze():e.type==="FIELD"?t(e)??ze():ze()}function ps(e){if(e.length===0)return ze();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&&No(n(r.semantics),n(t.semantics)))?e.every(i=>No(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?LR("KSQL_MIXED_UNSUPPORTED"):ze()}function On(e,t){if(e.type==="FIELD_REF")return t(ve(e.field))??ze();if(e.type==="FIELD")return t(e)??ze();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 Cn(e);let n=e.branches.map(r=>Er(r.result,t));return e.elseResult&&n.push(Er(e.elseResult,t)),ps(n)}function _R(e,t){return e.windowKind==="VALUE"?On(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Q("number"):e.arg.type==="WILDCARD"?ze():On(e.arg,t):Q("number")}function qa(e,t){return{...e??{},displayName:t}}function ST(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 Mi(e,t,n,r,i,o=!1){let a=new Map;ST(e)&&await Promise.all(cs(e).map(async E=>{if(a.has(E.appId))return;let m=await ee(E.appId,n,r);a.set(E.appId,new Map(m.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),u=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let T=a.get(e.from.appId)?.get(E.field);return T?De(T,e.from.appId):void 0}let g=s.find(T=>ue(T)===E.tableAlias);if(!g)return;if(g.cteName!==null)return i?.get(g.cteName)?.columnMeta?.get(E.field);let h=a.get(g.appId)?.get(fe(g,E.field));return h?De(h,g.appId):qe(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let g=a.get(e.from.appId)?.get(fe(e.from,E.field));return g?De(g,e.from.appId):qe(E.field)}let m=s.flatMap(g=>{if(g.cteName!==null){let y=i?.get(g.cteName);return y?.columns.includes(E.field)?[y.columnMeta?.get(E.field)]:[]}let h=a.get(g.appId)?.get(fe(g,E.field)),T=h?De(h,g.appId):qe(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},p=E=>{if(!l)return;let m=s.filter(g=>{if(E.tableAlias!==null&&ue(g)!==E.tableAlias)return!1;let h=fe(g,E.field);return a.get(g.appId)?.has(h)===!0||qe(E.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(E,m)=>{let g=p(m);return E&&g!==void 0?{...E,publicSourceApp:g}: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 m=ve(E),g=c(u(m),m);d.set(E,qa(g,g?.displayName??E))}return d}if(f)for(let E of t){let m=ve(E),g=c(u(m),m);d.set(E,qa(g,g?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let g=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!g)return;let h;if(E.type==="FIELD"){let T=ve(E.field);h=c(u(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?h=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"?h=Q("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(h=On(E.arg,u));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")h=Q("number");else if(E.type==="GROUPING_COL")h=Q("number");else if(E.type==="LITERAL_COL")h=Q("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?h=Cn(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?h=Q("number"):T.type==="FIELD"?h=u(T):h=Q("string")}else if(E.type==="STRFUNC_COL")h=Cn(E.expr);else if(E.type==="WINDOW_COL")h=_R(E,u);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(y=>Er(y.result,u));E.expr.elseResult&&T.push(Er(E.expr.elseResult,u)),h=ps(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(h=ze());d.set(g,qa(h,E.aliasDisplay??g))}),d}function TT(e,t){let n=le.get(e),r=le.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],u=l===void 0?void 0:r?.get(l),p;if(s&&u){let c=ps([s,u]),d=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=c;p=d===void 0?R:{...R,publicSourceApp:d}}else p=ze();i.set(o,qa(p,s?.displayName??o))}),i}function Pc(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 u=n.find(p=>ue(p)===s.tableAlias);return!u||u.cteName!==null?void 0:za(u,s.field)??t.get(u.appId)?.get(fe(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:za(e.from,s.field)??t.get(e.from.appId)?.get(fe(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let p=za(u,s.field)??t.get(u.appId)?.get(fe(u,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var DR=new WeakSet,Cc=new WeakMap;function ju(e){return DR.add(e),e}function IT(e,t){return Cc.set(e,t),t}function vR(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 wT(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function bT(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":Y(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Pn;if(!wT(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=An([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function NT(e,t,n,r,i,o=!0,a,s,l){let u=Cc.get(e);if(DR.has(e)&&u!==void 0&&vR(e,u)){let _=await bT(e,t);if(_!==null)return _}let p=n.maxRecords??1e4,c=new Set,d=n.fetchParallel??1;await Promise.all([Bi(e.where,t,n,r,c,i),Bi(e.having,t,n,r,c,i)]);let[f,R,E]=await Promise.all([us(e,t,r),bc(e,t,r),CR(e,t,r,i)]),m=Pc(e,R),g=await Vi(e,t,r,i,gt(e.having)||Sc(e)),h=TR(e,g),T=wc.get(e);if(T&&!sr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let y=T??ls(e,f)??dn(e,f);il(y);let b="joinPlan"in y?y:null,P=b&&sr(b.joinPlan)?b:null,v=t,C=y.mainCondition,M=y.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let O=s?s.prefilterWhere:P?null:C,N=P?.queriesByAlias.get(e.from.alias)??"",U=await tm(e.columns,t,n,r,c,i),w=lt(e.where),D=w?Promise.resolve([]):Oi(e,e.from,v,p,d,!0,n.onLimitReached??"error",c,O,P?!1:o,l,N),A=[],I=[];for(let _ of e.joins){if(w){A.push({join:_,promise:Promise.resolve([])});continue}let H=_.table.alias?P?.queriesByAlias.get(_.table.alias)??"":"",ne=P?null:_.table.alias?M.get(_.table.alias)??null:null;ne!==null||H!==""?A.push({join:_,promise:Oi(e,_.table,v,p,d,!1,n.onLimitReached??"error",c,ne,!0,l,H)}):I.push(_)}let x=a?Promise.resolve(a):xi(e,t,r,i);x.catch(()=>{});let L=await D,F=new Map;F.set(e.from.alias,L);for(let{join:_,promise:H}of A)F.set(_.table.alias,await H);await Promise.all(I.map(async _=>{let ne=await BR(e,_,F,v,p,d,n.onLimitReached??"error",c,r,i,null,l,"")??await Oi(e,_.table,v,p,d,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(_.table.alias,ne)}));let{optionOrders:W,sortKinds:K,semantics:k}=await x,{rows:G,columns:j}=mu({tables:F,stmt:e,scalarCache:U,optionOrders:W,sortKinds:K,orderSemantics:k,fieldTypeResolver:m.row,fieldSemanticsResolver:g,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:h,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??y.appliedKlikes,...s?{residualWhere:s.residualWhere}:P?{residualWhere:P.joinPlan.residualWhere}:{},resolvedGroupingSpec:vi.get(e),plainGroupByPlan:l,warnings:c}),B=await Lc(e,G,j,t,r);return{type:"SELECT",rows:G,columns:B,rowCount:G.length,warnings:[...c]}}function PT(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`)}function zu(e,t,n){PT(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,u)=>{s[l]=a[e.columns[u]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=le.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let u=e.columns[l],p=n?.get(s)??(u===void 0?void 0:o?.get(u));p&&a.set(s,{...p,displayName:s})}),le.set(i,a)}return i}function UR(e,t,n,r){let i=zu(t,e.columns),o=[...e.rows,...i.rows],a=n?o:CT(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&le.set(l,TT(e,t)),l}async function MR(e,t,n,r,i=!1,o=!1){let a=Tc(e,n,null);return Hu(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?MR(e.left,t,s,r,i,o):kt(ju(e.left),t,s,r,void 0,i,o,"DERIVED"),kt(ju(e.right),t,s,r,void 0,i,o,"DERIVED")]);return UR(l,u,e.all,i)})}function CT(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)})}function kR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function OT(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(kR);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function HE(e){return e.columns.map((t,n)=>kR(t)??`__b53_column_${n}`)}function YE(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function xR(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await ee(s.appId,t,n);o.set(s.appId,new Map(l.map(u=>[u.code,u])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let u=o.get(s.appId)?.get(fe(s,l));return u?De(u,s.appId):qe(l)};return s=>{if(s.tableAlias!==null){let u=i.find(p=>ue(p)===s.tableAlias);return u?a(u,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(u=>a(u,s.field)).filter(u=>u!==void 0);return l.length===1?l[0]:void 0}}function wi(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>wi(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:ve(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=ve(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){wi(r.left,t,!0),wi(r.right,t,!0);return}for(let i of Object.values(r))wi(i,t,n)}async function jE(e,t,n,r,i){let o=await xR(e,n,r,i);e.columns.forEach(u=>wi(u,o));let a=await Mi(e,HE(e),n,r,i),s=HE(e),l=new Map;return t.forEach((u,p)=>{let c=a.get(s[p]);if(!c?.semantics||c.semantics.fieldType==="KSQL_UNKNOWN"||c.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${p+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(u,{...c,displayName:u})}),l}function on(e){return`${e.appId}:${e.subtableCode??""}`}function FR(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(on(r))&&t.set(on(r),r);return[...t.values()]}function LT(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function _T(e){let t=new Map,n=r=>{for(let i of r)t.set(on(i),null)};for(let r of e){let i=cs(r);for(let s of i){let l=on(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let u=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(c=>c.table)].find(c=>ue(c)?.toLowerCase()===s.toLowerCase());if(!u){n(i);return}if(u.cteName!==null)return;let p=t.get(on(u));p!==null&&p?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let u=LT(l.field),p=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:u.alias;o(p,u.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(Z(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function DT(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function vT(e,t,n,r){let i=_T(e),o=await Promise.all(FR(...e).map(async(a,s)=>{let l=await kt(DT(a,i.get(on(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),u=`__b53_source_${s}`;return[on(a),{name:u,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:le.get(l)}}]}));return new Map(o)}function zE(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(on(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function qE(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function ku(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=he(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function JE(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ue(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function UT(e,t,n,r,i){let o=e.recursiveSpec,a=OT(e),s=await jE(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await jE(o.recursiveTerm,a,t,i,l);a.forEach((K,k)=>{let G=s.get(K),j=u.get(K);if(!G||!j||!YE(G,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let p=JE(e.name,o.recursiveTerm),c=await xR(o.recursiveTerm,t,i,l),d=c({type:"FIELD",tableAlias:ue(p.self),field:p.selfField}),f=c({type:"FIELD",tableAlias:ue(p.source),field:p.sourceField});if(!d||!f||!YE(d,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await vT([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let K of R.values())E.set(K.name,K.table);let m=zE(o.seed,R),g=zE(o.recursiveTerm,R),h=await ut(m,t,n,E,i,!0,!0),T=zu(h,a,s),y=o.cycle,b=y?s.get(y.column):void 0,P=new Map(s);y&&P.set(y.markColumn,{...Q("string"),displayName:y.markColumn});let v=y?[...a,y.markColumn]:[...a],C=[],M=[],O=new Set([...T.warnings??[],...[...R.values()].flatMap(K=>K.warnings)]),N=new ma(e.name,mt(n)),U=K=>{N.addRow(),C.push(K)};for(let K of T.rows){let k=y?String(K[y.column]??""):"",G=y?{...K,[y.markColumn]:y.defaultValue}:K;U(G),M.push({row:K,path:y?[k]:[]})}let w=JE(e.name,g),D=w.source.cteName===null?void 0:E.get(w.source.cteName);if(!D)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=qE(w.self,w.selfField,l)??qE(w.source,w.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${w.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let I=new Map;for(let K of D.rows){let k=String(K[w.sourceField]??""),G=ku(k,A.semantics),j=I.get(G);j?j.push(K):I.set(G,[K])}let x=I.has(ku("",A.semantics)),L=0,F=!1;for(;M.length>0;){L++;let K=[];for(let k of M){let G=String(k.row[w.selfField]??"");!F&&G===""&&x&&(O.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${w.selfField} = ${w.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=I.get(ku(G,A.semantics))??[];for(let ne of j){let Pe=String(ne[w.sourceField]??"");Ct("=",G,Pe,A.semantics)&&N.addExpansion()}if(j.length===0)continue;let B=new Map(E);B.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let _=await ut(g,t,n,B,i,!0,!0);for(let ne of _.warnings??[])O.add(ne);let H=zu(_,a,s);H.rows.length>0&&N.observeDepth(L);for(let ne of H.rows){if(!y){U(ne),K.push({row:ne,path:[]});continue}let Pe=String(ne[y.column]??""),Gt=k.path.some(re=>Ct("=",re,Pe,b.semantics));U({...ne,[y.markColumn]:Gt?y.markValue:y.defaultValue}),Gt||K.push({row:ne,path:[...k.path,Pe]})}}M=K}let W={type:"SELECT",rows:C,columns:v,rowCount:C.length,warnings:[...O]};return le.set(W,P),W}async function Oc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&jt(e))return kt(zt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let u of e.ctes){let p;u.recursiveSpec?p=await UT(u,t,n,a,r):u.query.type==="SHOW_APPS"?p=await XR(t):u.query.type==="DESCRIBE"?p=await QR(u.query,t,r):u.query.type==="GENERATE_SERIES"?p=GR(u.query):p=await ut(u.query,t,n,a,r,!0);for(let c of p.warnings??[])s.add(c);a.set(u.name,{rows:p.rows,columns:p.columns,columnMeta:le.get(p),...u.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:u.query.columnAlias}:{}})}let l=await ut(e.query,t,n,a,r,o);return Ac(l,[...s])}function GR(e){let t=Vo(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:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return le.set(n,new Map([[e.columnAlias,r]])),n}async function ut(e,t,n,r,i,o=!1,a=!1){if(a||await ja(e,t,r,i),e.type==="UNION"){let[u,p]=await Promise.all([ut(e.left,t,n,r,i,o,!0),ut(e.right,t,n,r,i,o,!0)]);return UR(u,p,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Oe||e.joins.some(u=>u.table.cteName!=null)))return kt(e,t,n,i,r,o,!1,"DERIVED");let l=await MT(e,t,n,r,i);return o&&le.set(l,await Mi(e,l.columns,t,i,r)),l}async function MT(e,t,n,r,i){await Ui(e,t,i,r);let o=vi.get(e),a=await dr(e,t,i,r),s=new Set,l=B=>{if(B.alias!==null||B.cteName===null)return B;let _=ue(B);return s.add(_),{...B,alias:_}};e={...e,from:l(e.from),joins:e.joins.map(B=>({...B,table:l(B.table)}))};let u=new Set;for(let B of[e.from,...e.joins.map(_=>_.table)]){let _=ue(B);if(_!==null){if(u.has(_))throw new Error(`ArgumentError: effective alias ${_} is used by multiple tables.`);u.add(_)}}let p=B=>{let _=r.get(B);if(!_)throw new Error(`ArgumentError: materialized source ${B} is not available.`);return _};for(let B of[e.from,...e.joins.map(_=>_.table)])B.cteName!==null&&p(B.cteName);let{resolver:c}=await wn(e,t,i,r,AR(e)),d=SR(e,c,"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([Bi(e.where,t,n,i,R,r),Bi(e.having,t,n,i,R,r),ZR(e,t,n,i,R,r)]);let m=ye(e.where,c);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(m)}).`);let g=await xi(e,t,i,r),h=ts(e)?(e.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:Ie(e.where)}):null,T=Tc(e,n,h),y=T.effectiveOptions,[b,P,v]=await Promise.all([us(e,t,i),bc(e,t,i),CR(e,t,i,r)]),C=Pc(e,P),M=await Vi(e,t,i,r,gt(e.having)||Sc(e)),O=TR(e,M),N=ls(e,b)??dn(e,b);il(N);let U=t,w=await tm(e.columns,t,y,i,R,r),D=Promise.resolve(g);D.catch(()=>{});let A=new Map,I=new Map;if(e.from.cteName!=null){let B=p(e.from.cteName);A.set(e.from.alias,B.rows.map(XE)),I.set(e.from.alias,B.columns)}else{let B=await Hu(T,()=>Oi(e,e.from,U,f,E,!0,y.onLimitReached??"error",R,N.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,B)}let x=e.joins.map(B=>Hu(T,async()=>{if(B.table.cteName!=null){let _=p(B.table.cteName);A.set(B.table.alias,_.rows.map(XE)),I.set(B.table.alias,_.columns)}else{let _=B.table.alias?N.joinConditions.get(B.table.alias)??null:null,ne=await BR(e,B,A,U,f,E,y.onLimitReached??"error",R,i,r,_,a)??await Oi(e,B.table,U,f,E,!1,y.onLimitReached??"error",R,_,!0,a);A.set(B.table.alias,ne)}}));await Promise.all(x);let{optionOrders:L,sortKinds:F,semantics:W}=await D,K=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:k,columns:G}=mu({tables:A,stmt:e,scalarCache:w,optionOrders:L,sortKinds:F,orderSemantics:W,fieldTypeResolver:C.row,fieldSemanticsResolver:M,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:O,aggregateSortKindResolver:v,appliedKlikes:N.appliedKlikes,sourceColumns:K,tableColumns:I,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),j=await Lc(e,k,G,t,i);return Ac({type:"SELECT",rows:k,columns:j,rowCount:k.length,warnings:[...R]},d)}async function Lc(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await ee(e.from.appId,r,i);return jf(o,e.from.subtableCode,()=>ds(e.from.appId,r,i))}function XE(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Oi(e,t,n,r,i,o,a,s,l=null,u=!0,p,c=""){let d=pn(e,t,p),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ec(n,t.appId),Uf(e,t,o))throw new Fe(`\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${g} \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 g=o&&u?Qp(e,t.appId).query:"",h=[l!==null?Y(l):"",c].filter(P=>P!==""),T=h.length>1?h.map(P=>`(${P})`).join(" and "):h[0]??"",y=g&&T?`(${g}) and (${T})`:g||T;return(await rt(n.getRecords,t.appId,y,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&u&&e.joins.length===0&&e.where!==null&&Cc.get(e)?.capability==="EXACT_PUSHDOWN"&&!bt(e.where)?Y(e.where):"",m=(await rt(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return fE(m,t.subtableCode)}var KR=50;function kT(e){let t=he(e);return t!==null?JSON.stringify(t):e}function qu(e){return JSON.stringify(e)}function Ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?kT(n):n))}function Hi(e,t){let n=e.raw.get(qu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Ln(t,e.numericKey))}async function Yi(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),u={raw:new Map,normalized:new Map,numericKey:l},p=(m,g,h)=>{let T=m.get(g);(T===void 0||h>T)&&m.set(g,h)},c=(m,g)=>{p(u.raw,qu(m),g),l.some(Boolean)&&p(u.normalized,Ln(m,l),g)},d=new Set,f=[],R=new Set;for(let m of n){let g=qu(m);R.has(g)||(R.add(g),m.some(h=>h==="")?f.push(m):d.add(m[0]))}let E=["$id",...t];for(let m of ji([...d],KR)){let g=`${t[0]} in (${m.map(ki).join(",")})`,h=await ke(r.getRecords,e,g,E,{maxRecords:a,parallel:s});for(let T of h){let y=Number(T.$id?.value);Number.isFinite(y)&&c(t.map(b=>_c(T[b]?.value)),y)}}for(let m of f){let g=t.map((T,y)=>`${T} = ${ki(m[y])}`).join(" and "),h=await ke(r.getRecords,e,g,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(m,xT(h))}return u}function xT(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 _c(e){return typeof e=="string"?e:e==null?"":String(e)}function ki(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ji(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var FT=6,Ja=ga*FT;async function BR(e,t,n,r,i,o,a,s,l,u,p=null,c,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,m,g;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,g=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,g=t.on.right.field;else return null;let h=n.get(E);if(!h)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ue(A)===E),y=(await ee(t.table.appId,r,l)).find(A=>A.code===fe(t.table,g)),b=y?De(y,t.table.appId):qe(g),P;if(T?.cteName!==null&&T?.cteName!==void 0)P=u?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await ee(T.appId,r,l)).find(I=>I.code===fe(T,m));P=A?De(A,T.appId):qe(m)}let v=[],C=!1;for(let A of h){let I=A[m]?.value,x=_c(I);(I==null||x.length===0)&&(C=!0),v.push(x)}let M=Ql({fieldType:b?.fieldType,sourceSemantics:P?.semantics,sourceRowCount:h.length,values:v,hasEmptyValue:C,maxInKeys:Ja});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \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 ${Ja} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let O=Xl(M,g,ki);if(O.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 ${Ja} \u4EF6\uFF09\u3002`),null;let N=pn(e,t.table,c),U=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ec(r,t.table.appId)},w=[],D=new Set;for(let A of O){let x=[p!==null?Y(p):"",d].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,A),L=await rt(r.getRecords,t.table.appId,x,N,{parallel:o,maxRecords:i,onLimit:a,onTruncate:U});for(let F of L.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;D.has(W)||(D.add(W),w.push(F))}}return w}var Ju=new Map,Xu=new Map,Qu=new Map,Zu=new Map,ec=new Map,tc=new Map;function Dc(e){Ju.delete(e),Xu.delete(e),Qu.delete(e),Zu.delete(e),ec.delete(e),tc.delete(e)}function Rr(e,t,n){return e.get(t)?.get(n)}function mr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Rr(Zu,n,e);if(r)return r;let i=t.getFields(e);return mr(Zu,n,e,i),i}async function Tt(e,t,n){let r=Rr(tc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return mr(tc,n,e,i),i}async function ds(e,t,n){let r=Rr(ec,n,e);if(r)return r;let i=t.getProcessStatuses(e);return mr(ec,n,e,i),i}async function vc(e,t,n){let r=await ds(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ue(e,t,n){let r=Rr(Ju,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return mr(Ju,n,e,o),o}async function nc(e,t,n){let r=Rr(Xu,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return mr(Xu,n,e,o),o}async function GT(e,t,n){let r=await nc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function QE(e,t,n){let r=Rr(Qu,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return mr(Qu,n,e,o),o}function KT(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 BT(e,t,n,r){let i=KT(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let d=await ee(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(c.field);return E?De(E,e.from.appId):void 0}let f=o.find(E=>ue(E)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let R=s.get(f.appId)?.get(fe(f,c.field));return R?De(R,f.appId):qe(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(fe(e.from,c.field));return f?De(f,e.from.appId):qe(c.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),g=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return g?[g]:[]}let R=s.get(f.appId)?.get(fe(f,c.field)),E=R?De(R,f.appId):qe(c.field);return E?[E]:[]});return d.length>1&&a.add(c.field),d.length===1?d[0]:void 0},u=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let d;if(c.type==="FIELD")d=l(ve(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL")d=Q("number");else if(c.type==="WINDOW_COL")d=_R(c,l);else if(c.type==="GROUPING_COL")d=Q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")d=Q("string");else if(c.type==="STRFUNC_COL")d=Cn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")d=ze();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(R=>Er(R.result,l));c.expr.elseResult&&f.push(Er(c.expr.elseResult,l)),d=ps(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(d=On(c.arg,l)):d=c.func==="GROUP_CONCAT"?Q("string"):Q("number"));d?.semantics&&u.set(c.alias,d.semantics)}let p=new Map;for(let c of i){let d=u.get(c)??l(ve(c))?.semantics;if(!d){let R=ve(c);R.tableAlias===null&&a.has(R.field)&&p.set(c,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await ds(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}p.set(c,f)}return p}async function xi(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([$T(e,t,n),WT(e,t,n),BT(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function $T(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 nc(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await nc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function WT(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 QE(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await QE(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function $R(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 VT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function HT(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||VT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function ct(e,t,n,r){let i=await ee(e,n,r);return HT(e,t,i),i}async function xt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Tt(e,r,i):void 0}function _n(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),u=o[s]?.value??"",p=Ke(u,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(u)&&u.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:c?u:p.value}}})}async function YT(e,t,n,r,i){let o=await ct(e.appId,e.fields,t,r),a=await ni({statement:e,fieldInfos:o,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>Tt(e.appId,t,r)});return TI(e,a,o)}async function jT(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await WR(e,t,n,r,i);return wI(e,a,o)}async function WR(e,t,n,r,i){let o=await ct(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=qR(e),l=new Set;for(let m of s){let g=Ln(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(g))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(g)}let u=await Yi(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>Hi(u,m)),c=new Map,d=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of ji(d,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of g.records){let T=Number(h.$id?.value);Number.isSafeInteger(T)&&T>0&&c.set(T,h)}}let R=p.map((m,g)=>({sourceRowIndex:g,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),E=await Pf({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>Tt(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function zT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await ct(e.appId,e.fields,t,r),o=await ni({statement:e,fieldInfos:i,dmlMaxRows:Xe(n.dmlMaxRows,"dmlMaxRows",Ft),dmlMaxSubtableRows:Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),loadNumberPrecision:()=>Tt(e.appId,t,r)}),a=Yl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:fs(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await Df(o,t,a);return{...s,diagnostic:He(a,s)}}async function qT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await WR(e,t,n,r,1),o=jl(i);if(n.confirm){let s=fs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ge("UPDATE",i.guards.parentRows)}let a=await vf(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:He(o,a)}}function JT(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 fs(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=JT(n?Va(n):[],r?Va(r):[]),a=XT(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),u=o.reduce((d,f)=>d+f.appendRows,0),p=o.reduce((d,f)=>d+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:u,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,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{...c,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=Va(n),f=Va(r);return{...c,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 c}function Va(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Nn(t,"APPEND"),r=Nn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Nn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function XT(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:Nn(n,"ADD"),removedValues:Nn(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 Uc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return YT(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return jT(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await zR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Mc(e,t,n,r,i,o)).result}var Fi=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Mc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",u=e.type==="UPDATE"?["$id",...e.assignments.map(D=>D.field)]:[...e.fields];if(new Set(u).size!==u.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(D=>D.field):e.fields,c=await ct(e.appId,p,t,r);e.type==="UPDATE"&&await cr(e,t,r);let d=new Map(c.map(D=>[D.code,D])),f=await xt(e.appId,p,c,t,r),R=ft(c,u),E=EE(R),m=(await QT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((D,A)=>D.rowNumber-A.rowNumber),g=m.filter(D=>D.mode==="update"),h=e.type==="UPDATE"?tI:e.type.startsWith("UPSERT")?D=>nI(D,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??h,y=g.length>0&&T!==void 0,b=new Map;if(y){xl(g,p,c);let D=await T({appId:e.appId,candidates:g,fields:E}),A=new Map;for(let I of g){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let x=D.get(I.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let L=RE(x,I.record??{});A.set(I.rowNumber,L)}f===void 0&&[...A.values()].some(I=>mn(I,R))&&(f=await Tt(e.appId,t,r));for(let I of g){let x=A.get(I.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);b.set(I.rowNumber,gn(x,R,f,o,I.rowNumber,l))}}let P=Fl(m,l,u,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!y}),{errors:v,invalidRows:C,invalidRowNumbers:M}=P;if(y){let D=new Map(P.candidateResults.map(A=>[A.rowNumber,A]));v=[],M=new Set;for(let A of m){let I=D.get(A.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...I.preErrors,...I.builtInErrors,...I.checkErrors];v.push(...F),F.length>0&&M.add(A.rowNumber);continue}let x=b.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let L=mE({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:I.preErrors,postImageErrors:x.errors,checkErrors:I.checkErrors});A.record=L.writeRecord,v.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}C=M.size}let O=[...u,...nr],N={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-C,invalidRows:C,errorCount:v.length,columns:O,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let D of u){if(D==="$id"){U.set(D,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let A=d.get(D);A&&U.set(D,De(A,e.appId))}let w=new Set(["$err_statement","$err_row"]);for(let D of nr)U.set(D,Q(w.has(D)?"number":"string"));return vn.set(N,U),{result:N,candidates:m,invalidRowNumbers:M,columnMeta:U}}async function rc(e,t,n,r,i,o){let a=await Mc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");St(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Je,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Fi(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let u=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(u.length,R))throw new ge(R,u.length)}let p={affectedRows:u.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<u.length;E+=100){let m=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...p}}if(e.type==="UPDATE"){let R=u.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,...p}}let c=u.filter(R=>R.mode==="create"),d=u.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<c.length;R+=100){let E=await t.postRecords({app:e.appId,records:c.slice(R,R+100).map(m=>m.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,...p}}async function QT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return eI(e,n,r,i,o,s);let l,u,p,c,d;if(e.type==="INSERT"||e.type==="UPSERT")ZE(e,e.fields),d=new Map(e.fields.map(y=>[y,a.get(y)?.fieldType??""])),Dn(e,d),l=e.values.map(y=>y.map((b,P)=>b.type==="CASE_VALUE"?tn(b.expr,{},a.get(e.fields[P])?.fieldType):b));else{let y=await xc.materialize(e,n,r,i,o,[...a.values()]),b=(e.checkGroups?.length??0)>0;if(y.columns.length<e.fields.length||!b&&y.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${y.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(b&&new Set(y.columns).size!==y.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");ZE(e,y.columns),u=y.rows,p=y.importPresence,c=y.importRowErrors;let P=y.columnMeta;d=new Map(y.columns.map(v=>{let C=P?.get(v),M=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,M]})),Dn(e,d),l=y.rows.map(v=>y.columns.map(C=>v[C]??""))}let f=l.map((y,b)=>({rowNumber:b+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((P,v)=>p&&!p[b]?.has(P)?[]:[[P,y[v]]])),preErrors:[...c?.[b]??[]],record:{},evaluationRow:u?.[b]??Object.fromEntries(e.fields.map((P,v)=>[P,dt(y[v])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;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 R=new Map([...a].map(([y,b])=>[y,b.fieldType])),E=f.map(y=>e.keyFields.map(b=>dt(y.payload.get(b)))),m=e.keyFields.map(y=>R.get(y)==="NUMBER"),g=new Map;for(let y of E){let b=Ln(y,m);g.set(b,(g.get(b)??0)+1)}let h=ss.has(e);if(h&&[...g.values()].some(y=>y>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 T=await Yi(e.appId,e.keyFields,E,n,r,R);return f.forEach((y,b)=>{let P=E[b],v=Hi(T,P);y.mode=v===void 0?"create":"update",v!==void 0&&(y.targetId=v),e.keyFields.forEach((C,M)=>{P[M]===""&&y.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(g.get(Ln(P,m))??0)>1&&y.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 kc(e){return e.checkGroups?er(e.checkGroups):[]}function ZE(e,t){let n=new Set(t);for(let r of kc(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 ZT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Dn(e,t){if(e.checkGroups)for(let n of jd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(ZT.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 eI(e,t,n,r,i,o){if(e.from)return iI(e,e.from,t,n,r,i,o);await em(e.assignments,t,n,r);let a=await Ue(e.appId,t,r),s=VR(e,a);Dn(e,ic(a,e.appId));let l,u=new Map,p=new Map;if(na(e)){let c=Sl(e),d=[...new Set([...c.fields,...s,...o??[]])],f=await rt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(f.records),u=p,l=Il(e,f.records,a).flatMap(R=>R.records)}else{let c=jr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await rt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(f.records),u=p,l=zr(e,[...u.keys()],a).flatMap(R=>R.records)}else if(o){let d=await rt(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Xa(d.records),l=zr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await ha(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=zr(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((c,d)=>c.id-d.id).map((c,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:rI(u.get(c.id),e.appId),evaluationFieldTypes:ic(a,e.appId)}))}function Xa(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 tI(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 nI(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 Fe(`\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 ji(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 u=l.$id?.value,p=Number(u);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(u)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function VR(e,t){if(e.from)return[];let n=new Set;for(let r of kc(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 rI(e,t){if(!e)return{};let n=vt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function ic(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function iI(e,t,n,r,i,o,a){let s=await mm(e,t,n,i,o);Dn(e,s.evaluationTypes);let l=await HR(e,t,n,r,i,o,a),u=await Ue(e.appId,n,i),p=bl(e,l,u).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Xa(l.map(f=>f.target)):new Map;return p.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:lw(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var oI=KR,aI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function HR(e,t,n,r,i,o,a){let s=await sI(e,t,n,i),l=await mm(e,t,n,i,o),u=[...new Set(e.assignments.filter(b=>b.value.type==="SOURCE_FIELD").map(b=>b.value.type==="SOURCE_FIELD"?b.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...u])],c=await lI(t,p,u,n,r,i,o),d=new Map,f=new Map;for(let b of c){if(!Object.prototype.hasOwnProperty.call(b,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let P=eR(b[t.joinKeyField],s,"source");if(d.has(P))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${P}.`);d.set(P,b),f.set(P,String(b[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...NI(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":jr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],h=new Set,T=0;for(let b of ji([...f.values()],oI)){let P=`${t.targetJoinField} in (${b.map(ki).join(",")})`,v=m?`(${P}) and (${m})`:P,C=await rt(n.getRecords,e.appId,v,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=C.records.length,T>R)throw new Fe(`\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 M of C.records){let O=M.$id?.value;if(typeof O!="string"||O==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(O)||(h.add(O),g.push(M))}}let y=[];for(let b of g){let P=b[t.targetJoinField]?.value,v=eR(P,s,"target");if(v===null)continue;let C=d.get(v);C!==void 0&&y.push({target:b,source:C})}return y}async function sI(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function lI(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ue(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(aI.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await rt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>vt(p,null))}function eR(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=he(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function zi(e,t,n,r,i){let o=await Mc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];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)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<c.length;d+=100)await t.putRecords({app:e.appId,records:c.slice(d,d+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),u=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let d=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=d.ids.length}for(let c=0;c<u.length;c+=100)await t.putRecords({app:e.appId,records:u.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:u.length}}async function uI(e,t,n,r){if(e.applyBlocks?.length)return zT(e,t,n,r);if(e.checkGroups?.length)return zi(e,t,n,r);if(e.subtableCode)return OI(e,t,n,r);let i=await ct(e.appId,e.fields,t,r),o=await xt(e.appId,e.fields,i,t,r),a=await Ue(e.appId,t,r),s=ta(e,a);_n(s.flatMap(u=>u.records),e.fields,i,o);let l=[];for(let u of s){let p=await t.postRecords(u);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function cI(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Oe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function YR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=SE(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!k.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 c=e.targets,d=await ee(e.appId,t,r),f=c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),R=d.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await Tt(e.appId,t,r):void 0,E=await Ga(o,new Map),m=e.source.kind==="JSON"?NE(e.source,E,c,n.maxRecords??1e4):PE(e.source,E,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=_E(m,c,d,R,g);if(e.source.kind==="CSV")return pI(e,m,h,d,t,n,i);Cu(h,e.rejectLimit);let T=[...new Set(c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],y=Lu(h.errors,T),b=[...T,...Ou],P=h.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-P,invalid:P,mutationCandidates:h.parents.filter(k=>k.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:g,validatedRows:h.parents.length,validRows:h.parents.length-P,invalidRows:P,errorCount:y.length,columns:b,errors:y,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&St(i,e.validationErrorTable,b,y,n.tempTableMaxRows??Je,new Map),e.validateOnly)return C;if(vE(m),h.errors.length>0&&!e.onErrorSkip){let k=h.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");St(i,e.errorTable,b,y,n.tempTableMaxRows??Je,new Map)}let M=h.parents.filter(k=>k.valid),O=new Map(d.map(k=>[k.code,k.fieldType])),N=M.map(()=>{});if(e.keyFields){for(let _ of e.keyFields)if(!e.fields.includes(_))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${_}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(_=>O.get(_)==="NUMBER"),G=new Set,j=M.map(_=>e.keyFields.map(H=>String(_.top[H]?.value??"")));for(let _ of j){let H=Ln(_,k);if(G.has(H))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(H)}let B=await Yi(e.appId,e.keyFields,j,t,n,O);j.forEach((_,H)=>{N[H]=Hi(B,_)})}let U=c.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),w=new Map,D=N.filter(k=>k!==void 0);for(let k of ji([...new Set(D)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let j of G.records){let B=Number(j.$id?.value),_=Number(j.$revision?.value);Number.isFinite(B)&&w.set(B,{id:B,...Number.isFinite(_)?{revision:_}:{},record:j})}}let A=UE(M,N,w),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some(G=>G.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new ge(e.keyFields?"UPDATE":"INSERT",A.length)}let x=k=>new Map(Object.entries(k).map(([G,j])=>[G,j.value])),L=k=>DE(x(k.top),new Map([...k.subtables].map(([G,j])=>[G,j.map(B=>({values:x(B)}))]))),F=A.filter(k=>k.mode==="INSERT"),W=A.filter(k=>k.mode==="UPDATE"),K=[];for(let k=0;k<F.length;k+=100){let G=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(L)});K.push(G.ids)}for(let k=0;k<W.length;k+=100)await t.putRecords({app:e.appId,records:W.slice(k,k+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:L(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:K.flat().length,updatedCount:W.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:K,insertedCount:K.flat().length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return dI(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:cI(),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};ss.set(s,l);let u=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Uc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&St(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Je,vn.get(c)??new Map),u(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",rc(s,t,n,r,i,1));return u(c)}let p=await(s.type==="UPSERT_SELECT"?Bc(s,t,n,r,i):Fc(s,t,n,r,i));return u(p)}async function pI(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");ME(t.records);let s=t.records.map(w=>w.recordNumberSourceValue??""),l=vu(s,e.recordNumberSourceHeader),u=[...e.replaceSubtables],p=[...new Set(r.filter(w=>!w.inSubtable&&w.fieldType==="SUBTABLE").map(w=>w.code))],c=await ke(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let w of c){let D=Number(w.$id?.value),A=Number(w.$revision?.value);if(Number.isFinite(D)){d.set(D,{id:D,...Number.isFinite(A)?{revision:A}:{},record:w});for(let I of p){let x=w[I]?.value;if(Array.isArray(x)){for(let L of x)if(L.id){let F=f.get(L.id)??[];F.push({parentId:D,table:I}),f.set(L.id,F)}}}}}let R=l.normalized.map(w=>w===null?void 0:Number(w)),E=n.parents.map((w,D)=>{let A=[...w.errors];for(let x of l.errors[D])A.push({operation:"UPDATE",parentRow:w.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[D].top});let I=R[D];return I!==void 0&&!d.has(I)&&A.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:A.length===0,errors:A}}),m=kE(t.records,E,R,d,f),g=m.flatMap(w=>[...w.errors]),h=new Set(m.filter(w=>!w.valid).map(w=>w.parentRow)),T={...n,parents:E,errors:g,invalidParentRows:h};Cu(T,e.rejectLimit);let y=m.filter(w=>w.valid),b=m.flatMap(w=>w.tables),P=(w,D)=>b.filter(A=>A.table===w).reduce((A,I)=>A+Number(I[D]),0),v=Object.fromEntries(u.map(w=>[w,{existingRows:P(w,"existingRows"),inputRows:P(w,"inputRows"),updateRows:P(w,"updateRows"),addRows:P(w,"addRows"),deleteRows:P(w,"deleteRows"),rowIdNotFound:P(w,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:y.length,insertedParents:0,updatedParents:y.length,hasDeletes:y.some(w=>w.tables.some(D=>D.deleteRows>0)),totalDeleteRows:y.flatMap(w=>w.tables).reduce((w,D)=>w+D.deleteRows,0),rowIdNotFound:y.flatMap(w=>w.tables).reduce((w,D)=>w+D.rowIdNotFound,0),invalidParents:h.size,parents:y.map(w=>({parentRow:w.parentRow,mode:"UPDATE",targetId:w.targetId,tables:w.tables}))},M=[...new Set(e.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children))],O=Lu(g,M),N=[...M,...Ou];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&St(a,e.validationErrorTable,N,O,o.tempTableMaxRows??Je,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-h.size,invalidRows:h.size,errorCount:O.length,columns:N,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:y.length,invalid:h.size,mutationCandidates:y.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let w=g[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.");St(a,e.errorTable,N,O,o.tempTableMaxRows??Je,new Map)}if(y.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(y.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ge("UPDATE",y.length)}let U=w=>new Map(Object.entries(w).map(([D,A])=>[D,A.value]));for(let w of y){let D=_u(U(w.top),new Map([...w.subtables].map(([A,I])=>[A,I.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:U(x.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:y.length,affectedRows:y.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function dI(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 ct(e.appId,e.fields,n,i),s=await xt(e.appId,e.fields,a,n,i),l=await Ga(t,new Map),u=bu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=u.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=vu(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(c.normalized.filter(C=>C!==null))];for(let C=0;C<f.length;C+=100){let M=f.slice(C,C+100),O=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let N of O.records){let U=N.$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"])),m=u.rows.map((C,M)=>{let O=c.normalized[M],N=[...u.importRowErrors?.[M]??[],...c.errors[M]];return O!==null&&!d.has(O)&&N.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${O} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...O!==null&&d.has(O)?{targetId:Number(O)}:{},payload:new Map([[e.recordNumberSourceHeader,p[M]],...e.fields.map(U=>[U,C[U]??""])]),preErrors:N,record:{},evaluationRow:C,evaluationFieldTypes:E}}),g=[e.recordNumberSourceHeader,...e.fields],h=Fl(m,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),T=[...g,...nr],y={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:T,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(y,{importAudit:u.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&St(o,e.validationErrorTable,T,h.errors,r.tempTableMaxRows??Je,new Map),y}if(!e.onErrorSkip&&h.invalidRows>0){let C=h.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(St(o,e.errorTable,T,h.errors,r.tempTableMaxRows??Je,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new Fi(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,y)}let b=m.filter(C=>!h.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(b.length,"UPDATE"))throw new ge("UPDATE",b.length);let P=b.map(C=>({id:C.targetId,record:C.record}));for(let C=0;C<P.length;C+=100)await n.putRecords({app:e.appId,records:P.slice(C,C+100)});let v={type:"UPDATE",updatedCount:P.length,...e.onErrorSkip?{affectedRows:P.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:u.importAudit}),v}async function fI(e,t,n,r,i,o){let a=ss.get(e);if(!a){let E=i&&i.size>0?await ut(e.select,t,n,i,r,!0):await kt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:le.get(E)}}let s=await Ga(a.handle,a.cache),l=n.maxRecords??1e4,u=new Map((o??[]).map(E=>[E.code,E])),p=e.fields.map(E=>({code:E,fieldType:u.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?wu(a.source,s,p,l):bu(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let d=xE(a.source.projection),f=new Map(i??[]);f.set(Du,c);let R=await ut(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:le.get(R)}}var xc={materialize:fI};function jR(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 Fc(e,t,n,r,i){if(e.checkGroups?.length)return zi(e,t,n,r,i);let o=await ct(e.appId,e.fields,t,r),a=await xt(e.appId,e.fields,o,t,r),s=await xc.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(jR(s),u.length!==e.fields.length){let f=u.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${u.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 ge("INSERT",l.length);let p=await Ue(e.appId,t,r),c=l.map((f,R)=>{let E={};return e.fields.forEach((m,g)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let h=f[u[g]]??"";E[m]={value:$R(h,p.get(m))}}),E});c.forEach(f=>_n([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<c.length;f+=100){let R=c.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 oc(e,t,n,r,i){if(e.applyBlocks?.length)return zR(e,t,n,r);if(e.checkGroups?.length&&lt(e.where)){let R=await ct(e.appId,e.assignments.map(m=>m.field),t,r);await xt(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await Ue(e.appId,t,r);return VR(e,E),Dn(e,ic(E,e.appId)),await cr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return zi(e,t,n,r,i);if(e.subtableCode)return await cr(e,t,r),LI(e,t,n,r);let o=await ct(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await xt(e.appId,a,o,t,r);if(await cr(e,t,r),lt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return bI(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await em(e.assignments,t,n,r);let u=await Ue(e.appId,t,r);if(na(e)){let R=Sl(e),m=(await rt(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=Il(e,m,u);if(_n(g.flatMap(h=>h.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new ge("UPDATE",m.length);for(let h of g)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let p=jr(e),d=(await ha(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=zr(e,d,u);if(_n(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ge("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function zR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!wt(e.where))return EI(e,t,n,r,i);let o=await ee(e.appId,t,r),a=_t(e,o),s=ia(e,o),l=_l(e),u=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(u.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(u.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(u.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);la(u.records[0]);let c=pf({statement:e,snapshot:u.records[0],fieldInfos:o,metadata:a}),d=ft(o,e.assignments.map(b=>b.field)),f=mn(c.postImage,d)?await Tt(e.appId,t,r):void 0,R=gn(c.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=Xe(n.dmlMaxRows,"dmlMaxRows",Ft),m=Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),g=c.parentRows>E||c.changedSubtableRows>m;if(e.validateOnly){let b=ii({plans:[c],records:Qr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:E,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}}),P={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:Gi(b.branches[0]),guards:Ki(b.branches[0]),deletedRows:{total:c.tables.reduce((v,C)=>v+C.deletedRows,0),parentRows:c.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:b};return vn.set(P,Es(R.columns,o,e.appId)),P}if(c.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${E}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=aa(c,R.normalizedRecord),T=Qr(h),y=ii({plans:[h],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:E,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}});if(n.confirm){let b=fs(y,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:b,applyDiagnostic:y}))throw new ge("UPDATE",c.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:He(y,{successfulChunks:1,successfulParents:c.parentRows})}}async function EI(e,t,n,r,i){let o=Xe(n.dmlMaxRows,"dmlMaxRows",Ft),a=Xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),s=await ee(e.appId,t,r),l=_t(e,s),u;if(is(e))u=await yI(e,t,n,s,r);else{let f=ia(e,s),R=jr(e).query,E=o+1;u=await ke(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&u.length>o)throw new Error(`ArgumentError: APPLY parent rows (${u.length}) exceed dmlMaxRows (${o}).`);let p=await da({statement:e,snapshots:u,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Tt(e.appId,t,r)});if(e.validateOnly)return II(e,p,s);bp("phase15b",e);let c=ii(p);if(n.confirm){let f=fs(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new ge("UPDATE",p.guards.parentRows)}let d=await _f(p,t,c);return{...d,diagnostic:He(c,d)}}function is(e){return(e.applyBlocks?.length??0)>0&&!wt(e.where)&&(Vt(e.where)||Ie(e.where))}function RI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&is(t)&&Ie(t.where)}var mI=`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 yI(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${gI}`)}async function hI(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))]]:[])),u=nu(e.where,{fieldTypes:s,fieldOptions:l});yI(u);let p=u.prefilter===null?"":Y(u.prefilter),c=new Set(ia(e,r));for(let R of AI(e.where))c.add(R);let d=await SI(e.appId,e.where,a,t,i);return(await ke(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:vt(R,null)})).filter(({row:R})=>se(e.where,R,d.fieldTypeResolver,u.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function AI(e){return gc(e)}async function SI(e,t,n,r,i){let s=[...TI(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await Dc(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return zn(te({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let d=c.semantics??te(c),f=c.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return zn(f,e,c.code)}}}function TI(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 II(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...dt(n,e.fields).payloadFields,...ti],a=t.guards.parentRows,s=Hl(t),l=s.branches[0],u={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Gi(l),guards:Ki(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return vn.set(u,Es(o,n,e.appId)),u}function wI(e,t,n){let r=t.validations,i=r.flatMap(u=>u.errors),o=r.reduce((u,p)=>u+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...dt(n,e.assignments.map(u=>u.field)).payloadFields,...ti],s=ii(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:Gi(s.branches[0]),guards:Ki(s.branches[0]),deletedRows:{total:t.plans.reduce((u,p)=>u+p.tables.reduce((c,d)=>c+d.deletedRows,0),0),parentRows:t.plans.filter(u=>u.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return vn.set(l,Es(a,n,e.appId)),l}function bI(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??[...dt(n,e.fields).payloadFields,...ti],l=Yl(t),u=l.branches.find(R=>R.branch==="insert"),p=l.branches.find(R=>R.branch==="update"),c=Gi(u),d=Gi(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...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:c,guards:Ki(u)},update:{apply:d,guards:Ki(p)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,g)=>m+g.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return vn.set(f,Es([...s],n,e.appId)),f}function Gi(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:Nn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Nn(t,"ADD"),removedValues:Nn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Ki(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 Ft=100,Ne=500;function Xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Es(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:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,_e(s,n));continue}o.set(a,Q(i.has(a)?"number":"string"))}return o}async function NI(e,t,n,r,i,o){let a=await HR(e,t,n,r,i,o),s=await ve(e.appId,n,i),l=wl(e,a,s),u=e.assignments.map(d=>d.field),p=await ee(e.appId,n,i),c=await xt(e.appId,u,p,n,i);if(_n(l.flatMap(d=>d.records.map(f=>f.record)),u,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ge("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function PI(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 CI(e,t,n,r){if(await cr(e,t,r),st(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return DI(e,t,n,r);let i=nf(e),a=(await ha(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 ge("DELETE",a.length);let s=rf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function OI(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return JT(e,t,n,r);if(e.checkGroups?.length)return zi(e,t,n,r);let i=await ut(e.appId,e.fields,t,r),o=await xt(e.appId,e.fields,i,t,r),a=[],s=[],l=await ve(e.appId,t,r),u=qR(e),p=await Yi(e.appId,e.keyFields,u,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((m,g)=>{let h=d[g];h.type==="CASE_VALUE"?R[m]={value:en(h.expr,{},l.get(m))}:R[m]={value:Lt(h,l.get(m))}});let E=Hi(p,u[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),_n([...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 ge("UPDATE",d)}let c=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100)});c.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:c.flat().length,updatedCount:s.length}}function qR(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"?z(i):i.type==="CASE_VALUE"?Ge(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Fc(e,t,n,r){if(t.length===0)return;let i=await ve(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 LI(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 ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Rs(a),l=new Map;for(let p of e.values){let c=tR(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{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:tR(p[m])}}});let R=l.get(c);R?R.push(f):l.set(c,[f])}let u=[];for(let[p,c]of l.entries()){let d=s.get(p),R=[...qi(d,i),...c];u.push(JR(e.appId,p,Ji(d),i,R))}for(let p of u)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function _I(e,t,n,r){let i=e.subtableCode;if(!Li(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Mt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&rs(d.value.expr,o);let a=await Fc(e.appId,o,t,r),s=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Gc(s,i).filter(d=>se(e.where,d.flat,a));if(n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new ge("UPDATE",u.length);let p=new Map;for(let d of u){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=p.get(d.parentId);f||(f=new Map,p.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:ra(E.value,d.flat,a)}}f.set(d.rowId,R)}let c=Rs(s);for(let[d,f]of p.entries()){let R=c.get(d);if(!R)continue;let m=qi(R,i).map(g=>{let h=g.id??"";if(!h)return g;let T=f.get(h);return T?{id:h,value:T}:{id:h}});await t.putRecords(vI(e.appId,d,Ji(R),i,m))}return{type:"UPDATE",updatedCount:u.length}}async function DI(e,t,n,r){let i=e.subtableCode;if(!Li(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Mt(e.where,o);let a=await Fc(e.appId,o,t,r),s=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Gc(s,i).filter(d=>se(e.where,d.flat,a));if(n.confirm&&!await n.confirm(u.length,"DELETE"))throw new ge("DELETE",u.length);let p=new Map;for(let d of u){let f=p.get(d.parentId);f?f.push(d.rowIndex):p.set(d.parentId,[d.rowIndex])}let c=Rs(s);for(let[d,f]of p.entries()){let R=c.get(d);if(!R)continue;let E=qi(R,i),m=new Set(f),g=E.filter((h,T)=>!m.has(T));await t.putRecords(JR(e.appId,d,Ji(R),i,g))}return{type:"DELETE",deletedCount:u.length}}function Rs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Gc(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Ji(r),a=qi(r,t);for(let s=0;s<a.length;s++){let l=a[s],u={...oa(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(u[`_p.${p}`]=oc(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:u})}}return n}function qi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Ji(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function JR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function vI(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function UI(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 tR(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ge(e.expr,{}):e.elements.map(t=>t.value).join(",")}function oc(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 Li(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Li(e.left)||Li(e.right);case"NOT":case"GROUP":return Li(e.expr);default:return!1}}async function MI(e,t,n,r){let i=[];Mt(e.where,i);let o=await Fc(e.appId,i,t,r),a=await ee(e.appId,t,r);if(st(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??te(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return $("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??$("string")},u=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Gc(u,e.subtableCode),c=e.all?new Set(u.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&se(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ge("UPDATE",c.size);let d=Rs(u);for(let f of c){let R=d.get(f);if(!R)continue;let m=qi(R,e.subtableCode).map((h,T)=>({row:h,i:T,flat:kI(R,e.subtableCode,h,T)}));m.sort((h,T)=>xI(h.flat,T.flat,e.by,l));let g=m.map(h=>h.row.id??"");await t.putRecords(UI(e.appId,f,Ji(R),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function kI(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}`]=oc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=oc(a?.value);return i}function xI(e,t,n,r){for(let i of n){let o=nR(i.key,e),a=nR(i.key,t),s=i.key.type==="FIELD_NAME"?r(De(i.key.name)):i.key.type==="ARITH_KEY"?$("number"):i.key.type==="FUNC_KEY"?Cn(i.key.expr).semantics??$("string"):$("number"),l=tt(o,a,s??$("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function nR(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,t));case"FUNC_KEY":return me(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Kc(e,t,n,r,i){if(e.checkGroups?.length)return zi(e,t,n,r,i);let o=await ut(e.appId,e.fields,t,r),a=await xt(e.appId,e.fields,o,t,r),s=await kc.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(jR(s),u.length!==e.fields.length){let g=u.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${u.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],d=await ve(e.appId,t,r),f=l.map((g,h)=>{let T={};return e.fields.forEach((y,b)=>{if(s.importPresence&&!s.importPresence[h]?.has(y))return;let P=g[u[b]]??"";T[y]={value:$R(P,d.get(y))}}),T});f.forEach(g=>_n([g],e.fields.filter(h=>h in g),o,a));let R=f.map(g=>e.keyFields.map(h=>String(g[h]?.value??"")));if(ss.has(e)){let g=e.keyFields.map(T=>d.get(T)==="NUMBER"),h=new Set;for(let T of R){let y=Ln(T,g);if(h.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");h.add(y)}}let E=await Yi(e.appId,e.keyFields,R,t,n,d);if(f.forEach((g,h)=>{let T=Hi(E,R[h]);T!==void 0?c.push({id:T,record:g}):p.push(g)}),n.confirm&&p.length+c.length>0){let g=p.length+c.length;if(!await n.confirm(g,"UPDATE"))throw new ge("UPDATE",g)}let m=[];for(let g=0;g<p.length;g+=100){let h=await t.postRecords({app:e.appId,records:p.slice(g,g+100)});m.push(h.ids)}for(let g=0;g<c.length;g+=100)await t.putRecords({app:e.appId,records:c.slice(g,g+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}var Bc=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),$c=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 XR(e){let t=await e.getApps(),n=[...Bc],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 QR(e,t,n){let r=await ee(e.appId,t,n),i=[...$c],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 FI(e,t=!1){try{let n=new Xt(e).tokenize(),r=new Qt(n,{import:t}).parse();return $n("phase15b",r),et(r),r}catch(n){throw n instanceof Le||n instanceof S,n}}async function Bi(e,t,n,r,i,o){let a=[];Qa(e,t,n,r,a,i,o),await Promise.all(a)}async function ZR(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(Bi(l.condition,t,n,r,i,o));await Promise.all(a)}function _i(e,t,n,r,i){return i!==void 0&&i.size>0?lt(e,t,n,i,r):kt(e,t,n,r)}function Qa(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(_i(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);let u=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(p=>p[u]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(_i(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);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 u=l.columns[0]??"";s.resolved=l.rows[0]?.[u]??""}));break}case"LOGICAL":Qa(e.left,t,n,r,i,o,a),Qa(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Qa(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(_i(s.query,t,n,r,a).then(l=>{for(let u of l.warnings??[])o.add(u);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function em(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await kt(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 tm(e,t,n,r,i,o){let a=new Map,s=[];for(let p=0;p<e.length;p++){let c=e[p];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(c.query),f=a.get(d);f||(f=_i(c.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);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([p,f])}let l=await Promise.all(s.map(([,p])=>p)),u=new Map;return s.forEach(([p],c)=>u.set(p,l[c])),u}var nm=new WeakMap,rm=new WeakMap,im=new WeakMap,ac=new WeakMap,Wc=new WeakMap,om=new WeakMap,am=new WeakMap;async function sm(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,u={...t,getFields:async N=>(a.add(N),t.getFields(N)),getProcessStatuses:async N=>(s.add(N),t.getProcessStatuses(N)),getNumberPrecision:async N=>(l.add(N),t.getNumberPrecision(N))},p=new Map,c=new Map,d=new Map,f=new Set,R=i??await Wi(e,u,n),E=N=>R.nodes.find(U=>U.source===N||JSON.stringify(U.source)===JSON.stringify(N)),m=new Map(o??[]),g=new Set(o?.keys()??[]),h=new Map([...o??new Map].map(([N,U])=>[N,U.rows.length])),T=new WeakMap,y=N=>ue(N)??(N.appId>0?`APP${N.appId}`:"source"),b=N=>N.cteName===Ce?1:N.cteName!==null?h.get(N.cteName)??null:null,P=N=>{let U=b(N.from),w=y(N.from),D=[];for(let I of N.joins){let x=b(I.table),L=y(I.table);if(I.type==="CROSS"){let F=U!==null&&x!==null?ai(U,x):null;D.push({leftLabel:w,rightLabel:L,leftRows:U,rightRows:x,plan:F,rightRuntimeLabel:I.table.cteName===null?`APP${I.table.appId} fetched rows`:`${L} materialized rows`}),U=F?.outputRows??null,w=`${w} \xD7 ${L}`}else U=null,w=`${w} ${I.type} JOIN ${L}`}if(D.length>0&&Wc.set(N,D),st(N.where)?U=0:N.where!==null&&(U=null),(Z(N).type!=="NONE"||N.distinct||N.having!==null||Yn(N)||N.columns.some(I=>I.type==="WINDOW_COL"))&&(U=null),U!==null){let I=N.offset??0;U=Math.max(0,U-I),N.limit!==null&&(U=Math.min(U,N.limit)),T.set(N,U)}},v=async N=>{let U=[N.from,...N.joins.map(D=>D.table)];if(U.length>1&&N.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===Ce)continue;let I=m.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 A=await ee(D.appId,u,n);D.subtableCode?(w.push(...A.filter(I=>I.inSubtable&&(I.subtableCode===D.subtableCode||I.subtableCode===void 0)).map(I=>I.code)),w.push("_pid","_rid","_idx"),w.push(...A.filter(I=>!I.inSubtable).map(I=>`_p.${I.code}`))):(w.push(...A.filter(I=>!I.inSubtable).map(I=>I.code)),w.push(...Ro))}return[...new Set(w)]},C=async N=>{if(N===null||typeof N!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let U=N;if(U.type==="SELECT"){let w=N,D=await v(w);if(w.columns.length===1&&w.columns[0].type==="WILDCARD")return D;let A=[];for(let I of w.columns)I.type==="WILDCARD"?A.push(...D):I.type==="PARENT_WILDCARD"?A.push(...D.filter(x=>x.startsWith("_p."))):A.push(...An([],[I]).columns);return A}if(U.type==="UNION")return C(U.left);if(U.type==="SHOW_APPS")return[...Bc];if(U.type==="DESCRIBE")return[...$c];if(U.type==="GENERATE_SERIES")return[N.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},M=async N=>{if(N===null||typeof N!="object")return;if(Array.isArray(N)){for(let w of N)await M(w);return}let U=N;if(U.type==="WITH"){let w=N;for(let D of w.ctes){if(await M(D.query),D.query.type==="GENERATE_SERIES"){if(D.query.args.some(x=>x.type==="VARIABLE")){m.set(D.name,{rows:[],columns:[D.query.columnAlias]});continue}let I=GR(D.query);m.set(D.name,{rows:I.rows,columns:I.columns,columnMeta:le.get(I),uniqueGeneratedColumn:D.query.columnAlias}),g.add(D.name),h.set(D.name,I.rows.length);continue}let A=await C(D.query);if(m.set(D.name,{rows:[],columns:A}),D.query.type==="SELECT"){let I=T.get(D.query);I!==void 0&&h.set(D.name,I)}}await M(w.query);return}if(U.type==="UNION"){await M(U.left),await M(U.right);return}if(U.type==="SELECT"){let w=N;P(w);for(let I of w.columns)I.type==="SCALAR_SUBQUERY_COL"&&await M(I.query);if(await M(w.where),await M(w.having),await Ui(w,u,n,m),![w.from,...w.joins.map(I=>I.table)].some(I=>I.cteName!==null&&!m.has(I.cteName))){let I=await dr(w,u,n,m);I&&d.set(w,I)}return}for(let w of Object.values(U))await M(w)};await M(e);let O=async N=>{if(N===null||typeof N!="object"||f.has(N))return;if(f.add(N),Array.isArray(N)){await Promise.all(N.map(O));return}let U=N;if(U.type==="SELECT"){let w=N;await Ui(w,u,n);let D=[w.from,...w.joins.map(_=>_.table)].some(_=>_.cteName!==null);if(Z(w).type==="PLAIN"&&!D){let _=await dr(w,u,n);_&&d.set(w,_)}let A=[w.from,...w.joins.map(_=>_.table)].filter(_=>_.cteName===null).map(_=>_.appId);(mt(w.where)||w.orderBy.length>0||w.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0))&&A.forEach(_=>a.add(_));let{resolver:x,rewrites:L}=await wn(w,u,n);L.length>0&&ac.set(w,L);let F=ye(w.where,x),W=E(w);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(F)}).`);p.set(w,F);let K=await us(w,u,n),G=Ic.get(w)??ls(w,K);G&&nm.set(w,G);let j=G??dn(w,K);rm.set(w,j);let B=new Map;for(let _ of w.joins){let H=_.table.alias;if(_.type!=="INNER"||!H||_.table.subtableCode)continue;let ne=_.on.left.tableAlias,Pe=_.on.right.tableAlias;if(!ne||!Pe)continue;let Gt=ne===H&&Pe!==H?Pe:Pe===H&&ne!==H?ne:void 0,re=ne===H?_.on.right.field:_.on.left.field,an=ne===H?_.on.left.field:_.on.right.field;if(!Gt)continue;let Kt=[w.from,...w.joins.map(Me=>Me.table)].find(Me=>ue(Me)===Gt),tp=(await ee(_.table.appId,u,n)).find(Me=>Me.code===fe(_.table,an)),Ym=tp?_e(tp,_.table.appId):qe(an),bs,Ns,np,rp;if(Kt?.cteName!==null&&Kt?.cteName!==void 0){let Me=m.get(Kt.cteName);bs=Me?.columnMeta?.get(re),g.has(Kt.cteName)&&Me&&(np=Me.rows.length,Ns=Me.rows.map(Tt=>Lc(Tt[re])),rp=Ns.some(Tt=>Tt.length===0))}else if(Kt){let Me=(await ee(Kt.appId,u,n)).find(Tt=>Tt.code===fe(Kt,re));bs=Me?_e(Me,Kt.appId):qe(re)}let ro=Xl({fieldType:Ym?.fieldType,sourceSemantics:bs?.semantics,sourceRowCount:np,values:Ns,hasEmptyValue:rp,maxInKeys:Ja});if(ro.kind==="FALLBACK"&&ro.reason==="JOIN_KEY_VALUES_RUNTIME"&&(G?.joinPlan.items.some(Tt=>Tt.targetAlias===H)||G?.joinPlan.serverFunctionConsumptions.some(Tt=>Tt.targetAlias===H)))continue;let jm=Jl(ro,an,ki),ip=j.joinConditions.get(H),zm=ip?Y(ip):void 0,qm=j.joinRelations.get(H);B.set(H,{plan:ro,queries:jm,additionalQuery:zm,additionalRelation:qm})}if(B.size>0&&im.set(w,B),w.orderBy.length>0||w.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0)){let _=await xi(w,u,n);if(w.orderMode!=="KINTONE_NATIVE")for(let H of _.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(ts(w)&&!D&&W?.allowed!==!1){let H=F.capability==="EXACT_PUSHDOWN"?We(w):"FULL_SCAN";c.set(w,(w.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:w,staticMode:H,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:Ie(w.where)}))}}}else if(U.type==="VALIDATE"){let w=N;a.add(w.appId);let D=await ee(w.appId,u,n),A=new Map(D.filter(_=>!_.inSubtable).map(_=>[_.code,_])),I=new Set(D.filter(_=>_.inSubtable).map(_=>_.code)),x=Bl(w,D),L=er(w.checkGroups??[]),F=gc(w.where);for(let _ of L){if(_.field!=="$id"&&!A.has(_.field)&&!I.has(_.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u306F APP${w.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(_.field!=="$id"&&!A.has(_.field)&&I.has(_.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let _ of F){if(_!=="$id"&&!A.has(_)&&!I.has(_))throw new Error(`ArgumentError: WHERE field ${_} does not exist in APP${w.appId}.`);if(_!=="$id"&&!A.has(_)&&I.has(_))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...A].map(([_,H])=>[_,H.fieldType]));W.set("$id","RECORD_NUMBER"),Dn(w,W);let K=ye(w.where,_=>_.field==="$id"?te({fieldType:"__ID__"}):A.get(_.field)?.semantics??(A.has(_.field)?te(A.get(_.field)):void 0));if(K.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(K)}).`);let k=new Map([...A].map(([_,H])=>[_,H.fieldType])),G=new Map([...A.values()].flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[])),j=w.where===null?null:K.capability==="EXACT_PUSHDOWN"?w.where:el(w.where,{allowUnqualifiedFields:!0,fieldTypes:k,fieldOptions:G,allowKlike:!1}),B=x.some(_=>_.field.fieldType==="NUMBER");B&&(l.add(w.appId),await St(w.appId,u,n)),om.set(w,{targetFields:x.map(_=>_.subtableCode?`${_.subtableCode}(${_.field.code})`:_.field.code),fetchFields:[...new Set(["$id",...x.map(_=>_.subtableCode??_.field.code),...F,...L.map(_=>_.field)])],subtables:new Map([...new Set(x.flatMap(_=>_.subtableCode?[_.subtableCode]:[]))].map(_=>[_,x.filter(H=>H.subtableCode===_).length])),capability:K,prefilter:j,numberPrecision:B})}else if(U.type==="UPDATE"||U.type==="DELETE"){if(a.add(N.appId),U.type==="UPDATE"&&N.applyBlocks?.length){let D=N,A=await ee(D.appId,u,n);if(_t(D,A),is(D)){let I=A.filter(L=>!L.inSubtable),x=nu(D.where,{fieldTypes:new Map(I.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(I.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});am.set(D,x)}}let w=N;(w.type!=="UPDATE"||!is(w))&&E(w)?.allowed!==!1&&await cr(w,u,n)}await Promise.all(Object.values(U).map(O))};if(await O(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Yt(e)){let N=jt(e),{resolver:U,rewrites:w}=await wn(N,u,n);w.length>0&&ac.set(N,w);let D=ye(N.where,U),A=E(N);if(D.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(D)}).`);if(p.set(N,D),ts(N)&&A?.allowed!==!1){let I=await xi(N,u,n);c.set(N,(N.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:N,staticMode:D.capability==="EXACT_PUSHDOWN"?We(N):"FULL_SCAN",whereCapability:D.capability,whereReasons:D.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:Ie(N.where)}))}}return{capabilities:p,orderPlans:c,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function sc(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 GI(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 rR(e){return e==="<>"?"!=":e}function ot(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(ot).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ot(t.expr);case"GROUPING_FIELD":return`GROUPING(${ot(t.ref)})`;case"GROUPING_REF":return ot(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ot(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ot(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(ot).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ot).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Tn(e){try{let t=e;switch(t.type){case"BINARY":return`${ot(t.left)} ${GI(t.op)} ${ot(t.right)}`;case"NULL_CHECK":return`${ot(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Tn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Tn(t.right)})`;case"NOT":return`NOT (${Tn(t.expr)})`;case"GROUP":return`(${Tn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function lc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ie(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?KI(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 u=xu(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ku(u)}: ${u}`,` ${Fu(u)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Tn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ie)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ie(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=xu(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=rR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${ku(l)}: ${l}`,` ${Fu(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${iR(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=xu(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=rR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${ku(l)}: ${l}`,` ${Fu(l)}: kintone server exact prefilter`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=Y(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Tn(o.residualWhere)}`,` ${iR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ie(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 KI(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,u=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((u||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function ku(e){return ie(e)?"relative date function":"kintone function"}function xu(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 Fu(e){return ie(e)?"relative date evaluation":"kintone function evaluation"}function iR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ie(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var lm=new WeakMap;function uc(e,t){if(Array.isArray(e))return e.map(r=>uc(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 u=s.value.slice(1);r.set(l,u);let p=t.get(u);return p===void 0?{type:"VARIABLE",name:u}:(i.add(l),{type:"STRING",value:p,fromVariable:!0})}),a={...n,args:o};return lm.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,uc(i,t)]))}function bi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Bc]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...$c]};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 u=bi(l.query,s);s.set(l.name,u)}return bi(e.query,s)}if(e.type==="UNION"){let s=bi(e.left,t),l=bi(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!==Ce);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(...An([],[s]).columns);return{status:"STATIC",columns:a}}function BI(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function $I(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,u=[l.from,...l.joins.map(p=>p.table)];if(u.some(p=>p.cteName!==null)&&u.every(p=>p.cteName===Ce||p.cteName!==null&&r.has(p.cteName))){let p=await dr(l,t,n,r);p&&i.set(l,p)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var um=Symbol("ksql.explainFetchPlan");function Vc(e){return e[um]}function cm(e,t){e[um]=t}async function pm(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ne,u=!0,p,c,d){let f=Rt({recursiveCteMaxDepth:p,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),R=pc(r);try{let E=yc(e,a),m=pl(E),g=jl(E,n),h=mR(E,g),T=new Map,y=new Map,b=new Map,P=[],v=[];for(let M=0;M<E.length;M++){let O=E[M],N=O.type==="SET_VARIABLE"?O.expr.type==="SCALAR_SUBQUERY"?{...O,expr:es(O.expr,T)}:O:es(O,T),U=uc(N,y);et(U);let w=await Wi(U,t,R),D=BI(b),A=u?await sm(U,t,R,i,w,D):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:w};if(!u){let W=await $I(U,t,R,D);for(let[K,k]of W)A.plainGroupByPlans.set(K,k)}let I;if(U.type==="CREATE_TEMP_TABLE"){let W=new Map([...b].map(([k,G])=>[k,G.status==="STATIC"?{status:"STATIC",columns:G.columns}:{status:"DEFERRED"}])),K=bi(U.query,W);I=K.status==="STATIC"?{status:"STATIC",columns:K.columns,relation:{rows:[],columns:[...K.columns]},producerStatement:M+1}:{status:"DEFERRED",producerStatement:M+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},b.set(U.name,I)}let x={sources:[]},L=w.hasServerOnlyWhereFunction&&!w.allowed?lc(w):[...lc(w),...fm(WI(U,m.statements[M],A.capabilities,A.orderPlans,A.plainGroupByPlans,s,l,x,b,I,{maxRecords:i,recursiveLimits:f}),o)],F=sc(A);P.push({index:M,type:m.statements[M].statementType,plan:L.length===0?F:[L[0],...F,...L.slice(1)]}),v.push({index:M,fetch:Hc(x.sources),sources:x.sources}),U.type==="DROP_TEMP_TABLE"&&b.delete(U.name),(O.type==="SET_VARIABLE"||O.type==="DECLARE_VARIABLE")&&(T.set(O.name,O.type==="DECLARE_VARIABLE"&&O.annotation==="RELATIVE_DATE"?{type:"relative-date",value:h.get(O.name)}:O.type==="SET_VARIABLE"&&O.expr.type==="ARRAY"?{type:"array",elements:O.expr.elements.map(W=>({type:"string",value:W.value}))}:{type:"string",value:`@${O.name}`,placeholder:!0}),O.type==="DECLARE_VARIABLE"&&O.annotation===void 0&&(O.default.type==="STRING"||O.default.type==="NUMBER")&&y.set(O.name,O.default.type==="STRING"?O.default.value:z(O.default)))}let C={statementCount:E.length,statements:P};return cm(C,{statements:v}),C}finally{_c(R)}}function WI(e,t,n,r,i,o=100,a=Ne,s={sources:[]},l=new Map,u,p=dm()){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",...u?.status==="STATIC"?[` schema: ${u.columns.join(", ")}`,` schema source: SELECT output of statement ${u.producerStatement}`]:u?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${u.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Je} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ii(e.query,t,n,r,i,s,"main",l,p).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=os(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:",...Ii(e.expr.query,c,n,r,i,s,"main",l,p).map(d=>` ${d}`)]}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 Ii(e.query,t,n,r,i,s,"main",l,p);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"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,R)=>{c.push(d.length>1?` subquery[${R+1}]:`:" subquery:");let E=os(f.query)?t:{...t,tempTablesReferenced:[]};c.push(...Ii(f.query,E,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ms(e,void 0,n,r,o,a,1e4,i):Ii(e,t,n,r,i,s,"main",l,p)}function os(e){if(Array.isArray(e))return e.some(os);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(os)}return!1}function Ii(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=dm()){if(t.tempTablesReferenced.length===0)return ms(e,void 0,n,r,100,Ne,l.maxRecords,i,!0,o,a,l.recursiveLimits);let u=[];e.type==="INSERT_SELECT"?u.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"&&u.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`),u.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),u.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(f=>[f,s.get(f)]);for(let[f,R]of p)R?.status==="STATIC"?u.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(u.push(` source: temp table ${f}`),u.push(" schema: deferred (could not be derived statically)"));u.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&&u.push(...Em(c,i?.get(c),p.some(([,f])=>f?.status!=="STATIC"))),u.push(p.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),u.push(" records API: none");let d=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return d.length>0&&u.push(` app: ${d.map(f=>`APP${f}`).join(", ")}`),u.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),u}var cc=new WeakMap;function dm(){return{maxRecords:1e4,recursiveLimits:Rt({})}}async function VI(e,t,n,r,i,o=100,a=Ne,s,l,u,p){let c=Rt({recursiveCteMaxDepth:l,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),d=s??await Wi(e.query,t,n),f=await sm(e.query,t,n,r,d,cc.get(e)),R={sources:[]},E=lc(d),m=d.hasServerOnlyWhereFunction&&!d.allowed?[...sc(f),...E]:[...sc(f),...E,...fm(ms(e.query,void 0,f.capabilities,f.orderPlans,o,a,r,f.plainGroupByPlans,!0,R,"main",c),i)],g=Za(m,R.sources),h={type:"SELECT",columns:["plan"],rows:g.map(T=>({plan:T})),rowCount:g.length};return cm(h,{statements:[{index:0,fetch:Hc(R.sources),sources:R.sources}]}),h}function fm(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 ms(e,t,n,r,i=100,o=Ne,a=1e4,s,l=!0,u,p="main",c=Rt({})){let d=u??{sources:[]};if(e.type==="UNION"){let R=qI(e,n,r,s,d);return l?Za(R,d.sources):R}if(e.type==="WITH"){let R=XI(e,n,r,s,d,a,c);return l?Za(R,d.sources):R}if(e.type==="INSERT")return ew(e,t,i,o);if(e.type==="INSERT_SELECT")return tw(e,t,n,r,s);if(e.type==="UPSERT")return ow(e,t,i,o);if(e.type==="UPSERT_SELECT")return aw(e,t,n,r,s);if(e.type==="UPDATE")return nw(e,t,n,r,i,o,a);if(e.type==="DELETE")return iw(e,t);if(e.type==="REORDER")return sw(e,t);if(e.type==="VALIDATE")return jI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=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",...m.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 R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=at(e,t,n,r,s,!0,!0,d,p);return l?Za(f,d.sources):f}var oR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Hc(e){return e.reduce((t,n)=>oR[t]>=oR[n.fetch]?t:n.fetch,"none")}function Za(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Hc(t).toUpperCase()}`,...n]}function HI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Ha(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:HI(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 Ya(e){return` fetch: ${YI(e)}`}function jI(e,t){let n=om.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)":Y(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?mc:Rc).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 zI(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 Em(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 at(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let u=n?.get(e)??(n?[...n].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),c=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),d=o&&u!==void 0&&vR(e,u),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":We(e),R=QI(e);u&&u.capability!=="EXACT_PUSHDOWN"&&R.push(...u.reasons.map(y=>y.code));let E=[],m=Mf(e,vi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let y of Wc.get(e)??[]){if(E.push(` cross join: ${y.leftLabel} \xD7 ${y.rightLabel}`),E.push(` left rows: ${y.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${y.rightRows??`runtime (${y.rightRuntimeLabel})`}`),y.plan)E.push(` rows: ${y.plan.outputRows}`),E.push(` row guard: ${y.plan.outputRows} / ${y.plan.limit}`),E.push(" guard timing: before row materialization");else{let b=y.leftRows===null?"left rows":String(y.leftRows),P=y.rightRows===null?"right rows":String(y.rightRows);E.push(` rows: runtime (${b} \xD7 ${P})`),E.push(` row guard: runtime checked / ${Ql}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let y of ac.get(e)??hR.get(e)??[])E.push(zI(y));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...Em(e,c,[e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null)));for(let y of e.columns){if(y.type!=="WINDOW_COL"||y.windowKind===void 0||y.windowKind==="RANKING")continue;let b=[];y.partitionBy.length>0&&b.push(`PARTITION BY ${y.partitionBy.map(P=>P.tableAlias?`${P.tableAlias}.${P.field}`:P.field).join(", ")}`),y.orderBy.length>0&&b.push(`ORDER BY ${y.orderBy.map(Rm).join(", ")}`),y.windowKind==="VALUE"?E.push(` window ${y.alias}: ${y.valueFunc}(offset=${y.offset}) OVER (${b.join(" ")})`):y.windowKind==="AGGREGATE"&&(E.push(` window ${y.alias}: ${y.aggFunc} OVER (${b.join(" ")})`),E.push(y.frame===null?" frame: PARTITION ENTIRE":` frame: ${y.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${y.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let y=e.where===null?"":Y(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${y}${y?" ":""}limit 1`),a){let b=Ha(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${y}${y?" ":""}limit 1`);E.push(Ya(b))}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}p?(E.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&E.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):p.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: ${p.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let g=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,h=Bt(g);p?.requiresCompleteInput&&h.add("LOCAL_ORDER");let T=st(e.where);if(h.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...h].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)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 y=Io(p?.kind==="CANONICAL_REST_TOP_N"?OR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let b=p?.kind==="KORDER_CURSOR"?ru(e):y.query;if(E.push(` kintone query: ${b||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let P=b?"EXACT":"ALL";E.push(Ya(Ha(s,e.from.appId,e.from.alias,l,P,b)))}E.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=nm.get(e),b=rm.get(e),P=b??dn(e);if(e.joins.length>0)if(y){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)"),y.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Tn(y.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let I of y.joinPlan.rejections)E.push(` join pushdown not applied: ${I.reason}`)}else{let I=e.joins.some(x=>x.type!=="INNER"&&x.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(x=>x.table)].some(x=>x.cteName!==null||!!x.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=pn(e,e.from,c),C=e.from.alias?` AS ${e.from.alias}`:"",M=P.mainCondition,O=NR(e),N=e.joins.length===0&&u?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!bt(e.where)?Y(e.where):"",U=e.from.alias?y?.queriesByAlias.get(e.from.alias):void 0,w=U||(M!==null?Y(M):N||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),E.push(` kintone query: ${w}`);let D=y?.joinPlan.items.find(I=>I.targetAlias===e.from.alias),A=y?.joinPlan.serverFunctionConsumptions.find(I=>I.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let I=!b&&O!==null,x=w==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":I?"PREFILTERED":D?.relation==="exact"||A||N!==""?"EXACT":"PREFILTERED";E.push(Ya(Ha(s,e.from.appId,e.from.alias,l,x,w,I)))}D||A?(E.push(` pushdown applied: ${U}`),E.push(` relation: ${D?.relation??"exact"}`)):b&&M!==null?(E.push(` pushdown applied: ${w}`),E.push(` relation: ${P.mainRelation??"exact"}`)):O!==null&&(!b||Pi(O))&&E.push(` pushdown candidate: ${Y(O)}\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 x=pn(e,I.table,c),L=I.table.alias?` AS ${I.table.alias}`:"",F=I.type==="INNER"?"JOIN":`${I.type} JOIN`,W=I.table.alias?P.joinConditions.get(I.table.alias)??null:null,K=I.table.alias&&!I.table.subtableCode&&I.table.cteName===null&&e.where?Mr(e.where,{tableAlias:I.table.alias}):null,k=I.table.alias?y?.queriesByAlias.get(I.table.alias):void 0,G=I.table.alias?im.get(e)?.get(I.table.alias):void 0,j=!b&&I.type==="INNER"&&I.table.cteName===null&&!I.table.subtableCode&&[e.from,...e.joins.map(re=>re.table)].some(re=>re.cteName!==null),B=k||(W!==null?Y(W):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),_=j||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",H=G&&G.queries.length>0?G.queries.map(re=>B!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${re}) and (${B})`:re):[_?"(runtime source keys)":B],ne=H.join(" | ");E.push(` ${F}: APP${I.table.appId}${L} (${I.table.appId})`);for(let re of H)E.push(` kintone query: ${re}`);let Pe=y?.joinPlan.items.find(re=>re.targetAlias===I.table.alias),Gt=y?.joinPlan.serverFunctionConsumptions.find(re=>re.targetAlias===I.table.alias);if(a&&I.table.cteName===null){let re=_||!G&&!b&&K!==null,an=ne==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":re?"PREFILTERED":G?.plan.kind==="IN"&&Pe?.relation!=="superset"&&G.additionalRelation!=="superset"||Pe?.relation==="exact"||Gt?"EXACT":"PREFILTERED";E.push(Ya(Ha(s,I.table.appId,I.table.alias,"join",an,ne,re)))}if(G)if(G.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let re of H)E.push(` pushdown applied: ${re}`);E.push(" relation: superset")}else if(G.plan.kind==="IN"){let re=Pe?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let an of H)E.push(` pushdown applied: ${an}`);E.push(` relation: ${re}`)}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"),K!==null&&E.push(` pushdown candidate: ${Y(K)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):Pe||Gt?(E.push(` pushdown applied: ${k}`),E.push(` relation: ${Pe?.relation??"exact"}`)):b&&W!==null?(E.push(` pushdown applied: ${B}`),E.push(` relation: ${P.joinRelations.get(I.table.alias)??"exact"}`)):K!==null&&(!b||Pi(K))&&E.push(` pushdown candidate: ${Y(K)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${x.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":x.join(", ")}`)}}return E.push(...ZI(e,n,r,i,s)),E}function qI(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,u)=>{u>0&&s.push(""),s.push(...at(l,`[union:${u+1}]`,t,n,r,!0,!0,i,"union"))}),s}function JI(e){let t=new Map,n=a=>ue(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Ce?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),u=[];for(let p of a.joins){let c=r(p.table),d=n(p.table);if(p.type==="CROSS"){let f=s!==null&&c!==null?ai(s,c):null;u.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:c,plan:f,rightRuntimeLabel:p.table.cteName===null?`APP${p.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${p.type} JOIN ${d}`}return u.length>0&&Wc.set(a,u),st(a.where)?s=0:a.where!==null&&(s=null),Z(a).type!=="NONE"||a.distinct||a.having!==null||Yn(a)||a.columns.some(p=>p.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,Vo(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 XI(e,t,n,r,i={sources:[]},o=1e4,a=Rt({})){JI(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let u=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",u?` cycle: path-scoped on ${u.column}, mark ${u.markColumn} ('${u.markValue}'/'${u.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let p of FR(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let c=`APP${p.appId}${p.subtableCode?`$${p.subtableCode}`:""}`;s.push(` source ${c}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...at(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let u=l.query,p=lm.get(u);if(u.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=u.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${Nt}`," records API: none","");continue}let d=Vo(u),f=d.kind==="DATE"?`${d.step} ${String(d.dateUnit??"DAY").toLowerCase()}${Math.abs(d.step)===1?"":"s"}`:String(d.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`,` series type: ${d.kind}${p?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${p?.variableNames.has(0)?`@${p.variableNames.get(0)} (DECLARE default; value hidden)`:d.start}`,` stop: ${p?.variableNames.has(1)?`@${p.variableNames.get(1)} (DECLARE default; value hidden)`:d.stop}`,` step: ${f}`,` rows: ${d.rowCount}${p?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${d.rowCount} / ${Nt}`,...p?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...ms(e.query,"[main]",t,n,100,Ne,o,r,!1,i,"main",a)),Yt(e)){s.push("");let l=jt(e);s.push(...at(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function QI(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"),bt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Wt(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 ZI(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(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...at(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(...at(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function ew(e,t,n=Ft,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,...Yc(Ra(e,n,r))]:a}function tw(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function nw(e,t,n,r,i=100,o=Ne,a=1e4){if(e.applyBlocks?.length)return rw(e,t,i,o,a);let s=Qd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),u=na(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?$i(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${$i(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(st(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"),p&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!u&&!p&&d.push("\u5358\u7D14 SET"),c.push(` set type: ${d.join(", ")}`),u){let f=lw(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${cw(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...at(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return c}function rw(e,t,n,r,i){let o=Ra(e,n,r),a=o.branches[0],u=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"}),p=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],c=p.includes("REMOVE"),d=am.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":Y(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: ${$i(e.where)}`,`parent cardinality: ${wt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${u.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Yc(o)]}function iw(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${$i(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(st(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function ow(e,t,n=Ft,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,...Yc(Ra(e,n,r))]:a}function Yc(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 aw(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function sw(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(Rm).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,st(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: ${$i(e.where)}`),o}function Rm(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function $i(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return Y(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function lw(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&as(n,t),n.type==="STRING_FUNC"&&as(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Di(n,t);return[...t]}function as(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"&&(as(e.left,t),as(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"&&Di(n,t)}async function mm(e,t,n,r,i){let o=Mc(e),a=await ve(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 ve(t.appId,n,r),u=new Set,p=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`);u.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`);p.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`);u.add(d.field)}let c=new Map;for(let[d,f]of a)c.set(d,f),c.set(`APP${e.appId}.${d}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)c.set(`${t.alias}.${d}`,f);return{targetFields:[...u],sourceFields:[...p],evaluationTypes:c}}function uw(e,t,n){if(!e)return{};let r=vt(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 Di(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"&&Di(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Di(e.left,t),Di(e.right,t))}function cw(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} = ${gm(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 gm(e){return`${aR(e.left)} ${e.op} ${aR(e.right)}`}function aR(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"?z(e):e.type==="ARITH"?`(${gm(e)})`:"..."}var ge=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 Ue=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 jc(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 Qe(e){return new Ue("READ_ONLY_VIOLATION",e)}function gr(e,t){return new Ue("PARSE_ERROR",e,t)}function ym(){let e=new Pn;return new Ue("SEARCH_ABORTED",e.message,e)}function Xi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function pw(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 Un(e){return e instanceof Ue?e:e instanceof Le||e instanceof S?new Ue("PARSE_ERROR",Xi(e),e):e instanceof Pn||e?.name==="SearchAbortedError"?new Ue("SEARCH_ABORTED",Xi(e),e):e instanceof Fe||e?.name==="FetchAllLimitError"?new Ue("FETCH_LIMIT_EXCEEDED",Xi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Ue("CLIENT_ERROR",e.message,e.cause):pw(e)?new Ue("CLIENT_ERROR",Xi(e),e):new Ue("EXECUTION_ERROR",Xi(e),e)}function gs(e,t){let n=Un(e);if(e instanceof oe){let r=t[e.statementIndex];if(r!==void 0)return jc(n,e.statementIndex,r.type)}return n}var dw=2,ys=5,fw=3e4,Ew=10*6e4+3e4,hs=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??dw;if(!Number.isSafeInteger(r)||r<1||r>ys)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ys}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??fw,this.quarantineMs=n.quarantineMs??Ew}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 Pa(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>ys)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ys}.`)}};function Rw(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function mw(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Rw){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 gw(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 hm(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 u=await t.get();return u.next||(n=!0,t.onReleased?.()),u});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await gw(mw(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Am(e){return Sm(e,hw(e))}function Sm(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=Aw(o.options),s=Sw(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:As(o.minValue),maxValue:As(o.maxValue),minLength:As(o.minLength),maxLength:As(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)&&!yw.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Sm(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var yw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function hw(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 As(e){return e==null||e===""?void 0:e}function Aw(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 Sw(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Tm(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 Tw="Filter aborted because of too many search results";function Im(e){return e?.includes(Tw)===!0}var wm="/k/v1/records.json",Ss="/k/v1/records/cursor.json",Iw=4096,ww=2,zc=e=>kintone.api.url(e,!0);function bw(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(wm,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=Iw?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:zc(wm),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 Qi(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 Nw(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Qi({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}),Qi(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}),Qi(n)}}function Pw(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Mn(e,t,n){try{return await kintone.api(zc(e),t,n)}catch(r){throw Qi(r)}}function Cw(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Ow(e={}){let t=e.cursorMaxActive??ww;Cw(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=bw(a),l=await fetch(s.url,s.init);if(!l.ok)throw await Nw(l);let u=await l.json();return Im(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Qi(s)}},async openCursor(a){let s=zc(Ss),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 hs(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 u=await n.acquire(),p;try{p=await n.runCreate(()=>Mn(Ss,"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"?(u.release(),E):(u.quarantine(),new Ca(E))}let c=p.id,d=hm(Number(p.totalCount),{get:()=>Mn(Ss,"GET",{id:c}),delete:()=>Mn(Ss,"DELETE",{id:c}),isAlreadyReleasedError:Pw,onReleased:()=>u.release(),onReleaseUnknown:()=>u.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 u=await Mn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Mn("/k/v1/app/form/fields.json","GET",{app:a});return Am(s.properties)},async getNumberPrecision(a){let s=await Mn("/k/v1/app/settings.json","GET",{app:a});return yf(s)},async getProcessStatuses(a){let s=await Mn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Tm(s.states)}}}}var bm=new Set(["postRecords","putRecords","deleteRecords"]),Zi=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 on(e){try{return await e()}catch(t){throw new Zi(t)}}function Lw(e){return()=>{throw Qe(`${String(e)} is blocked by the readonly client`)}}function yr(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 u=await on(()=>t(l));if(u.searchAborted===!0)throw ym();return u},openCursor:async l=>{let u=await on(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>on(()=>p()),close:()=>on(()=>c())}},getApps:()=>on(()=>r()),getFields:l=>on(()=>i(l)),getNumberPrecision:l=>on(()=>o(l)),getProcessStatuses:l=>on(()=>a(l))});return new Proxy(s,{get(l,u,p){return bm.has(u)?Lw(u):Reflect.get(l,u,p)},has(l,u){return bm.has(u)?!1:Reflect.has(l,u)}})}function _w(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 Zi(o.reason)})(),n)}}}async function hr(e,t){let n=_w(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 Dw="A-Za-z",vw="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Jc=`${Dw}${vw}`,Pm=`${Jc}0-9_`,Uw=new RegExp(`^[${Jc}]$`,"u"),Mw=new RegExp(`^[${Pm}]$`,"u"),kw=new RegExp(`^[${Jc}][${Pm}]{0,63}$`,"u");function xw(e){return Uw.test(e)}function Fw(e){return Mw.test(e)}function Xc(e){let t=e.normalize("NFC").toUpperCase();if(!kw.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 qc(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 Gw(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 Kw(e,t){let n=t>0?e[t-1]:"";if(qc(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,!xw(e[l]??""))return null;for(l++;l<e.length&&Fw(e[l]);)l++;s=l;try{o=Xc(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&&qc(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&Gw(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(qc(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Qc(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=Kw(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Nm(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Cm(e,t="dev",n){let r=Qc(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let g=a(m.profile),h=o.get(m.appId);h||(h=new Set,o.set(m.appId,h)),h.add(g.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let g=a(m.profile).toLowerCase(),h=`logical:${m.logicalName}@${g}`;if(l.has(h))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${g} requires logicalApps configuration.`);let T=n.resolveLogicalApp(m.logicalName,g);l.set(h,T),s.add(T)}let u=new Map,p=new Map;for(let[m,g]of o.entries()){let h=[...g].sort();if(!(h.length<=1))for(let T of h){let y=Nm(s);u.set(`physical:${m}@${T}`,y),p.set(y,{source:"physical",mappedAppId:y,appId:m,profile:T})}}let c=[],d=[],f=0,R=0,E=(m,g,h,T)=>{if(!m&&g===h)return;let y=f;c.push(m),f+=m.length,d.push({normalizedStart:y,normalizedEnd:f,sourceStart:g,sourceEnd:h,...T===void 0?{}:{bindingMappedAppId:T}})};for(let m of r){let g=a(m.profile).toLowerCase(),h;if(m.source==="physical")h={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${g}`)??m.appId,appId:m.appId,profile:g};else{let b=`logical:${m.logicalName}@${g}`,P=u.get(b);P===void 0&&(P=Nm(s),u.set(b,P)),h={source:"logical",logicalName:m.logicalName,mappedAppId:P,appId:l.get(b),profile:g}}p.set(h.mappedAppId,h),E(e.slice(R,m.start),R,m.start);let T=e.slice(m.referenceValueEnd,m.appEnd),y=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${h.mappedAppId}${T}`:`APP${h.mappedAppId}${T}`;E(y,m.start,m.fullEnd,h.mappedAppId),R=m.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var Om=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),Lm=new Set([...Om,"onLimitReached"]),Bw=new Set([...Lm,"variables","tempTableMaxRows"]);function _m(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Ar(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Dm(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 $w(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 vm(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=Xc(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`);Ar(r,`logicalApps.${n}`),t[i]=r}return t}function Um(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)}`);e.maxRecords!==void 0&&Ar(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Ar(e[r],r);if(e.fetchParallel!==void 0&&Ar(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Ar(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.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Zc(e,t){_m(e);let n=t==="run"?Lm:Om;Dm(e.client);let r=Um(e,n,t==="run"?"runQuery":"explainQuery"),i=vm(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function Mm(e){_m(e),Dm(e.client),e.variables!==void 0&&$w(e.variables),e.tempTableMaxRows!==void 0&&Ar(e.tempTableMaxRows,"tempTableMaxRows");let t=Um(e,Bw,"runBatch"),n=vm(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 Ts(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>Ts(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ts(o,t,n)])):e}function Ww(e,t,n){return e.slice(t,n)}function eo(e,t,n){let r=Qc(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${Ww(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Cm(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function to(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 no(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ts(e,n,{logicalAppDisplay:"physical"})}function Is(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 Vw(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function Hw(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 ws(e,t=e.metrics){let n=sR(e);return{type:"query",rows:e.rows.map(Vw),columns:e.columns.map(r=>Hw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Is(t)}}function km(e,t={}){let n=new Xt(e).tokenize(),r=new Qt(n,t).parse();return et(r),r}function xm(e,t={}){let n=new Xt(e).tokenize(),r=new Qt(n,t).parseStatements();return r.forEach(et),r}function ep(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 Fm(e){if(e instanceof Ee)return gr(e.message,e);let t=Un(e);return t.code==="PARSE_ERROR"?t:gr("SQL statement could not be parsed",e)}function Yw(e){if(e.trim()==="")throw gr("SQL statement is empty");try{return km(e,{import:!0})}catch(t){let n=Fm(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?gr("This API accepts one statement; use runBatch for multiple statements",t):n}}function Gm(e){if(uo(e)==="UNKNOWN")throw Qe("Unclassifiable statement is not allowed");return e}function Km(e){if(e.trim()==="")throw gr("SQL statement is empty");try{return xm(e,{import:!0})}catch(t){throw Fm(t)}}function jw(e){let t=Gm(e),n=t.type;if(n==="IMPORT")throw Qe("IMPORT is disabled by default in engine library queries");if(!Fn(t))throw Qe(`${n} statements are not read-only`);if(ep(t))throw Qe("APPLY statements are not allowed in engine library queries");if(!Ep(t))throw Qe(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Bm(e){let t=Gm(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Qe("IMPORT is disabled by default in engine library batches");if(!Fn(n))throw Qe(`${n.type} statements are not read-only`);if(ep(n))throw Qe("APPLY statements are not allowed in engine library batches");if($t(n.type))throw Qe("DML VALIDATE ONLY statements are not supported by runBatch")}function $m(e){let t=Yw(e);return jw(t),t}function Wm(e){let t=Km(e);return t.forEach(Bm),t}function Vm(e){let t=e.trim(),n=Km(t);n.forEach(Bm);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 zw(e){let t=e.error,n=t?.cause!==void 0?Un(t.cause):new Ue("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return jc(n,e.index,e.type)}async function qw(e,t){let n=[],r=[];try{let i=Mm(t),o=eo(e,i.client,i.logicalApps);r=o.logicalBindings,n=Wm(o.sql);let a=await hr(o.client,p=>RR(o.sql,yr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw zw(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=ws(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?no(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw to(gs(i,n),r)}}function Hm(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Jw(e,t){let n=[];try{let r=Zc(t,"run"),i=eo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=$m(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await hr(i.client,l=>dc(i.sql,yr(l),{...a,captureColumnMeta:!0}));return Hm(s),ws(s)}catch(r){throw to(Un(r),n)}}async function Xw(e,t){let n=[],r=[];try{let i=Zc(t,"explain"),o=eo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Vm(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await hr(o.client,f=>dc(a.legacySql,yr(f),i.executeOptions));Hm(p);let c=no(p.rows.map(f=>String(f.plan??"")),r),d=Vc(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
16
- `),plan:d,metrics:Is(p.metrics)}}let s=await hr(o.client,p=>pm(o.sql,yr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions)),l=no(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=Vc(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
- `),plan:u,metrics:Is()}}catch(i){throw to(gs(i,n),r)}}var BD="3.66.0";export{Ue as KsqlEngineError,Ow as createReadonlyKintoneClient,Xw as explainQuery,qw as runBatch,Jw as runQuery,BD 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 gI(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${mI}`)}async function yI(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))]]:[])),u=ru(e.where,{fieldTypes:s,fieldOptions:l});gI(u);let p=u.prefilter===null?"":Y(u.prefilter),c=new Set(ia(e,r));for(let R of hI(e.where))c.add(R);let d=await AI(e.appId,e.where,a,t,i);return(await ke(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:vt(R,null)})).filter(({row:R})=>se(e.where,R,d.fieldTypeResolver,u.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function hI(e){return yc(e)}async function AI(e,t,n,r,i){let s=[...SI(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await vc(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return zn(te({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let d=c.semantics??te(c),f=c.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return zn(f,e,c.code)}}}function SI(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 TI(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...ft(n,e.fields).payloadFields,...ti],a=t.guards.parentRows,s=Yl(t),l=s.branches[0],u={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Gi(l),guards:Ki(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return vn.set(u,Es(o,n,e.appId)),u}function II(e,t,n){let r=t.validations,i=r.flatMap(u=>u.errors),o=r.reduce((u,p)=>u+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...ft(n,e.assignments.map(u=>u.field)).payloadFields,...ti],s=ii(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:Gi(s.branches[0]),guards:Ki(s.branches[0]),deletedRows:{total:t.plans.reduce((u,p)=>u+p.tables.reduce((c,d)=>c+d.deletedRows,0),0),parentRows:t.plans.filter(u=>u.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return vn.set(l,Es(a,n,e.appId)),l}function wI(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??[...ft(n,e.fields).payloadFields,...ti],l=jl(t),u=l.branches.find(R=>R.branch==="insert"),p=l.branches.find(R=>R.branch==="update"),c=Gi(u),d=Gi(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...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:c,guards:Ki(u)},update:{apply:d,guards:Ki(p)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,g)=>m+g.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return vn.set(f,Es([...s],n,e.appId)),f}function Gi(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:Nn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Nn(t,"ADD"),removedValues:Nn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Ki(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 Ft=100,Ne=500;function Xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Es(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:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,De(s,n));continue}o.set(a,Q(i.has(a)?"number":"string"))}return o}async function bI(e,t,n,r,i,o){let a=await HR(e,t,n,r,i,o),s=await Ue(e.appId,n,i),l=bl(e,a,s),u=e.assignments.map(d=>d.field),p=await ee(e.appId,n,i),c=await xt(e.appId,u,p,n,i);if(_n(l.flatMap(d=>d.records.map(f=>f.record)),u,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ge("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function NI(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 PI(e,t,n,r){if(await cr(e,t,r),lt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return _I(e,t,n,r);let i=nf(e),a=(await ha(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 ge("DELETE",a.length);let s=rf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function CI(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return qT(e,t,n,r);if(e.checkGroups?.length)return zi(e,t,n,r);let i=await ct(e.appId,e.fields,t,r),o=await xt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ue(e.appId,t,r),u=qR(e),p=await Yi(e.appId,e.keyFields,u,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((m,g)=>{let h=d[g];h.type==="CASE_VALUE"?R[m]={value:tn(h.expr,{},l.get(m))}:R[m]={value:Lt(h,l.get(m))}});let E=Hi(p,u[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),_n([...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 ge("UPDATE",d)}let c=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100)});c.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:c.flat().length,updatedCount:s.length}}function qR(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"?z(i):i.type==="CASE_VALUE"?Ge(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Gc(e,t,n,r){if(t.length===0)return;let i=await Ue(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 OI(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 ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Rs(a),l=new Map;for(let p of e.values){let c=tR(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{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:tR(p[m])}}});let R=l.get(c);R?R.push(f):l.set(c,[f])}let u=[];for(let[p,c]of l.entries()){let d=s.get(p),R=[...qi(d,i),...c];u.push(JR(e.appId,p,Ji(d),i,R))}for(let p of u)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function LI(e,t,n,r){let i=e.subtableCode;if(!Li(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Mt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&rs(d.value.expr,o);let a=await Gc(e.appId,o,t,r),s=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Kc(s,i).filter(d=>se(e.where,d.flat,a));if(n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new ge("UPDATE",u.length);let p=new Map;for(let d of u){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=p.get(d.parentId);f||(f=new Map,p.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:ra(E.value,d.flat,a)}}f.set(d.rowId,R)}let c=Rs(s);for(let[d,f]of p.entries()){let R=c.get(d);if(!R)continue;let m=qi(R,i).map(g=>{let h=g.id??"";if(!h)return g;let T=f.get(h);return T?{id:h,value:T}:{id:h}});await t.putRecords(DI(e.appId,d,Ji(R),i,m))}return{type:"UPDATE",updatedCount:u.length}}async function _I(e,t,n,r){let i=e.subtableCode;if(!Li(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Mt(e.where,o);let a=await Gc(e.appId,o,t,r),s=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Kc(s,i).filter(d=>se(e.where,d.flat,a));if(n.confirm&&!await n.confirm(u.length,"DELETE"))throw new ge("DELETE",u.length);let p=new Map;for(let d of u){let f=p.get(d.parentId);f?f.push(d.rowIndex):p.set(d.parentId,[d.rowIndex])}let c=Rs(s);for(let[d,f]of p.entries()){let R=c.get(d);if(!R)continue;let E=qi(R,i),m=new Set(f),g=E.filter((h,T)=>!m.has(T));await t.putRecords(JR(e.appId,d,Ji(R),i,g))}return{type:"DELETE",deletedCount:u.length}}function Rs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Kc(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Ji(r),a=qi(r,t);for(let s=0;s<a.length;s++){let l=a[s],u={...oa(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(u[`_p.${p}`]=ac(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:u})}}return n}function qi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Ji(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function JR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function DI(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function vI(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 tR(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ge(e.expr,{}):e.elements.map(t=>t.value).join(",")}function ac(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 Li(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Li(e.left)||Li(e.right);case"NOT":case"GROUP":return Li(e.expr);default:return!1}}async function UI(e,t,n,r){let i=[];Mt(e.where,i);let o=await Gc(e.appId,i,t,r),a=await ee(e.appId,t,r);if(lt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??te(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return $("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??$("string")},u=await ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Kc(u,e.subtableCode),c=e.all?new Set(u.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&se(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ge("UPDATE",c.size);let d=Rs(u);for(let f of c){let R=d.get(f);if(!R)continue;let m=qi(R,e.subtableCode).map((h,T)=>({row:h,i:T,flat:MI(R,e.subtableCode,h,T)}));m.sort((h,T)=>kI(h.flat,T.flat,e.by,l));let g=m.map(h=>h.row.id??"");await t.putRecords(vI(e.appId,f,Ji(R),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function MI(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}`]=ac(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=ac(a?.value);return i}function kI(e,t,n,r){for(let i of n){let o=nR(i.key,e),a=nR(i.key,t),s=i.key.type==="FIELD_NAME"?r(ve(i.key.name)):i.key.type==="ARITH_KEY"?$("number"):i.key.type==="FUNC_KEY"?Cn(i.key.expr).semantics??$("string"):$("number"),l=nt(o,a,s??$("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function nR(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,t));case"FUNC_KEY":return me(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Bc(e,t,n,r,i){if(e.checkGroups?.length)return zi(e,t,n,r,i);let o=await ct(e.appId,e.fields,t,r),a=await xt(e.appId,e.fields,o,t,r),s=await xc.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(jR(s),u.length!==e.fields.length){let g=u.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${u.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],d=await Ue(e.appId,t,r),f=l.map((g,h)=>{let T={};return e.fields.forEach((y,b)=>{if(s.importPresence&&!s.importPresence[h]?.has(y))return;let P=g[u[b]]??"";T[y]={value:$R(P,d.get(y))}}),T});f.forEach(g=>_n([g],e.fields.filter(h=>h in g),o,a));let R=f.map(g=>e.keyFields.map(h=>String(g[h]?.value??"")));if(ss.has(e)){let g=e.keyFields.map(T=>d.get(T)==="NUMBER"),h=new Set;for(let T of R){let y=Ln(T,g);if(h.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");h.add(y)}}let E=await Yi(e.appId,e.keyFields,R,t,n,d);if(f.forEach((g,h)=>{let T=Hi(E,R[h]);T!==void 0?c.push({id:T,record:g}):p.push(g)}),n.confirm&&p.length+c.length>0){let g=p.length+c.length;if(!await n.confirm(g,"UPDATE"))throw new ge("UPDATE",g)}let m=[];for(let g=0;g<p.length;g+=100){let h=await t.postRecords({app:e.appId,records:p.slice(g,g+100)});m.push(h.ids)}for(let g=0;g<c.length;g+=100)await t.putRecords({app:e.appId,records:c.slice(g,g+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}var $c=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),Wc=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 XR(e){let t=await e.getApps(),n=[...$c],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 QR(e,t,n){let r=await ee(e.appId,t,n),i=[...Wc],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 xI(e,t=!1){try{let n=new Qt(e).tokenize(),r=new Zt(n,{import:t}).parse();return $n("phase15b",r),tt(r),r}catch(n){throw n instanceof _e||n instanceof S,n}}async function Bi(e,t,n,r,i,o){let a=[];Qa(e,t,n,r,a,i,o),await Promise.all(a)}async function ZR(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(Bi(l.condition,t,n,r,i,o));await Promise.all(a)}function _i(e,t,n,r,i){return i!==void 0&&i.size>0?ut(e,t,n,i,r):kt(e,t,n,r)}function Qa(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(_i(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);let u=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(p=>p[u]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(_i(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);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 u=l.columns[0]??"";s.resolved=l.rows[0]?.[u]??""}));break}case"LOGICAL":Qa(e.left,t,n,r,i,o,a),Qa(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Qa(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(_i(s.query,t,n,r,a).then(l=>{for(let u of l.warnings??[])o.add(u);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function em(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await kt(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 tm(e,t,n,r,i,o){let a=new Map,s=[];for(let p=0;p<e.length;p++){let c=e[p];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(c.query),f=a.get(d);f||(f=_i(c.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);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([p,f])}let l=await Promise.all(s.map(([,p])=>p)),u=new Map;return s.forEach(([p],c)=>u.set(p,l[c])),u}var nm=new WeakMap,rm=new WeakMap,im=new WeakMap,sc=new WeakMap,Vc=new WeakMap,om=new WeakMap,am=new WeakMap;async function sm(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,u={...t,getFields:async N=>(a.add(N),t.getFields(N)),getProcessStatuses:async N=>(s.add(N),t.getProcessStatuses(N)),getNumberPrecision:async N=>(l.add(N),t.getNumberPrecision(N))},p=new Map,c=new Map,d=new Map,f=new Set,R=i??await Wi(e,u,n),E=N=>R.nodes.find(U=>U.source===N||JSON.stringify(U.source)===JSON.stringify(N)),m=new Map(o??[]),g=new Set(o?.keys()??[]),h=new Map([...o??new Map].map(([N,U])=>[N,U.rows.length])),T=new WeakMap,y=N=>ue(N)??(N.appId>0?`APP${N.appId}`:"source"),b=N=>N.cteName===Oe?1:N.cteName!==null?h.get(N.cteName)??null:null,P=N=>{let U=b(N.from),w=y(N.from),D=[];for(let I of N.joins){let x=b(I.table),L=y(I.table);if(I.type==="CROSS"){let F=U!==null&&x!==null?ai(U,x):null;D.push({leftLabel:w,rightLabel:L,leftRows:U,rightRows:x,plan:F,rightRuntimeLabel:I.table.cteName===null?`APP${I.table.appId} fetched rows`:`${L} materialized rows`}),U=F?.outputRows??null,w=`${w} \xD7 ${L}`}else U=null,w=`${w} ${I.type} JOIN ${L}`}if(D.length>0&&Vc.set(N,D),lt(N.where)?U=0:N.where!==null&&(U=null),(Z(N).type!=="NONE"||N.distinct||N.having!==null||Yn(N)||N.columns.some(I=>I.type==="WINDOW_COL"))&&(U=null),U!==null){let I=N.offset??0;U=Math.max(0,U-I),N.limit!==null&&(U=Math.min(U,N.limit)),T.set(N,U)}},v=async N=>{let U=[N.from,...N.joins.map(D=>D.table)];if(U.length>1&&N.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===Oe)continue;let I=m.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 A=await ee(D.appId,u,n);D.subtableCode?(w.push(...A.filter(I=>I.inSubtable&&(I.subtableCode===D.subtableCode||I.subtableCode===void 0)).map(I=>I.code)),w.push("_pid","_rid","_idx"),w.push(...A.filter(I=>!I.inSubtable).map(I=>`_p.${I.code}`))):(w.push(...A.filter(I=>!I.inSubtable).map(I=>I.code)),w.push(...Ro))}return[...new Set(w)]},C=async N=>{if(N===null||typeof N!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let U=N;if(U.type==="SELECT"){let w=N,D=await v(w);if(w.columns.length===1&&w.columns[0].type==="WILDCARD")return D;let A=[];for(let I of w.columns)I.type==="WILDCARD"?A.push(...D):I.type==="PARENT_WILDCARD"?A.push(...D.filter(x=>x.startsWith("_p."))):A.push(...An([],[I]).columns);return A}if(U.type==="UNION")return C(U.left);if(U.type==="SHOW_APPS")return[...$c];if(U.type==="DESCRIBE")return[...Wc];if(U.type==="GENERATE_SERIES")return[N.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},M=async N=>{if(N===null||typeof N!="object")return;if(Array.isArray(N)){for(let w of N)await M(w);return}let U=N;if(U.type==="WITH"){let w=N;for(let D of w.ctes){if(await M(D.query),D.query.type==="GENERATE_SERIES"){if(D.query.args.some(x=>x.type==="VARIABLE")){m.set(D.name,{rows:[],columns:[D.query.columnAlias]});continue}let I=GR(D.query);m.set(D.name,{rows:I.rows,columns:I.columns,columnMeta:le.get(I),uniqueGeneratedColumn:D.query.columnAlias}),g.add(D.name),h.set(D.name,I.rows.length);continue}let A=await C(D.query);if(m.set(D.name,{rows:[],columns:A}),D.query.type==="SELECT"){let I=T.get(D.query);I!==void 0&&h.set(D.name,I)}}await M(w.query);return}if(U.type==="UNION"){await M(U.left),await M(U.right);return}if(U.type==="SELECT"){let w=N;P(w);for(let I of w.columns)I.type==="SCALAR_SUBQUERY_COL"&&await M(I.query);if(await M(w.where),await M(w.having),await Ui(w,u,n,m),![w.from,...w.joins.map(I=>I.table)].some(I=>I.cteName!==null&&!m.has(I.cteName))){let I=await dr(w,u,n,m);I&&d.set(w,I)}return}for(let w of Object.values(U))await M(w)};await M(e);let O=async N=>{if(N===null||typeof N!="object"||f.has(N))return;if(f.add(N),Array.isArray(N)){await Promise.all(N.map(O));return}let U=N;if(U.type==="SELECT"){let w=N;await Ui(w,u,n);let D=[w.from,...w.joins.map(_=>_.table)].some(_=>_.cteName!==null);if(Z(w).type==="PLAIN"&&!D){let _=await dr(w,u,n);_&&d.set(w,_)}let A=[w.from,...w.joins.map(_=>_.table)].filter(_=>_.cteName===null).map(_=>_.appId);(gt(w.where)||w.orderBy.length>0||w.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0))&&A.forEach(_=>a.add(_));let{resolver:x,rewrites:L}=await wn(w,u,n);L.length>0&&sc.set(w,L);let F=ye(w.where,x),W=E(w);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(F)}).`);p.set(w,F);let K=await us(w,u,n),G=wc.get(w)??ls(w,K);G&&nm.set(w,G);let j=G??dn(w,K);rm.set(w,j);let B=new Map;for(let _ of w.joins){let H=_.table.alias;if(_.type!=="INNER"||!H||_.table.subtableCode)continue;let ne=_.on.left.tableAlias,Pe=_.on.right.tableAlias;if(!ne||!Pe)continue;let Gt=ne===H&&Pe!==H?Pe:Pe===H&&ne!==H?ne:void 0,re=ne===H?_.on.right.field:_.on.left.field,Kt=ne===H?_.on.left.field:_.on.right.field;if(!Gt)continue;let Bt=[w.from,...w.joins.map(Ce=>Ce.table)].find(Ce=>ue(Ce)===Gt),bs;if(_.table.cteName!==null)bs=m.get(_.table.cteName)?.columnMeta?.get(Kt);else{let Ce=(await ee(_.table.appId,u,n)).find(Ze=>Ze.code===fe(_.table,Kt));bs=Ce?De(Ce,_.table.appId):qe(Kt)}let Ns,Ps,np,rp;if(Bt?.cteName!==null&&Bt?.cteName!==void 0){let Ce=m.get(Bt.cteName);Ns=Ce?.columnMeta?.get(re),g.has(Bt.cteName)&&Ce&&(np=Ce.rows.length,Ps=Ce.rows.map(Ze=>_c(Ze[re])),rp=Ps.some(Ze=>Ze.length===0))}else if(Bt){let Ce=(await ee(Bt.appId,u,n)).find(Ze=>Ze.code===fe(Bt,re));Ns=Ce?De(Ce,Bt.appId):qe(re)}let ro=Ql({fieldType:bs?.fieldType,sourceSemantics:Ns?.semantics,sourceRowCount:np,values:Ps,hasEmptyValue:rp,maxInKeys:Ja});if(ro.kind==="FALLBACK"&&ro.reason==="JOIN_KEY_VALUES_RUNTIME"&&(G?.joinPlan.items.some(Ze=>Ze.targetAlias===H)||G?.joinPlan.serverFunctionConsumptions.some(Ze=>Ze.targetAlias===H)))continue;let Ym=Xl(ro,Kt,ki),ip=j.joinConditions.get(H),jm=ip?Y(ip):void 0,zm=j.joinRelations.get(H);B.set(H,{plan:ro,queries:Ym,additionalQuery:jm,additionalRelation:zm})}if(B.size>0&&im.set(w,B),w.orderBy.length>0||w.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0)){let _=await xi(w,u,n);if(w.orderMode!=="KINTONE_NATIVE")for(let H of _.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(ts(w)&&!D&&W?.allowed!==!1){let H=F.capability==="EXACT_PUSHDOWN"?We(w):"FULL_SCAN";c.set(w,(w.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:w,staticMode:H,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:Ie(w.where)}))}}}else if(U.type==="VALIDATE"){let w=N;a.add(w.appId);let D=await ee(w.appId,u,n),A=new Map(D.filter(_=>!_.inSubtable).map(_=>[_.code,_])),I=new Set(D.filter(_=>_.inSubtable).map(_=>_.code)),x=$l(w,D),L=er(w.checkGroups??[]),F=yc(w.where);for(let _ of L){if(_.field!=="$id"&&!A.has(_.field)&&!I.has(_.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u306F APP${w.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(_.field!=="$id"&&!A.has(_.field)&&I.has(_.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let _ of F){if(_!=="$id"&&!A.has(_)&&!I.has(_))throw new Error(`ArgumentError: WHERE field ${_} does not exist in APP${w.appId}.`);if(_!=="$id"&&!A.has(_)&&I.has(_))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...A].map(([_,H])=>[_,H.fieldType]));W.set("$id","RECORD_NUMBER"),Dn(w,W);let K=ye(w.where,_=>_.field==="$id"?te({fieldType:"__ID__"}):A.get(_.field)?.semantics??(A.has(_.field)?te(A.get(_.field)):void 0));if(K.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(K)}).`);let k=new Map([...A].map(([_,H])=>[_,H.fieldType])),G=new Map([...A.values()].flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[])),j=w.where===null?null:K.capability==="EXACT_PUSHDOWN"?w.where:tl(w.where,{allowUnqualifiedFields:!0,fieldTypes:k,fieldOptions:G,allowKlike:!1}),B=x.some(_=>_.field.fieldType==="NUMBER");B&&(l.add(w.appId),await Tt(w.appId,u,n)),om.set(w,{targetFields:x.map(_=>_.subtableCode?`${_.subtableCode}(${_.field.code})`:_.field.code),fetchFields:[...new Set(["$id",...x.map(_=>_.subtableCode??_.field.code),...F,...L.map(_=>_.field)])],subtables:new Map([...new Set(x.flatMap(_=>_.subtableCode?[_.subtableCode]:[]))].map(_=>[_,x.filter(H=>H.subtableCode===_).length])),capability:K,prefilter:j,numberPrecision:B})}else if(U.type==="UPDATE"||U.type==="DELETE"){if(a.add(N.appId),U.type==="UPDATE"&&N.applyBlocks?.length){let D=N,A=await ee(D.appId,u,n);if(_t(D,A),is(D)){let I=A.filter(L=>!L.inSubtable),x=ru(D.where,{fieldTypes:new Map(I.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(I.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});am.set(D,x)}}let w=N;(w.type!=="UPDATE"||!is(w))&&E(w)?.allowed!==!1&&await cr(w,u,n)}await Promise.all(Object.values(U).map(O))};if(await O(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&jt(e)){let N=zt(e),{resolver:U,rewrites:w}=await wn(N,u,n);w.length>0&&sc.set(N,w);let D=ye(N.where,U),A=E(N);if(D.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${bn(D)}).`);if(p.set(N,D),ts(N)&&A?.allowed!==!1){let I=await xi(N,u,n);c.set(N,(N.orderMode==="KINTONE_NATIVE"?ci:ui)({stmt:N,staticMode:D.capability==="EXACT_PUSHDOWN"?We(N):"FULL_SCAN",whereCapability:D.capability,whereReasons:D.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:Ie(N.where)}))}}return{capabilities:p,orderPlans:c,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function lc(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 FI(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 rR(e){return e==="<>"?"!=":e}function at(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(at).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return at(t.expr);case"GROUPING_FIELD":return`GROUPING(${at(t.ref)})`;case"GROUPING_REF":return at(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${at(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${at(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(at).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(at).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Tn(e){try{let t=e;switch(t.type){case"BINARY":return`${at(t.left)} ${FI(t.op)} ${at(t.right)}`;case"NULL_CHECK":return`${at(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Tn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Tn(t.right)})`;case"NOT":return`NOT (${Tn(t.expr)})`;case"GROUP":return`(${Tn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function uc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ie(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?GI(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 u=Fu(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${xu(u)}: ${u}`,` ${Gu(u)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Tn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ie)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ie(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=Fu(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=rR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${xu(l)}: ${l}`,` ${Gu(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${iR(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=Fu(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=rR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${xu(l)}: ${l}`,` ${Gu(l)}: kintone server exact prefilter`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=Y(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Tn(o.residualWhere)}`,` ${iR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ie(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 GI(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,u=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((u||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function xu(e){return ie(e)?"relative date function":"kintone function"}function Fu(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 Gu(e){return ie(e)?"relative date evaluation":"kintone function evaluation"}function iR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ie(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var lm=new WeakMap;function cc(e,t){if(Array.isArray(e))return e.map(r=>cc(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 u=s.value.slice(1);r.set(l,u);let p=t.get(u);return p===void 0?{type:"VARIABLE",name:u}:(i.add(l),{type:"STRING",value:p,fromVariable:!0})}),a={...n,args:o};return lm.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,cc(i,t)]))}function bi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...$c]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...Wc]};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 u=bi(l.query,s);s.set(l.name,u)}return bi(e.query,s)}if(e.type==="UNION"){let s=bi(e.left,t),l=bi(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!==Oe);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(...An([],[s]).columns);return{status:"STATIC",columns:a}}function KI(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function BI(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,u=[l.from,...l.joins.map(p=>p.table)];if(u.some(p=>p.cteName!==null)&&u.every(p=>p.cteName===Oe||p.cteName!==null&&r.has(p.cteName))){let p=await dr(l,t,n,r);p&&i.set(l,p)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var um=Symbol("ksql.explainFetchPlan");function Hc(e){return e[um]}function cm(e,t){e[um]=t}async function pm(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ne,u=!0,p,c,d){let f=mt({recursiveCteMaxDepth:p,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),R=dc(r);try{let E=hc(e,a),m=dl(E),g=zl(E,n),h=mR(E,g),T=new Map,y=new Map,b=new Map,P=[],v=[];for(let M=0;M<E.length;M++){let O=E[M],N=O.type==="SET_VARIABLE"?O.expr.type==="SCALAR_SUBQUERY"?{...O,expr:es(O.expr,T)}:O:es(O,T),U=cc(N,y);tt(U);let w=await Wi(U,t,R),D=KI(b),A=u?await sm(U,t,R,i,w,D):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:w};if(!u){let W=await BI(U,t,R,D);for(let[K,k]of W)A.plainGroupByPlans.set(K,k)}let I;if(U.type==="CREATE_TEMP_TABLE"){let W=new Map([...b].map(([k,G])=>[k,G.status==="STATIC"?{status:"STATIC",columns:G.columns}:{status:"DEFERRED"}])),K=bi(U.query,W);I=K.status==="STATIC"?{status:"STATIC",columns:K.columns,relation:{rows:[],columns:[...K.columns]},producerStatement:M+1}:{status:"DEFERRED",producerStatement:M+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},b.set(U.name,I)}let x={sources:[]},L=w.hasServerOnlyWhereFunction&&!w.allowed?uc(w):[...uc(w),...fm($I(U,m.statements[M],A.capabilities,A.orderPlans,A.plainGroupByPlans,s,l,x,b,I,{maxRecords:i,recursiveLimits:f}),o)],F=lc(A);P.push({index:M,type:m.statements[M].statementType,plan:L.length===0?F:[L[0],...F,...L.slice(1)]}),v.push({index:M,fetch:Yc(x.sources),sources:x.sources}),U.type==="DROP_TEMP_TABLE"&&b.delete(U.name),(O.type==="SET_VARIABLE"||O.type==="DECLARE_VARIABLE")&&(T.set(O.name,O.type==="DECLARE_VARIABLE"&&O.annotation==="RELATIVE_DATE"?{type:"relative-date",value:h.get(O.name)}:O.type==="SET_VARIABLE"&&O.expr.type==="ARRAY"?{type:"array",elements:O.expr.elements.map(W=>({type:"string",value:W.value}))}:{type:"string",value:`@${O.name}`,placeholder:!0}),O.type==="DECLARE_VARIABLE"&&O.annotation===void 0&&(O.default.type==="STRING"||O.default.type==="NUMBER")&&y.set(O.name,O.default.type==="STRING"?O.default.value:z(O.default)))}let C={statementCount:E.length,statements:P};return cm(C,{statements:v}),C}finally{Dc(R)}}function $I(e,t,n,r,i,o=100,a=Ne,s={sources:[]},l=new Map,u,p=dm()){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",...u?.status==="STATIC"?[` schema: ${u.columns.join(", ")}`,` schema source: SELECT output of statement ${u.producerStatement}`]:u?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${u.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Je} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ii(e.query,t,n,r,i,s,"main",l,p).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=os(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:",...Ii(e.expr.query,c,n,r,i,s,"main",l,p).map(d=>` ${d}`)]}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 Ii(e.query,t,n,r,i,s,"main",l,p);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"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,R)=>{c.push(d.length>1?` subquery[${R+1}]:`:" subquery:");let E=os(f.query)?t:{...t,tempTablesReferenced:[]};c.push(...Ii(f.query,E,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ms(e,void 0,n,r,o,a,1e4,i):Ii(e,t,n,r,i,s,"main",l,p)}function os(e){if(Array.isArray(e))return e.some(os);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(os)}return!1}function Ii(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=dm()){if(t.tempTablesReferenced.length===0)return ms(e,void 0,n,r,100,Ne,l.maxRecords,i,!0,o,a,l.recursiveLimits);let u=[];e.type==="INSERT_SELECT"?u.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"&&u.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`),u.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),u.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(f=>[f,s.get(f)]);for(let[f,R]of p)R?.status==="STATIC"?u.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(u.push(` source: temp table ${f}`),u.push(" schema: deferred (could not be derived statically)"));u.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&&u.push(...Em(c,i?.get(c),p.some(([,f])=>f?.status!=="STATIC"))),u.push(p.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),u.push(" records API: none");let d=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return d.length>0&&u.push(` app: ${d.map(f=>`APP${f}`).join(", ")}`),u.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),u}var pc=new WeakMap;function dm(){return{maxRecords:1e4,recursiveLimits:mt({})}}async function WI(e,t,n,r,i,o=100,a=Ne,s,l,u,p){let c=mt({recursiveCteMaxDepth:l,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),d=s??await Wi(e.query,t,n),f=await sm(e.query,t,n,r,d,pc.get(e)),R={sources:[]},E=uc(d),m=d.hasServerOnlyWhereFunction&&!d.allowed?[...lc(f),...E]:[...lc(f),...E,...fm(ms(e.query,void 0,f.capabilities,f.orderPlans,o,a,r,f.plainGroupByPlans,!0,R,"main",c),i)],g=Za(m,R.sources),h={type:"SELECT",columns:["plan"],rows:g.map(T=>({plan:T})),rowCount:g.length};return cm(h,{statements:[{index:0,fetch:Yc(R.sources),sources:R.sources}]}),h}function fm(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 ms(e,t,n,r,i=100,o=Ne,a=1e4,s,l=!0,u,p="main",c=mt({})){let d=u??{sources:[]};if(e.type==="UNION"){let R=zI(e,n,r,s,d);return l?Za(R,d.sources):R}if(e.type==="WITH"){let R=JI(e,n,r,s,d,a,c);return l?Za(R,d.sources):R}if(e.type==="INSERT")return ZI(e,t,i,o);if(e.type==="INSERT_SELECT")return ew(e,t,n,r,s);if(e.type==="UPSERT")return iw(e,t,i,o);if(e.type==="UPSERT_SELECT")return ow(e,t,n,r,s);if(e.type==="UPDATE")return tw(e,t,n,r,i,o,a);if(e.type==="DELETE")return rw(e,t);if(e.type==="REORDER")return aw(e,t);if(e.type==="VALIDATE")return YI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=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",...m.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 R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=st(e,t,n,r,s,!0,!0,d,p);return l?Za(f,d.sources):f}var oR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Yc(e){return e.reduce((t,n)=>oR[t]>=oR[n.fetch]?t:n.fetch,"none")}function Za(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Yc(t).toUpperCase()}`,...n]}function VI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Ha(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:VI(o)};return e.sources.push(s),s}function HI(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ya(e){return` fetch: ${HI(e)}`}function YI(e,t){let n=om.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)":Y(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?gc:mc).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 jI(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 Em(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 st(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let u=n?.get(e)??(n?[...n].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),c=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),d=o&&u!==void 0&&vR(e,u),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":We(e),R=XI(e);u&&u.capability!=="EXACT_PUSHDOWN"&&R.push(...u.reasons.map(y=>y.code));let E=[],m=Mf(e,vi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let y of Vc.get(e)??[]){if(E.push(` cross join: ${y.leftLabel} \xD7 ${y.rightLabel}`),E.push(` left rows: ${y.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${y.rightRows??`runtime (${y.rightRuntimeLabel})`}`),y.plan)E.push(` rows: ${y.plan.outputRows}`),E.push(` row guard: ${y.plan.outputRows} / ${y.plan.limit}`),E.push(" guard timing: before row materialization");else{let b=y.leftRows===null?"left rows":String(y.leftRows),P=y.rightRows===null?"right rows":String(y.rightRows);E.push(` rows: runtime (${b} \xD7 ${P})`),E.push(` row guard: runtime checked / ${Zl}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let y of sc.get(e)??hR.get(e)??[])E.push(jI(y));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...Em(e,c,[e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null)));for(let y of e.columns){if(y.type!=="WINDOW_COL"||y.windowKind===void 0||y.windowKind==="RANKING")continue;let b=[];y.partitionBy.length>0&&b.push(`PARTITION BY ${y.partitionBy.map(P=>P.tableAlias?`${P.tableAlias}.${P.field}`:P.field).join(", ")}`),y.orderBy.length>0&&b.push(`ORDER BY ${y.orderBy.map(Rm).join(", ")}`),y.windowKind==="VALUE"?E.push(` window ${y.alias}: ${y.valueFunc}(offset=${y.offset}) OVER (${b.join(" ")})`):y.windowKind==="AGGREGATE"&&(E.push(` window ${y.alias}: ${y.aggFunc} OVER (${b.join(" ")})`),E.push(y.frame===null?" frame: PARTITION ENTIRE":` frame: ${y.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${y.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let y=e.where===null?"":Y(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${y}${y?" ":""}limit 1`),a){let b=Ha(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${y}${y?" ":""}limit 1`);E.push(Ya(b))}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}p?(E.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&E.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):p.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: ${p.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let g=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,h=$t(g);p?.requiresCompleteInput&&h.add("LOCAL_ORDER");let T=lt(e.where);if(h.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...h].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)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 y=Io(p?.kind==="CANONICAL_REST_TOP_N"?OR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let b=p?.kind==="KORDER_CURSOR"?iu(e):y.query;if(E.push(` kintone query: ${b||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let P=b?"EXACT":"ALL";E.push(Ya(Ha(s,e.from.appId,e.from.alias,l,P,b)))}E.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=nm.get(e),b=rm.get(e),P=b??dn(e);if(e.joins.length>0)if(y){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)"),y.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Tn(y.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let I of y.joinPlan.rejections)E.push(` join pushdown not applied: ${I.reason}`)}else{let I=e.joins.some(x=>x.type!=="INNER"&&x.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(x=>x.table)].some(x=>x.cteName!==null||!!x.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=pn(e,e.from,c),C=e.from.alias?` AS ${e.from.alias}`:"",M=P.mainCondition,O=NR(e),N=e.joins.length===0&&u?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!bt(e.where)?Y(e.where):"",U=e.from.alias?y?.queriesByAlias.get(e.from.alias):void 0,w=U||(M!==null?Y(M):N||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),E.push(` kintone query: ${w}`);let D=y?.joinPlan.items.find(I=>I.targetAlias===e.from.alias),A=y?.joinPlan.serverFunctionConsumptions.find(I=>I.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let I=!b&&O!==null,x=w==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":I?"PREFILTERED":D?.relation==="exact"||A||N!==""?"EXACT":"PREFILTERED";E.push(Ya(Ha(s,e.from.appId,e.from.alias,l,x,w,I)))}D||A?(E.push(` pushdown applied: ${U}`),E.push(` relation: ${D?.relation??"exact"}`)):b&&M!==null?(E.push(` pushdown applied: ${w}`),E.push(` relation: ${P.mainRelation??"exact"}`)):O!==null&&(!b||Pi(O))&&E.push(` pushdown candidate: ${Y(O)}\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 x=pn(e,I.table,c),L=I.table.alias?` AS ${I.table.alias}`:"",F=I.type==="INNER"?"JOIN":`${I.type} JOIN`,W=I.table.alias?P.joinConditions.get(I.table.alias)??null:null,K=I.table.alias&&!I.table.subtableCode&&I.table.cteName===null&&e.where?Mr(e.where,{tableAlias:I.table.alias}):null,k=I.table.alias?y?.queriesByAlias.get(I.table.alias):void 0,G=I.table.alias?im.get(e)?.get(I.table.alias):void 0,j=!b&&I.type==="INNER"&&I.table.cteName===null&&!I.table.subtableCode&&[e.from,...e.joins.map(re=>re.table)].some(re=>re.cteName!==null),B=k||(W!==null?Y(W):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),_=j||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",H=G&&G.queries.length>0?G.queries.map(re=>B!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${re}) and (${B})`:re):[_?"(runtime source keys)":B],ne=H.join(" | ");E.push(` ${F}: APP${I.table.appId}${L} (${I.table.appId})`);for(let re of H)E.push(` kintone query: ${re}`);let Pe=y?.joinPlan.items.find(re=>re.targetAlias===I.table.alias),Gt=y?.joinPlan.serverFunctionConsumptions.find(re=>re.targetAlias===I.table.alias);if(a&&I.table.cteName===null){let re=_||!G&&!b&&K!==null,Kt=ne==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":re?"PREFILTERED":G?.plan.kind==="IN"&&Pe?.relation!=="superset"&&G.additionalRelation!=="superset"||Pe?.relation==="exact"||Gt?"EXACT":"PREFILTERED";E.push(Ya(Ha(s,I.table.appId,I.table.alias,"join",Kt,ne,re)))}if(G)if(G.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let re of H)E.push(` pushdown applied: ${re}`);E.push(" relation: superset")}else if(G.plan.kind==="IN"){let re=Pe?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Kt of H)E.push(` pushdown applied: ${Kt}`);E.push(` relation: ${re}`)}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"),K!==null&&E.push(` pushdown candidate: ${Y(K)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):Pe||Gt?(E.push(` pushdown applied: ${k}`),E.push(` relation: ${Pe?.relation??"exact"}`)):b&&W!==null?(E.push(` pushdown applied: ${B}`),E.push(` relation: ${P.joinRelations.get(I.table.alias)??"exact"}`)):K!==null&&(!b||Pi(K))&&E.push(` pushdown candidate: ${Y(K)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${x.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":x.join(", ")}`)}}return E.push(...QI(e,n,r,i,s)),E}function zI(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,u)=>{u>0&&s.push(""),s.push(...st(l,`[union:${u+1}]`,t,n,r,!0,!0,i,"union"))}),s}function qI(e){let t=new Map,n=a=>ue(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Oe?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),u=[];for(let p of a.joins){let c=r(p.table),d=n(p.table);if(p.type==="CROSS"){let f=s!==null&&c!==null?ai(s,c):null;u.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:c,plan:f,rightRuntimeLabel:p.table.cteName===null?`APP${p.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${p.type} JOIN ${d}`}return u.length>0&&Vc.set(a,u),lt(a.where)?s=0:a.where!==null&&(s=null),Z(a).type!=="NONE"||a.distinct||a.having!==null||Yn(a)||a.columns.some(p=>p.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,Vo(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 JI(e,t,n,r,i={sources:[]},o=1e4,a=mt({})){qI(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let u=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",u?` cycle: path-scoped on ${u.column}, mark ${u.markColumn} ('${u.markValue}'/'${u.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let p of FR(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let c=`APP${p.appId}${p.subtableCode?`$${p.subtableCode}`:""}`;s.push(` source ${c}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...st(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let u=l.query,p=lm.get(u);if(u.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=u.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${Nt}`," records API: none","");continue}let d=Vo(u),f=d.kind==="DATE"?`${d.step} ${String(d.dateUnit??"DAY").toLowerCase()}${Math.abs(d.step)===1?"":"s"}`:String(d.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`,` series type: ${d.kind}${p?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${p?.variableNames.has(0)?`@${p.variableNames.get(0)} (DECLARE default; value hidden)`:d.start}`,` stop: ${p?.variableNames.has(1)?`@${p.variableNames.get(1)} (DECLARE default; value hidden)`:d.stop}`,` step: ${f}`,` rows: ${d.rowCount}${p?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${d.rowCount} / ${Nt}`,...p?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...ms(e.query,"[main]",t,n,100,Ne,o,r,!1,i,"main",a)),jt(e)){s.push("");let l=zt(e);s.push(...st(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function XI(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"),bt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Vt(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 QI(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(...st(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...st(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...st(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(...st(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function ZI(e,t,n=Ft,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,...jc(Ra(e,n,r))]:a}function ew(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(...st(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function tw(e,t,n,r,i=100,o=Ne,a=1e4){if(e.applyBlocks?.length)return nw(e,t,i,o,a);let s=Qd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),u=na(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?$i(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${$i(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(lt(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"),p&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!u&&!p&&d.push("\u5358\u7D14 SET"),c.push(` set type: ${d.join(", ")}`),u){let f=sw(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${uw(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...st(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return c}function nw(e,t,n,r,i){let o=Ra(e,n,r),a=o.branches[0],u=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"}),p=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],c=p.includes("REMOVE"),d=am.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":Y(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: ${$i(e.where)}`,`parent cardinality: ${wt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${u.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...jc(o)]}function rw(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${$i(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(lt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function iw(e,t,n=Ft,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,...jc(Ra(e,n,r))]:a}function jc(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 ow(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(...st(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function aw(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(Rm).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,lt(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: ${$i(e.where)}`),o}function Rm(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function $i(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return Y(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function sw(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&as(n,t),n.type==="STRING_FUNC"&&as(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Di(n,t);return[...t]}function as(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"&&(as(e.left,t),as(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"&&Di(n,t)}async function mm(e,t,n,r,i){let o=kc(e),a=await Ue(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 Ue(t.appId,n,r),u=new Set,p=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`);u.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`);p.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`);u.add(d.field)}let c=new Map;for(let[d,f]of a)c.set(d,f),c.set(`APP${e.appId}.${d}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)c.set(`${t.alias}.${d}`,f);return{targetFields:[...u],sourceFields:[...p],evaluationTypes:c}}function lw(e,t,n){if(!e)return{};let r=vt(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 Di(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"&&Di(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Di(e.left,t),Di(e.right,t))}function uw(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} = ${gm(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 gm(e){return`${aR(e.left)} ${e.op} ${aR(e.right)}`}function aR(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"?z(e):e.type==="ARITH"?`(${gm(e)})`:"..."}var ge=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 Me=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 zc(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 Qe(e){return new Me("READ_ONLY_VIOLATION",e)}function gr(e,t){return new Me("PARSE_ERROR",e,t)}function ym(){let e=new Pn;return new Me("SEARCH_ABORTED",e.message,e)}function Xi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function cw(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 Un(e){return e instanceof Me?e:e instanceof _e||e instanceof S?new Me("PARSE_ERROR",Xi(e),e):e instanceof Pn||e?.name==="SearchAbortedError"?new Me("SEARCH_ABORTED",Xi(e),e):e instanceof Fe||e?.name==="FetchAllLimitError"?new Me("FETCH_LIMIT_EXCEEDED",Xi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Me("CLIENT_ERROR",e.message,e.cause):cw(e)?new Me("CLIENT_ERROR",Xi(e),e):new Me("EXECUTION_ERROR",Xi(e),e)}function gs(e,t){let n=Un(e);if(e instanceof oe){let r=t[e.statementIndex];if(r!==void 0)return zc(n,e.statementIndex,r.type)}return n}var pw=2,ys=5,dw=3e4,fw=10*6e4+3e4,hs=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??pw;if(!Number.isSafeInteger(r)||r<1||r>ys)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ys}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??dw,this.quarantineMs=n.quarantineMs??fw}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 Pa(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>ys)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ys}.`)}};function Ew(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Rw(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Ew){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 mw(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 hm(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 u=await t.get();return u.next||(n=!0,t.onReleased?.()),u});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await mw(Rw(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Am(e){return Sm(e,yw(e))}function Sm(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=hw(o.options),s=Aw(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:As(o.minValue),maxValue:As(o.maxValue),minLength:As(o.minLength),maxLength:As(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)&&!gw.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Sm(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var gw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function yw(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 As(e){return e==null||e===""?void 0:e}function hw(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 Aw(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Tm(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 Sw="Filter aborted because of too many search results";function Im(e){return e?.includes(Sw)===!0}var wm="/k/v1/records.json",Ss="/k/v1/records/cursor.json",Tw=4096,Iw=2,qc=e=>kintone.api.url(e,!0);function ww(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(wm,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=Tw?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:qc(wm),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 Qi(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 bw(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Qi({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}),Qi(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}),Qi(n)}}function Nw(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Mn(e,t,n){try{return await kintone.api(qc(e),t,n)}catch(r){throw Qi(r)}}function Pw(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Cw(e={}){let t=e.cursorMaxActive??Iw;Pw(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=ww(a),l=await fetch(s.url,s.init);if(!l.ok)throw await bw(l);let u=await l.json();return Im(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Qi(s)}},async openCursor(a){let s=qc(Ss),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 hs(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 u=await n.acquire(),p;try{p=await n.runCreate(()=>Mn(Ss,"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"?(u.release(),E):(u.quarantine(),new Ca(E))}let c=p.id,d=hm(Number(p.totalCount),{get:()=>Mn(Ss,"GET",{id:c}),delete:()=>Mn(Ss,"DELETE",{id:c}),isAlreadyReleasedError:Nw,onReleased:()=>u.release(),onReleaseUnknown:()=>u.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 u=await Mn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Mn("/k/v1/app/form/fields.json","GET",{app:a});return Am(s.properties)},async getNumberPrecision(a){let s=await Mn("/k/v1/app/settings.json","GET",{app:a});return yf(s)},async getProcessStatuses(a){let s=await Mn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Tm(s.states)}}}}var bm=new Set(["postRecords","putRecords","deleteRecords"]),Zi=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 an(e){try{return await e()}catch(t){throw new Zi(t)}}function Ow(e){return()=>{throw Qe(`${String(e)} is blocked by the readonly client`)}}function yr(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 u=await an(()=>t(l));if(u.searchAborted===!0)throw ym();return u},openCursor:async l=>{let u=await an(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>an(()=>p()),close:()=>an(()=>c())}},getApps:()=>an(()=>r()),getFields:l=>an(()=>i(l)),getNumberPrecision:l=>an(()=>o(l)),getProcessStatuses:l=>an(()=>a(l))});return new Proxy(s,{get(l,u,p){return bm.has(u)?Ow(u):Reflect.get(l,u,p)},has(l,u){return bm.has(u)?!1:Reflect.has(l,u)}})}function Lw(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 Zi(o.reason)})(),n)}}}async function hr(e,t){let n=Lw(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 _w="A-Za-z",Dw="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Xc=`${_w}${Dw}`,Pm=`${Xc}0-9_`,vw=new RegExp(`^[${Xc}]$`,"u"),Uw=new RegExp(`^[${Pm}]$`,"u"),Mw=new RegExp(`^[${Xc}][${Pm}]{0,63}$`,"u");function kw(e){return vw.test(e)}function xw(e){return Uw.test(e)}function Qc(e){let t=e.normalize("NFC").toUpperCase();if(!Mw.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 Jc(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 Fw(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 Gw(e,t){let n=t>0?e[t-1]:"";if(Jc(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,!kw(e[l]??""))return null;for(l++;l<e.length&&xw(e[l]);)l++;s=l;try{o=Qc(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&&Jc(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&Fw(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(Jc(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Zc(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=Gw(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Nm(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Cm(e,t="dev",n){let r=Zc(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let g=a(m.profile),h=o.get(m.appId);h||(h=new Set,o.set(m.appId,h)),h.add(g.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let g=a(m.profile).toLowerCase(),h=`logical:${m.logicalName}@${g}`;if(l.has(h))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${g} requires logicalApps configuration.`);let T=n.resolveLogicalApp(m.logicalName,g);l.set(h,T),s.add(T)}let u=new Map,p=new Map;for(let[m,g]of o.entries()){let h=[...g].sort();if(!(h.length<=1))for(let T of h){let y=Nm(s);u.set(`physical:${m}@${T}`,y),p.set(y,{source:"physical",mappedAppId:y,appId:m,profile:T})}}let c=[],d=[],f=0,R=0,E=(m,g,h,T)=>{if(!m&&g===h)return;let y=f;c.push(m),f+=m.length,d.push({normalizedStart:y,normalizedEnd:f,sourceStart:g,sourceEnd:h,...T===void 0?{}:{bindingMappedAppId:T}})};for(let m of r){let g=a(m.profile).toLowerCase(),h;if(m.source==="physical")h={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${g}`)??m.appId,appId:m.appId,profile:g};else{let b=`logical:${m.logicalName}@${g}`,P=u.get(b);P===void 0&&(P=Nm(s),u.set(b,P)),h={source:"logical",logicalName:m.logicalName,mappedAppId:P,appId:l.get(b),profile:g}}p.set(h.mappedAppId,h),E(e.slice(R,m.start),R,m.start);let T=e.slice(m.referenceValueEnd,m.appEnd),y=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${h.mappedAppId}${T}`:`APP${h.mappedAppId}${T}`;E(y,m.start,m.fullEnd,h.mappedAppId),R=m.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var Om=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),Lm=new Set([...Om,"onLimitReached"]),Kw=new Set([...Lm,"variables","tempTableMaxRows"]);function _m(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Ar(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Dm(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 Bw(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 vm(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=Qc(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`);Ar(r,`logicalApps.${n}`),t[i]=r}return t}function Um(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)}`);e.maxRecords!==void 0&&Ar(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Ar(e[r],r);if(e.fetchParallel!==void 0&&Ar(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Ar(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.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function ep(e,t){_m(e);let n=t==="run"?Lm:Om;Dm(e.client);let r=Um(e,n,t==="run"?"runQuery":"explainQuery"),i=vm(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function Mm(e){_m(e),Dm(e.client),e.variables!==void 0&&Bw(e.variables),e.tempTableMaxRows!==void 0&&Ar(e.tempTableMaxRows,"tempTableMaxRows");let t=Um(e,Kw,"runBatch"),n=vm(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 Ts(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>Ts(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ts(o,t,n)])):e}function $w(e,t,n){return e.slice(t,n)}function eo(e,t,n){let r=Zc(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${$w(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Cm(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function to(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 no(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ts(e,n,{logicalAppDisplay:"physical"})}function Is(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 Ww(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function Vw(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 ws(e,t=e.metrics){let n=sR(e);return{type:"query",rows:e.rows.map(Ww),columns:e.columns.map(r=>Vw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Is(t)}}function km(e,t={}){let n=new Qt(e).tokenize(),r=new Zt(n,t).parse();return tt(r),r}function xm(e,t={}){let n=new Qt(e).tokenize(),r=new Zt(n,t).parseStatements();return r.forEach(tt),r}function tp(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 Fm(e){if(e instanceof Ee)return gr(e.message,e);let t=Un(e);return t.code==="PARSE_ERROR"?t:gr("SQL statement could not be parsed",e)}function Hw(e){if(e.trim()==="")throw gr("SQL statement is empty");try{return km(e,{import:!0})}catch(t){let n=Fm(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?gr("This API accepts one statement; use runBatch for multiple statements",t):n}}function Gm(e){if(uo(e)==="UNKNOWN")throw Qe("Unclassifiable statement is not allowed");return e}function Km(e){if(e.trim()==="")throw gr("SQL statement is empty");try{return xm(e,{import:!0})}catch(t){throw Fm(t)}}function Yw(e){let t=Gm(e),n=t.type;if(n==="IMPORT")throw Qe("IMPORT is disabled by default in engine library queries");if(!Fn(t))throw Qe(`${n} statements are not read-only`);if(tp(t))throw Qe("APPLY statements are not allowed in engine library queries");if(!Ep(t))throw Qe(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Bm(e){let t=Gm(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Qe("IMPORT is disabled by default in engine library batches");if(!Fn(n))throw Qe(`${n.type} statements are not read-only`);if(tp(n))throw Qe("APPLY statements are not allowed in engine library batches");if(Wt(n.type))throw Qe("DML VALIDATE ONLY statements are not supported by runBatch")}function $m(e){let t=Hw(e);return Yw(t),t}function Wm(e){let t=Km(e);return t.forEach(Bm),t}function Vm(e){let t=e.trim(),n=Km(t);n.forEach(Bm);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 jw(e){let t=e.error,n=t?.cause!==void 0?Un(t.cause):new Me("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return zc(n,e.index,e.type)}async function zw(e,t){let n=[],r=[];try{let i=Mm(t),o=eo(e,i.client,i.logicalApps);r=o.logicalBindings,n=Wm(o.sql);let a=await hr(o.client,p=>RR(o.sql,yr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw jw(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=ws(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?no(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw to(gs(i,n),r)}}function Hm(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function qw(e,t){let n=[];try{let r=ep(t,"run"),i=eo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=$m(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await hr(i.client,l=>fc(i.sql,yr(l),{...a,captureColumnMeta:!0}));return Hm(s),ws(s)}catch(r){throw to(Un(r),n)}}async function Jw(e,t){let n=[],r=[];try{let i=ep(t,"explain"),o=eo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Vm(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await hr(o.client,f=>fc(a.legacySql,yr(f),i.executeOptions));Hm(p);let c=no(p.rows.map(f=>String(f.plan??"")),r),d=Hc(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
16
+ `),plan:d,metrics:Is(p.metrics)}}let s=await hr(o.client,p=>pm(o.sql,yr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions)),l=no(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=Hc(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
+ `),plan:u,metrics:Is()}}catch(i){throw to(gs(i,n),r)}}var GD="3.66.1";export{Me as KsqlEngineError,Cw as createReadonlyKintoneClient,Jw as explainQuery,zw as runBatch,qw as runQuery,GD as version};