@rex0220/kintone-sql-tools 3.28.0 → 3.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
- "use strict";var Bo=Object.defineProperty;var Fd=Object.getOwnPropertyDescriptor;var xd=Object.getOwnPropertyNames;var Kd=Object.prototype.hasOwnProperty;var Bd=(e,t)=>{for(var n in t)Bo(e,n,{get:t[n],enumerable:!0})},$d=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xd(t))!Kd.call(e,i)&&i!==n&&Bo(e,i,{get:()=>t[i],enumerable:!(r=Fd(t,i))||r.enumerable});return e};var Gd=e=>$d(Bo({},"__esModule",{value:!0}),e);var qg={};Bd(qg,{KsqlEngineError:()=>Te,createReadonlyKintoneClient:()=>Pd,explainQuery:()=>Md,runQuery:()=>kd,version:()=>jg});module.exports=Gd(qg);async function ge(e,t,n,r,i={}){let o=i.pageSize??Vd,a=Math.max(1,i.parallel??Wd),s=i.maxRecords??Hd,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let u=p??s,d=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,c=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=tl(n,R),h=await el(e,t,y,d,o,m);if(Zs(h,i),c.push(...h.records),p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Pe(E)}if(h.records.length<o)return c;for(m+=o,m>=$o&&(R=nl(h.records),m=0);;){if(p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Pe(E)}let g=u-c.length,S=Math.ceil(g/o),N=Math.max(1,Math.min(a,S)),w=[];for(let P=0;P<N;P++){let L=m+P*o;if(L>=$o)break;w.push(L)}let _=tl(n,R),O=await Promise.all(w.map(P=>el(e,t,_,d,o,P)));for(let P of O)Zs(P,i);let v=!1;for(let P of O){if(c.push(...P.records),p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Pe(E)}if(P.records.length<o){v=!0;break}}if(v)break;if(m+=o*w.length,m>=$o){let P=O[O.length-1];R=nl(P.records),m=0}}return c}function Zs(e,t){e.searchAborted&&t.onSearchAborted?.()}function rl(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 Vd=500,Wd=1,Hd=1e4,$o=1e4;async function el(e,t,n,r,i,o){let a=Yd(n,i,o);return e({app:t,query:a,fields:r})}function tl(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 Yd(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function nl(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Pe=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var Xr=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["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 fe=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"}},tn=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(en(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Go(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new fe(`\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 fe("\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 fe("\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&&en(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&en(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&en(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||!en(this.input[this.pos]))throw new fe("\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&&en(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&&il(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Xr.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(!Go(n))throw new fe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&il(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new fe(`@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 fe("\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 fe("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";var na=Object.defineProperty;var xf=Object.getOwnPropertyDescriptor;var Kf=Object.getOwnPropertyNames;var Bf=Object.prototype.hasOwnProperty;var $f=(e,t)=>{for(var n in t)na(e,n,{get:t[n],enumerable:!0})},Gf=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Kf(t))!Bf.call(e,i)&&i!==n&&na(e,i,{get:()=>t[i],enumerable:!(r=xf(t,i))||r.enumerable});return e};var Vf=e=>Gf(na({},"__esModule",{value:!0}),e);var ZA={};$f(ZA,{KsqlEngineError:()=>Re,createReadonlyKintoneClient:()=>hf,explainQuery:()=>Ff,runBatch:()=>Uf,runQuery:()=>Mf,version:()=>QA});module.exports=Vf(ZA);async function Te(e,t,n,r,i={}){let o=i.pageSize??Wf,a=Math.max(1,i.parallel??Hf),s=i.maxRecords??Yf,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let u=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=Ul(n,R),h=await vl(e,t,y,c,o,m);if(Dl(h,i),p.push(...h.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}if(h.records.length<o)return p;for(m+=o,m>=ra&&(R=kl(h.records),m=0);;){if(d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}let g=u-p.length,S=Math.ceil(g/o),w=Math.max(1,Math.min(a,S)),b=[];for(let I=0;I<w;I++){let _=m+I*o;if(_>=ra)break;b.push(_)}let O=Ul(n,R),P=await Promise.all(b.map(I=>vl(e,t,O,c,o,I)));for(let I of P)Dl(I,i);let U=!1;for(let I of P){if(p.push(...I.records),d!==void 0&&p.length>=d)return p.slice(0,d);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Oe(E)}if(I.records.length<o){U=!0;break}}if(U)break;if(m+=o*b.length,m>=ra){let I=P[P.length-1];R=kl(I.records),m=0}}return p}function Dl(e,t){e.searchAborted&&t.onSearchAborted?.()}function Ml(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 Wf=500,Hf=1,Yf=1e4,ra=1e4;async function vl(e,t,n,r,i,o){let a=jf(n,i,o);return e({app:t,query:a,fields:r})}function Ul(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 jf(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function kl(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 Oe=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var si=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["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 me=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"}},gt=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(cn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ia(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new me(`\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 me("\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 me("\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&&cn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&cn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&cn(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||!cn(this.input[this.pos]))throw new me("\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&&cn(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&&Fl(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=si.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(!ia(n))throw new me("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Fl(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new me(`@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 me("\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 me("\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 fe("\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 Go(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||jd(t)}function il(e){let t=e.codePointAt(0);return Go(e)||t>=48&&t<=57}function en(e){let t=e.codePointAt(0);return t>=48&&t<=57}function jd(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var qd=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function zd(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 Ne(e){let t=qd.exec(e.trim());if(t===null)return null;let n=zd(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 Jd(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 al(e){let t=Ne(e);return t===null?null:Jd(t)}function Xd(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 Qr(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Xd(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Zr(e,t){let n=Ne(e),r=Ne(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Qr(n,r)}var ct="__NO_FROM__";function Ee(e){return{type:"NUMBER",value:Number(e),raw:e}}function G(e){let t=e.raw??String(e.value);return al(t)??t}function sl(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function Qd(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=Qd(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 ll(e){return Z(e).type!=="NONE"}function ul(e,t){let n=Z(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),p=r.get(l.canonicalId);if(p)return p;let u={...l,field:s};return r.set(u.canonicalId,u),u},o=n.allItems.map(i).filter((s,l,p)=>p.findIndex(u=>u.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 ei(e){return`'${e.replace(/'/g,"''")}'`}function nn(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return G(e);if(e.type==="STRING_FUNC")return Wo(e);let n=`${nn(e.left)}${e.op}${nn(e.right)}`;return t?n:`(${n})`}function cl(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Wo(e.expr);if(e.type==="ARITH_FIELD")return nn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Vo(e.expr)}function dl(e){switch(e.type){case"STRING":return ei(e.value);case"NUMBER":return G(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=>ei(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(dl).join(",")})`;case"ARITH_VALUE":return nn(e.expr);case"CASE_VALUE":return Vo(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function xn(e){switch(e.type){case"BINARY":return`${cl(e.left)} ${e.op.replace("_"," ")} ${dl(e.right)}`;case"NULL_CHECK":return`${cl(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${xn(e.left)} ${e.op} ${xn(e.right)})`;case"NOT":return`NOT (${xn(e.expr)})`;case"GROUP":return`(${xn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function pl(e){return e.type==="ARRAY"?`[${e.elements.map(t=>ei(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?nn(e):Pt(e)}function Vo(e){let t=e.branches.map(r=>`WHEN ${xn(r.condition)} THEN ${pl(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${pl(e.elseResult)}`;return`CASE ${t}${n} END`}function Zd(e){return e.type==="AGG_REF"?Ae(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Kn(e):Pt(e)}function Wo(e){return`${e.func}(${e.args.map(Zd).join(",")})`}function Pt(e){switch(e.type){case"STRING":return ei(e.value);case"NUMBER":return G(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Wo(e);case"CASE_WHEN":return Vo(e);case"SCALAR_ARITH":return`(${Pt(e.left)}${e.op}${Pt(e.right)})`;case"CONCAT_OP":return`(${Pt(e.left)}||${Pt(e.right)})`}}function ef(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?nn(e,!0):Pt(e)}function Ae(e,t,n){let r=ef(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Kn(e){return e.type==="NUMBER"?G(e):e.type==="AGG_REF"?Ae(e.func,e.distinct,e.arg):`${Kn(e.left)}${e.op}${Kn(e.right)}`}var ti=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Nt=new Set(["TODAY","NOW","LOGINUSER"]),Bn=new Set([...Nt,...ti]),Ct="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Xe="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function j(e){return ti.has(e)}function rn(e){return Nt.has(e)}function ke(e){return Bn.has(e)}var fl=20,Ho=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"}),Rl=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Yo=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"}),RA=Object.freeze(Object.values(Yo).filter(e=>e!==void 0)),tf=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),nf=new Set(tf);function rf(e){return nf.has(e)}var ml=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),ni=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function El(e){return ni[e]!==void 0}var of=Object.freeze([...ti]),af=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),sf=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function lf(e){return af.has(e)}function uf(e){return sf.has(e)}function cf(e){return Number.isInteger(e)&&e>=1&&e<=31}var mA=Object.freeze(Array.from(new Set([...Object.keys(Ho),...Rl,...Object.keys(Yo),...Object.keys(ml),...Object.keys(ni),...of,"IF"]))),pf=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","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 df(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!pf.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},on=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=[]}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>fl)throw new T(`batch exceeds ${fl} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=ni[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Qe(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=Qe(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let w=this.parseIdentifier();if(s.has(w))throw new T(`IMPORT target ${w} is declared more than once.`,this.prev());if(s.add(w),this.peek().kind==="("){this.advance();let _=this.parseIdentList();if(this.expect(")"),new Set(_).size!==_.length)throw new T(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let O;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}O=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:_,...O?{rowIdSourceHeader:O}:{}})}else a.push(w),o.push({kind:"FIELD",field:w});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let p=this.parseIdentifier(),u,d=!0,c;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());u=w==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(d)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),c=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==ct||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(w=>w.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!d)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let g=o.filter(w=>w.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(w=>w.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(h);for(let _ of g){if(!_.rowIdSourceHeader)throw new T(`CSV subtable ${_.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(_.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${_.subtableCode}.`,this.prev())}for(let _ of w)if(!g.some(O=>O.subtableCode===_))throw new T(`REPLACE SUBTABLES target ${_} is not declared in INTO.`,this.prev())}}else if(h)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),N=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:u,hasHeader:d,mappingMode:E,ignoreUnknownColumns:R,...c?{columns:c}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...h?{replaceSubtables:h}:{},...m?{keyFields:m}:{},...S,...N}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=Qe(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let d=this.parseIdentifier();if(this.consume("(")){let c=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:d,children:c})}else o.push({kind:"FIELD",field:d})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let d=this.peek();if(d.kind!=="IDENT"||!d.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",d);p=this.parseTableName()}let u={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(u,t),u}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&df(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:ct},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],p,u=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?p=this.parseGroupingSetsClause():this.isRollupStart()?p=this.parseRollupClause():this.isCubeStart()?p=this.parseCubeClause():l=this.parseGroupByKeys(),p&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(u=this.parseWhereExpr("HAVING"))}let d="CANONICAL",c=[];if(this.consume("ORDER"))this.expect("BY"),c=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());d="KINTONE_NATIVE",this.expect("BY"),c=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||p!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(p&&d==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...p?{grouping:p}:{},having:u,orderMode:d,orderBy:c,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.continueArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseArithAddSub(),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.continueArith(o),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return ml[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ee(`-${G(n)}`):{type:"AGG_ARITH",left:Ee("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ee(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ee(`${n.kind==="-"?"-":"+"}${G(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ee("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ee(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ee(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ee(`-${G(n)}`):{type:"ARITH",left:Ee("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ee(t.value);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Ho[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Ho[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(Rl.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=ff(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Yo[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!rf(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=Qe(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:Ae(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&j(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!lf(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let p=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:p,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!uf(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!cf(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(El(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:ni[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ee(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ee(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=sl(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Qe(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let d=this.parseCheckGroups(),c=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:u,...d,...c}}this.expect("VALUES");let o=[];do{this.expect("(");let u=this.parseInsertRow(i.length);this.expect(")"),o.push(u)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let p=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Qe(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect(),c=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:d,keyFields:c,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...p,...u}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Ee(`${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(Ee(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Qe(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(c=>c.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let c=this.parseTableRef();if(c.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(c.cteName!==null&&!c.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!c.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(c.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:c.appId,cteName:c.cteName,alias:c.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let c=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=c.targetJoinField,o.joinKeyField=c.joinKeyField,o.targetFilter=c.targetFilter}else{if(i.some(c=>c.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(c=>c.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(c.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&p.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(u.validateOnly||u.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...d,...p,...u}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...d,...p,...u}:{type:"UPDATE",appId:n,assignments:i,where:s,...d,...p,...u}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((u,d)=>{let c=this.matchUpdateFromJoin(u,n,r);c!==null&&a.push({index:d,...c})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let u=0;u<o.length;u++){if(u!==s.index&&this.nodeContainsQualifiedField(o[u],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(u!==s.index&&this.nodeContainsForeignQualifier(o[u],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let p=o.filter((u,d)=>d!==s.index).reduce((u,d)=>u===null?d:{type:"LOGICAL",op:"AND",left:u,right:d},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:p}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(El(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Qe(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=Qe(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||Xr.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function ff(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 Qe(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function yl(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var Ef=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Re(e,t){for(let n of t)e.add(n)}function ri(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&Ef.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=>ri(i,t)):ri(r,t))}function Ot(e){let t=new Set;if(yl(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Re(t,sn(e));break;case"UNION":Re(t,hl(e));break;case"WITH":for(let n of e.ctes)Re(t,Ot(n.query));Re(t,Ot(e.query));break;case"CREATE_TEMP_TABLE":Re(t,Ot(e.query));break;default:break}return ri(e)&&t.add("STATISTICAL_AGGREGATE"),t}function hl(e){let t=e.left.type==="SELECT"?sn(e.left):hl(e.left);return Re(t,sn(e.right)),t}function sn(e){let t=new Set;Z(e).type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let n of e.columns)if(n.type==="WINDOW_COL"&&n.orderBy.length>0&&t.add("WINDOW_ORDER"),n.type==="SCALAR_SUBQUERY_COL"&&Re(t,sn(n.query)),n.type==="CASE_COL")for(let r of n.expr.branches)Re(t,an(r.condition));return Re(t,an(e.where)),Re(t,an(e.having)),ri(e)&&t.add("STATISTICAL_AGGREGATE"),t}function an(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")&&Re(t,sn(e.right.query));break;case"LOGICAL":Re(t,an(e.left)),Re(t,an(e.right));break;case"NOT":case"GROUP":Re(t,an(e.expr));break;case"EXISTS":Re(t,sn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var Rf=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})}),zo=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})}),$n="v1";function B(e){throw new Error(`UnsupportedError: APPLY ${$n} scope does not support ${e}`)}function mf(e,t){let n=$n;$n=e;try{return t()}finally{$n=n}}function yf(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 oi(e,t){return mf(e,()=>hf(t,Rf[e]))}function hf(e,t){let n=yf(e);if(n===null)return;if(n.type==="UPSERT"){Af(n,t);return}let r=n.applyBlocks;if(jo(r),!t.multipleBlocks&&r.length!==1&&B("multiple APPLY blocks in this phase"),n.type==="INSERT"){Sf(n,r,t);return}let i=n;i.subtableCode&&B("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&B("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&B("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&B("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&B("REJECT LIMIT in this phase"),Tf(i.where,t.multipleParents),Al(r,t)}function Al(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||B(`${r.kind} in this phase`);Sl(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)ii(i,"APPEND targets");un(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&B("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&gl(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&B("EXPECT ROWS in this phase"),r.assignments.length===0&&B("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(".")&&B("parent or qualified PATCH targets in this phase")}un(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&gl(r.selector.where,t.idxSelectors)}}}}function Sl(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 gf=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Tl(e,t){if(Sl(e),e.targetKind==="MULTI_VALUE"){if(!gf.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 jo(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${$n} scope allows only one block for table ${n.field}`);t.add(n.field)}}function Af(e,t){t.upsert||B("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&B("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&B("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&B("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];jo(n),jo(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&B("multiple APPLY blocks in this phase"),Il(n,"UPSERT ON INSERT"),Al(r,{...t,idxSelectors:!1,expectRows:!1})}function Il(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&B(`${r.kind} for ${t} in this phase`);for(let i of r.fields)ii(i,"APPEND targets");un(r.values,"APPEND values")}}function Sf(e,t,n){n.insert||B("INSERT in this phase"),e.subtableCode&&B("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&B("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&B("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&B("REJECT LIMIT in this phase"),Il(t,"INSERT")}function Ze(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 wl(e,t){let n=zo[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&bl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${ln(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 ${ln(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 ${ln(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ze(t.where))throw new Error(`UnsupportedError: APPLY ${ln(e)} execution does not support multiple-parent APPLY`)}function bl(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 Pl(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ze(t.where))&&!zo[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${ln(e)} public multiple-parent write is not connected`)}function cn(e){if(!zo[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${ln(e)} internal prepared write is not available`)}function ln(e){return`Phase ${e.slice(5)}`}function Tf(e,t){Ze(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&B("a parent $id that is not a positive safe integer in this phase"),t||B("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),qo(e,t))}function qo(e,t){if(Array.isArray(e)){for(let o of e)qo(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")&&B("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&B("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&B("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)&&B("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&j(n.name))&&B("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))qo(o,t)}function gl(e,t){un(e,"child row selectors",t)}function un(e,t,n=!1){if(Array.isArray(e)){for(let s of e)un(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")&&B(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&B(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&B(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&j(r.name))&&B(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&B(`qualified or parent field references in ${t}`),ii(l,t,n)}if(i==="FIELD_REF"&&ii(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))un(s,t,n)}function ii(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&B(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&B(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&B(`aggregate expressions in ${t}`)}function Gn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=If(e.op);if(t===null)throw new ee(`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:Gn(e.left),right:Gn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Gn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function If(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 Nl(e){return e.includes("%")||e.includes("_")}function Vn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function dt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function pt(e){if(e===null)return!1;if(Vn(e))return!0;switch(e.type){case"LOGICAL":return pt(e.left)||pt(e.right);case"NOT":case"GROUP":return pt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ue(e){if(e===null)return!1;if(dt(e))return!0;switch(e.type){case"LOGICAL":return ue(e.left)||ue(e.right);case"NOT":case"GROUP":return ue(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function $(e){switch(e.type){case"BINARY":return wf(e);case"NULL_CHECK":return Pf(e);case"LOGICAL":return Nf(e);case"NOT":return Cf(e);case"GROUP":return Of(e);case"EXISTS":throw new ee("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ee("internal error: BOOLEAN predicate reached kintone query conversion")}}function wf(e){if(Vn(e))throw new ee("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=Ol(e.left),n=bf(e.op),r=Lf(e.right,e.op);return`${t} ${n} ${r}`}function bf(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 Pf(e){let t=Ol(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Nf(e){let t=$(e.left),n=$(e.right),r=e.op==="AND"?"and":"or",i=Cl(e.left)?`(${t})`:t,o=Cl(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Cf(e){return $(Gn(e.expr))}function Of(e){return`(${$(e.expr)})`}function Ol(e){if(e.type==="FUNC_FIELD")throw new ee(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ee("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 ee("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 ee("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return xf(e.field)}function Lf(e,t){switch(e.type){case"VARIABLE":throw new ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Ll(e);case"NUMBER":return G(e);case"KINTONE_FUNC":return _l(e);case"IN_LIST":return Mf(e,t);case"ARITH_VALUE":throw new ee("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 ee("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 ee("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ee("\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 ee("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Ll(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function _l(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return _f(e)}function _f(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Wn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!Uf(e.args.offset,e.args.offsetText)||!Df.has(e.args.unit)?Wn():`${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&&!vf.has(e.args.weekday)?Wn():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"||!kf(e.args.day)?Wn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Wn()}var Df=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),vf=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Uf(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function kf(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Wn(){throw new ee("internal error: invalid relative date function AST reached kintone query conversion")}function Mf(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ee("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Ff(e.values),`(${e.values.map(r=>r.type==="STRING"?Ll(r):r.type==="NUMBER"?G(r):_l(r)).join(",")})`}function Ff(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function xf(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Cl(e){return e.type==="LOGICAL"}var ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Kf(e){return e.some(t=>t.type==="WINDOW_COL")}function Ce(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||Kf(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Ml(t.expr)||t.type==="SCALAR_VALUE_COL"&&Yn(t.expr))||ft(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function ft(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Dl(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Vn(e);case"NULL_CHECK":return Dl(e.field);case"LOGICAL":return ft(e.left)||ft(e.right);case"NOT":case"GROUP":return ft(e.expr);case"EXISTS":return!0}}function Dl(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function ai(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push($(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Bf).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:$f(e.columns),totalCount:!1}}function kl(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!ft(e.where)&&n.push($(e.where)),{app:t,query:n.join(" "),fields:[]}}function Lt(e,t,n){let i=Hf(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 Bf(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 $f(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(Xo(r.field)):r.type==="ARITH_COL"?Hn(r.expr,n):r.type==="STRFUNC_COL"?Qo(r.expr,n):r.type==="SCALAR_VALUE_COL"&&pn(r.expr,n);return[...new Set(n)]}function Gf(e,t){Hn(e.left,t),Hn(e.right,t)}function Hn(e,t){e.type==="FIELD_REF"?t.push(Xo(e.field)):e.type==="ARITH"?Gf(e,t):e.type==="STRING_FUNC"&&Qo(e,t)}function Xo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Qo(e,t){for(let n of e.args)Vf(n,t)}function Vf(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Jo(e,t);return}pn(e,t)}function pn(e,t){if(e.type==="FIELD"){t.push(Xo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Qo(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){pn(e.left,t),pn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)vl(n.result,t);e.elseResult&&vl(e.elseResult,t)}}function vl(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Hn(e,t);return}pn(e,t)}}function Jo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Wf(e.arg,t);return}e.type==="AGG_ARITH"&&(Jo(e.left,t),Jo(e.right,t))}function Wf(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Hn(e,t):pn(e,t)}function Ml(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Yn(t))}function Yn(e){return e.type==="STRING_FUNC"?Ml(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Yn(e.left)||Yn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Ul(t.result))||e.elseResult!==null&&Ul(e.elseResult):!1}function Ul(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Yn(e)}function Hf(e,t){let n=[e.from,...e.joins.map(A=>A.table)],r=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),i=new Map;for(let A of r)i.set(A,{table:A,allFields:!1,fields:new Set});if(i.size===0)return i;let o=r[0]??null,a=r.find(A=>!!A.subtableCode)??null,s=new Map;for(let A of r)A.alias&&s.set(A.alias,A),A.subtableCode||(s.set(`APP${A.appId}`,A),s.set(`app${A.appId}`,A));let l=Yf(e.columns),p=A=>{let b=i.get(A);b&&(b.allFields=!0,b.fields.clear())},u=()=>{for(let A of r)p(A)},d=()=>{for(let A of r)A.subtableCode&&p(A)},c=(A,b)=>{let C=i.get(A);if(!(!C||C.allFields)){if(A.subtableCode){if(b.startsWith("_p.")){let I=b.slice(3);I&&I!=="*"&&C.fields.add(I);return}return void 0}b&&C.fields.add(b)}},f=(A,b="select",C)=>{if(!A||A==="*")return;if(A==="_p.*"){d();return}if(A.endsWith(".*")){let k=A.slice(0,-2);if(!k){u();return}if(k==="_p"){d();return}let K=s.get(k);if(K){p(K);return}return}if(b==="groupBy"&&C!==void 0){if(C.kind==="PHYSICAL"){let k=n[C.sourceIndex];k?.cteName===null&&c(k,C.fieldCode)}return}if((b==="orderBy"||b==="having"||b==="groupBy")&&l.has(A)||(b==="orderBy"||b==="having"||b==="groupBy")&&jf(A))return;let I=A.indexOf(".");if(I>0){let k=A.slice(0,I),K=A.slice(I+1);if(k==="_p"){a&&c(a,`_p.${K}`);return}let H=s.get(k);if(H){c(H,K);return}}o&&c(o,A)},E=(A,b,C="select")=>{if(b){if(b==="_p"){a&&c(a,`_p.${A}`);return}let I=s.get(b);if(I){c(I,A);return}}f(A,C)},R=(A,b="select")=>{if(A.type==="FIELD_REF"){f(A.field,b);return}if(A.type==="ARITH"){R(A.left,b),R(A.right,b);return}if(A.type==="STRING_FUNC"){h(A,b);return}},m=(A,b="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&S(A.arg,b);return}A.type==="AGG_ARITH"&&(m(A.left,b),m(A.right,b))},y=(A,b="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){m(A,b);return}g(A,b)},h=(A,b="select")=>{for(let C of A.args)y(C,b)},g=(A,b="select")=>{if(A.type==="FIELD"){E(A.field,A.tableAlias,b);return}if(A.type==="STRING_FUNC"){h(A,b);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){g(A.left,b),g(A.right,b);return}A.type==="CASE_WHEN"&&w(A,b)},S=(A,b="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,b);return}g(A,b)},N=(A,b="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,b);return}g(A,b)}},w=(A,b="select")=>{for(let C of A.branches)v(C.condition,b),N(C.result,b);A.elseResult&&N(A.elseResult,b)},_=(A,b="select")=>{if(A.type==="FIELD"){E(A.field,A.tableAlias,b);return}if(A.type==="FUNC_FIELD"){h(A.expr,b);return}if(A.type==="ARITH_FIELD"){R(A.expr,b);return}A.type!=="GROUPING_FIELD"&&w(A.expr,b)},O=(A,b="select")=>{if(A.type==="ARITH_VALUE"){R(A.expr,b);return}if(A.type==="CASE_VALUE"){w(A.expr,b);return}},v=(A,b="where")=>{if(A)switch(A.type){case"BINARY":_(A.left,b),O(A.right,b);return;case"NULL_CHECK":_(A.field,b);return;case"LOGICAL":v(A.left,b),v(A.right,b);return;case"NOT":case"GROUP":v(A.expr,b);return;case"EXISTS":case"BOOLEAN":return}},P=(A,b)=>{if(A.type==="FIELD_NAME"){f(A.name,"groupBy",b);return}if(A.type==="ARITH_KEY"){R(A.expr,"groupBy");return}h(A.expr,"groupBy")},L=(A,b="orderBy")=>{if(A.type==="FIELD_NAME"){f(A.name,b);return}if(A.type==="ARITH_KEY"){R(A.expr,b);return}A.type!=="GROUPING_KEY"&&h(A.expr,b)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":d();break;case"FIELD":f(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"&&S(A.arg,"select");break;case"ARITH_AGG_COL":m(A.expr,"select");break;case"ARITH_COL":R(A.expr,"select");break;case"CASE_COL":w(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":g(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let b of A.partitionBy)E(b.field,b.tableAlias,"select");for(let b of A.orderBy)L(b.key,"select");break}for(let A of e.joins)E(A.on.left.field,A.on.left.tableAlias,"where"),E(A.on.right.field,A.on.right.tableAlias,"where");v(e.where,"where");let U=Z(e);if(U.type==="PLAIN")U.allItems.forEach((A,b)=>P(A,t?.items[b]));else if(U.type==="GROUPING_SETS")for(let A of U.allItems)E(A.field,A.tableAlias,"select");v(e.having,"having");for(let A of e.orderBy)L(A.key);return i}function Yf(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(Ae(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function jf(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Et(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Ce(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||ll(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Rt(e){let t=e.ctes[0].query,n=e.query,r=si(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 si(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Fl(e.left,t)};case"NULL_CHECK":return{...e,field:Fl(e.field,t)};case"LOGICAL":return{...e,left:si(e.left,t),right:si(e.right,t)};case"NOT":case"GROUP":return{...e,expr:si(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Fl(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function dn(e,t={}){return jn(e,n=>qf(n,t))}function qn(e,t={}){return jn(e,n=>xl(n,t)||Kl(n,t))}function jn(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=jn(e.left,t),r=jn(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return jn(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function qf(e,t){return zf(e,t)||Qf(e,t)?!0:xl(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":Xf(e,t)}function zf(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Zo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Jf=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Xf(e,t){if(!Kl(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!Jf.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function Qf(e,t){return!Zf(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Zf(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 xl(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Zo(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(G(e.right))&&Number.isSafeInteger(e.right.value)}function Kl(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Zo(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function Zo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function zn(e,t={}){let n=e!==null&&t.extractCondition!==!1?dn(e,t):null,r=new Set;fn(n,r);let i=new Set;return fn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function En(e,t={}){let r={allowKlike:e.joins.every(u=>u.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=zn(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let u of e.joins){if(!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let d=dn(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});d!==null&&l.set(u.table.alias,d)}let p=new Set(a.appliedKlikes);for(let u of l.values())fn(u,p);return{mainCondition:s,joinConditions:l,appliedKlikes:p,allKlikes:a.allKlikes}}function ea(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function fn(e,t){if(e!==null){if(dt(e)){t.add(e);return}switch(e.type){case"LOGICAL":fn(e.left,t),fn(e.right,t);return;case"NOT":case"GROUP":fn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function li(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=le(t.where);if(l.length===0||!nE(l,a)||o===null||!Bl(o,l))return null;let p={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:tE(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},u={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:p};return eE(u,e,l),u}function eE(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(!Bl(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function le(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"&&ke(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function tE(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&ke(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&ke(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 nE(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Bl(e,t){let n=new Map;for(let r of t){if(!ke(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 ne=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function mn(e){$l(e)}function na(e){if(ea(e).length>0)throw new ne("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 $l(e){switch(e.type){case"SELECT":Rn(e);return;case"UNION":ia(e);return;case"WITH":Gl(e);return;case"EXPLAIN":$l(e.query);return;case"CREATE_TEMP_TABLE":ra(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":_t(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ze(e.where)&&ue(e.where)){ta(e.where),_t(e);return}if(mt(e)&&e.subtableCode)throw new ne("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&&ue(e.where)&&!oE(e,e.where)){ta(e.where),_t(e);return}if(mt(e))throw new ne("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(mt(e)&&e.subtableCode)throw new ne("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&&ue(e.where)){ta(e.where),_t(e);return}if(mt(e))throw new ne("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(mt(e))throw new ne("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(mt(e))throw new ne("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(mt(e))throw new ne("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(mt(e))throw new ne("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 ta(e){ci(e,t=>{if(!dt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ne("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 ne("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 ra(e){e.type==="SELECT"?Rn(e):e.type==="UNION"?ia(e):Gl(e)}function ia(e){ra(e.left),Rn(e.right)}function Gl(e){if(Et(e)){Rn(Rt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Rn(t.query):t.query.type==="UNION"&&ia(t.query);ra(e.query)}function Rn(e){if(iE(e),ue(e.where)&&!(Ce(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=En(e,{allowUnresolvedVariables:!0});if(ea(n).length===0){_t(e);return}if(rE(e)){_t(e);return}throw new ne("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")}_t(e)}function rE(e){return e.where!==null&&le(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function iE(e){ci(e,t=>{if(!dt(t))return;if(!ui(e.where,t))throw new ne("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 ne("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 ne("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 _t(e){pi(e,t=>{t.type==="SELECT"&&Rn(t)},!0)}function mt(e){let t=!1;return pi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function oE(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 ui(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ui(e.left,t)||ui(e.right,t);case"NOT":case"GROUP":return ui(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ci(e,t){if(Array.isArray(e)){for(let r of e)ci(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&aE(r)||ci(r,t)}function pi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)pi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))pi(i,t)}function aE(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Vl=Symbol("ksql.groupingRowMeta"),Wl=new WeakMap;function Hl(e,t){return Object.defineProperty(e,Vl,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function sE(e){return e[Vl]}function lE(e){return sE(e)?.includedCanonicalIds}function Yl(e,t){Wl.set(e,t)}function yn(e,t){let n=lE(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Wl.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ql=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Ei(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function aa(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 Oe(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Oe(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=>Oe(r,t))}}function Ri(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ri(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Oe(n.arg,t);return}Object.values(n).forEach(r=>Ri(r,t))}}function Jn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Jn(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(aa(n.field));return}Object.values(n).forEach(i=>Jn(i,t))}}function Xn(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Xn);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(Xn)}function uE(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"?Xn(e):!1}function cE(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function jl(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function pE(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Ei(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Ei(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Yl(e,r.canonicalId)}function oa(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Ei(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function dE(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[aa(e.name)];let t=[];return Jn(e,t),t}function zl(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Oe(i,n);Oe(e.having,n),Oe(e.orderBy,n);let r=[];Oe(e.where,r),Oe(e.joins,r),Ri(e.columns,r),Ri(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Oe(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function Jl(e,t,n=()=>{}){zl(e);let r=Z(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&Oe(u,i);if(Oe(e.having,i),Oe(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=ul(e,t),a=new Set,s=[];for(let u of o.allItems){let d=u;if(!d.physical)throw new Error(`ArgumentError: B65 grouping item ${Ei(u.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)pE(u,t,a);let l=cE(e.columns);for(let u of e.columns){if(u.type==="GROUPING_COL"||u.type==="AGGREGATE"||u.type==="ARITH_AGG_COL"||u.type==="LITERAL_COL"||u.type==="VARIABLE_COL"||u.type==="SCALAR_SUBQUERY_COL")continue;let d=[];u.type==="FIELD"?d.push(aa(u.field)):Jn(u,d);for(let c of d)oa(c,t,a,"SELECT")}if(e.having){let u=[];Jn(e.having,u);for(let d of u)d.tableAlias===null&&l.has(d.field)||jl(d)||oa(d,t,a,"HAVING")}for(let u of e.orderBy)for(let d of dE(u.key))d.tableAlias===null&&l.has(d.field)||jl(d)||oa(d,t,a,"ORDER BY");let p=new Set;for(let u of s)p.add(u.directKey),u.unqualifiedBridgeKey!==null&&p.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!uE(u))continue;let d="alias"in u?u.alias:null;if(d!==null&&p.has(d))throw new Error(`ArgumentError: B65 aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var fE=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),EE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function q(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":EE.has(e.fieldType)?t="option":fE.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function x(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function hn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function mi(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function yt(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 RE(e,t){return e<t?-1:e>t?1:0}function Xl(e){if(e==="")return{band:0};let t=Ne(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 mE(e,t){let n=Xl(e),r=Xl(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Qr(n.value,r.value):n.band===5&&r.band===5?yt(n.value,r.value):0}function Ql(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 yE(e,t,n){let r=Ql(e,n),i=Ql(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=yt(r.normalizedId,i.normalizedId);return o!==0?o:yt(r.display,i.display)}function hE(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 Zl(e,t){let n=t.optionOrder??new Map,i=[...new Set(hE(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(eu),i}function eu(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:yt(e.label,t.label)}function gE(e,t,n){let r=Zl(e,n),i=Zl(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=eu(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function Dt(e,t,n){switch(n.compareMode){case"string":return yt(e,t);case"number":return mE(e,t);case"recordNumber":return yE(e,t,n.fieldType==="RECORD_NUMBER");case"option":return gE(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function vt(e,t,n,r=x("string")){let i=Dt(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function tu(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=Ne(o),l=Ne(a),p=s!==null&&l!==null?Qr(s,l):RE(Number(o),Number(a));if(p!==0)return p}return yt(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==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(et(t,e.field));if(e.type==="STRING_FUNC")return Number(ie(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 ce(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return et(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 ie(e,t,n,r);case"CASE_WHEN":return Le(e,t,n,r);case"CONCAT_OP":return ie({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(ce(e.left,t,n,r)),o=Number(ce(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 ht(e,t,n,r){switch(e.type){case"CASE_WHEN":return ou(e,t,n,r);case"SCALAR_ARITH":{let i=ht(e.left,t,n,r),o=ht(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=ht(e.left,t,n,r),o=ht(e.right,t,n,r);return`${i??""}${o??""}`}default:return ce(e,t,n,r)}}function yi(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 AE(e){return e>=55296&&e<=56319}function SE(e){return e>=56320&&e<=57343}function gi(e,t){return t>0&&t<e.length&&AE(e.charCodeAt(t-1))&&SE(e.charCodeAt(t))}function nu(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 la(e,t){let n=Math.min(Math.max(0,t),e.length);return gi(e,n)&&(n-=1),e.slice(0,n)}function TE(e,t){let n=Math.max(0,e.length-t);return gi(e,n)&&(n+=1),e.slice(n)}function IE(e,t,n){let r=nu(t,e.length),i=nu(n,e.length);return i<=r?"":(gi(e,r)&&(r+=1),gi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function wE(e,t){let n=e.repeat(Math.ceil(t/e.length));return la(n,t)}var bE=200,Qn=new Map;function PE(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 sa(e,t,n=!1){let r=PE(t)+(n?"g":""),i=`${e}\0${r}`,o=Qn.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(Qn.size>=bE){let s=Qn.keys().next().value;s!==void 0&&Qn.delete(s)}return Qn.set(i,a),a}function NE(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function CE(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 OE(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 u=Number(s+l);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=1;continue}}i+="$"}return i}function LE(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,p=a.length-(l?3:2),u=a.slice(0,p);return OE(n,o,u,l?s:void 0)})}function ie(e,t,n,r){let i=e.args.map(o=>xE(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 me("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return IE(o,a,s!==void 0?a+s:o.length)}case"LEFT":{me("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":la(o,a)}case"RIGHT":{me("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":TE(o,a)}case"INSTR":return me("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{me(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return la(o,a);let s=i[2]??" ";if(s==="")return o;let l=wE(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return me(e.func,i,2),tu(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 me("REGEXP_LIKE",i,2,3),sa(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{me("REGEXP_REPLACE",i,3,5),NE(i[2]);let o=CE(i[4]),a=sa(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):LE(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return me("REGEXP_SUBSTR",i,2,3),sa(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{me("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,p)=>{s.has(l)||s.set(l,a[p])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return yi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return yi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return yi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return me("TRUNCATE",i,1,2),yi("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 ME(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 me(e.func,i,1,1),hi(i[0])?String(ua(i[0])+1):"";case"QUARTER":return me(e.func,i,1,1),hi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return me(e.func,i,1,1),hi(i[0])?String(iu(i[0])):"";case"DATE_FORMAT":return DE(i[0]??"",i[1]??"");case"DATEDIFF":return vE(i[0]??"",i[1]??"");case"DATE_ADD":return UE(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return me("LAST_DAY",i,1,1),kE(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 me(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 Zn(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 Ai(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 hi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ai(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 ua(e){return Ai(e).getUTCDay()}function ru(e){let t=Ai(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function _E(e){return ru(e).getUTCFullYear()}function iu(e){let t=ru(e),n=t.getUTCFullYear(),r=Ai(`${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 DE(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Zn(e),l=hi(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(ua(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][ua(e)]:"";case"%v":return l?String(iu(e)).padStart(2,"0"):"";case"%G":return l?String(_E(e)).padStart(4,"0"):"";default:return p}})}function vE(e,t){if(e.length<10||t.length<10)return"0";let n=Zn(e),r=Zn(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 UE(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}=Zn(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${p}`}function kE(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Zn(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 ME(e,t){if(/^-?\d+$/.test(t.trim()))return FE(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,p=s+l,u=i.toFixed(p),[d,c=""]=u.split(".");l>0&&(c=c.replace(/0+$/,""));let f=r?d.replace(/\B(?=(\d{3})+(?!\d))/g,","):d,E=c?`${f}.${c}`:f;return n?E+"%":E}function FE(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 xE(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?G(e):String(ce(e,t,n,r))}function et(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 J(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return KE(e,t,n,r,i);case"NULL_CHECK":return HE(e,t);case"LOGICAL":return YE(e,t,n,r,i);case"NOT":return!J(e.expr,t,n,r,i);case"GROUP":return J(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function KE(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=fu(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=$E(e.left,a,i);return BE(e.op,o,e.right,t,a,n,s,i)}function BE(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(WE(n.values),p=new Set(n.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?G(d):String(d.value):d.value))),n.type==="SUBQUERY_IN_LIST"&&(p=n.resolved),p===null)return e==="NOT_IN";let u=VE(t,p,i);return e==="IN"?u:!u}if(e==="LIKE"){let p=ca(n,r,o);return du(t,p)}if(e==="NOT_LIKE"){let p=ca(n,r,o);return!du(t,p)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=ca(n,r,o,s);return vt(e,t,l,a)}var au=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function $E(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?q({fieldType:t}):x("string"));if(e.type==="ARITH_FIELD")return x("number");if(e.type==="FUNC_FIELD")return x(au.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return x("number");if(o.type==="STRING_FUNC")return x(au.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??x("string")}return x("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?x("number"):x("string")}var su=new Set(["CHECK_BOX","MULTI_SELECT"]),lu=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),GE=new Set(["CREATOR","MODIFIER"]);function VE(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=x("number");return[...t].some(a=>vt("=",e,a,o))}let i;if(su.has(n)||lu.has(n)||GE.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return su.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):lu.has(n)?!Array.isArray(i)||!i.every(uu)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):uu(i)?t.has(i.code):r()}function uu(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function WE(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}: ${Xe}`)}function HE(e,t){let n=fu(e.field,t);return e.not?n!=="":n===""}function YE(e,t,n,r,i){return e.op==="AND"?J(e.left,t,n,r,i)&&J(e.right,t,n,r,i):J(e.left,t,n,r,i)||J(e.right,t,n,r,i)}function fu(e,t,n,r){if(e.type==="FUNC_FIELD")return ie(e.expr,t);if(e.type==="ARITH_FIELD")return String(re(e.expr,t));if(e.type==="CASE_FIELD")return Le(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return yn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return et(t,i)}function ca(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 G(e);case"KINTONE_FUNC":return jE(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"?et(t,e.expr.field):e.expr.type==="STRING_FUNC"?ie(e.expr,t):String(re(e.expr,t));case"CASE_VALUE":return Le(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Le(e,t,n,r){for(let i of e.branches)if(J(i.condition,t,n,void 0,r))return pu(i.result,t,n,r);return e.elseResult!==null?pu(e.elseResult,t,n,r):""}function ou(e,t,n,r){for(let i of e.branches)if(J(i.condition,t,n,void 0,r))return cu(i.result,t,n,r);return e.elseResult===null?null:cu(e.elseResult,t,n,r)}function cu(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?re(e,t):ht(e,t,n,r)}function pu(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(re(e,t)):String(ce(e,t,n,r))}function jE(e){throw j(e)?new Error(`${e}: ${Ct}`):rn(e)?new Error(`${e}: ${Xe}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Si=new Map,qE=200;function du(e,t){if(!Nl(t))return e.includes(t);let n=Si.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"),Si.size>=qE&&Si.clear(),Si.set(t,n)}return n.test(e)}function gn(e){return Ru(e)}function Eu(e){return Ru(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Ru(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 pe("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 pe("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 pe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Ti(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!J(a.condition,t,n))continue;let s=ce(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function da(e){if(pt(e))throw new z("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 zE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),JE=new Set(["CHECK_BOX","MULTI_SELECT"]);function wi(e,t=new Map){let n=e.values.map(r=>XE(e.fields,r,t));return rr(n,100).map(r=>({app:e.appId,records:r}))}function XE(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:gt(a.expr,{},n.get(i))}:r[i]={value:tt(a,n.get(i))}}),r}function tr(e){da(e.where);let t=Cu(e);return{app:e.appId,query:$(e.where),fields:["$id",...t],totalCount:!1}}function nr(e,t,n=new Map){let r=QE(e.assignments,n);return rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function QE(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:tt(i,t.get(r))});return n}function gu(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 bi(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 fa(e){da(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Au(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?An(n,t):n.type==="STRING_FUNC"?Ea(n,t):n.type==="CASE_VALUE"&&Su(n.expr,t);return Cu(e).forEach(n=>t.add(n)),{app:e.appId,query:$(e.where),fields:["$id",...t],totalCount:!1}}function Au(e,t){er(e.left,t),er(e.right,t)}function er(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Au(e,t):e.type==="STRING_FUNC"&&Ea(e,t)}function Ea(e,t){for(let n of e.args)ZE(n,t)}function ZE(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){pa(e,t);return}An(e,t)}function An(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Ea(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){An(e.left,t),An(e.right,t);return}e.type==="CASE_WHEN"&&Su(e,t)}function pa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&eR(e.arg,t);return}e.type==="AGG_ARITH"&&(pa(e.left,t),pa(e.right,t))}function eR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?er(e,t):An(e,t)}function mu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){er(e,t);return}An(e,t)}}function Su(e,t){for(let n of e.branches)Ii(n.condition,t),mu(n.result,t);e.elseResult!==null&&mu(e.elseResult,t)}function Ii(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&er(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Ii(e.left,t),Ii(e.right,t);break;case"NOT":case"GROUP":Ii(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Ra(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Tu(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:ma(p,a,n.get(l),i)};return{id:o,record:s}});return rr(r,100).map(i=>({app:e.appId,records:i}))}function ma(e,t,n,r){if(e.type==="ARITH")return String(r?ha(e,r):re(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(ce(e,t));if(e.type==="STRING_FUNC")return ie(e,t);if(e.type==="CASE_VALUE")return gt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new z("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return tt(e,n)}function Pi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return G(e);if(e.type==="ARITH")return String(re(e,t));if(e.type==="CASE_VALUE")return Le(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 tR=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ya(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 z("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Tu(i),l={};for(let{field:p,value:u}of e.assignments){let d=n.get(p);if(u.type==="SOURCE_FIELD"){if(tR.has(d??""))throw new z(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${d} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,u.field))throw new z(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let c=o[u.field];if(typeof c!="string")throw new z(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((d==="NUMBER"||d==="CALC")&&c!==""&&!Number.isFinite(Number(c)))throw new z(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${c}`);l[p]={value:tt({type:"STRING",value:c},d)}}else{if(u.type==="STRING_FUNC")throw new z("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?l[p]={value:String(ha(u,i))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?l[p]={value:String(ce(u,s))}:u.type==="CASE_VALUE"?l[p]={value:gt(u.expr,s,d)}:l[p]={value:tt(u,d)}}}return{id:a,record:l}});return rr(r,100).map(i=>({app:e.appId,records:i}))}function Tu(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ha(e,t){let n=yu(e.left,t),r=yu(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new z("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new z("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function yu(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return ha(e,t);if(e.type==="STRING_FUNC")throw new z("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 z(`\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 Iu(e){return da(e.where),{app:e.appId,query:$(e.where),fields:["$id"],totalCount:!1}}function wu(e,t){return rr(t,100).map(n=>({app:e,ids:n}))}function bu(e){return zE.has(e??"")}function nR(e){return JE.has(e??"")}function rR(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 iR(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Pu(e,t){return bu(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):nR(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?rR(e):t==="DATE"?iR(e):e}function Nu(e,t){return bu(t)?e.map(n=>({code:n})):e}function hu(e,t,n){return e.type==="ARRAY"?Nu(e.elements.map(r=>r.value),n):e.type==="STRING"?Pu(e.value,n):e.type==="STRING_FUNC"?ie(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(re(e,t)):String(ce(e,t))}function Cu(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(gn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function gt(e,t,n){for(let r of e.branches)if(J(r.condition,t))return hu(r.result,t,n);return e.elseResult!==null?hu(e.elseResult,t,n):""}function tt(e,t){let n=ga(e,t);if(!n.ok)throw new z(n.message);return n.value}function ga(e,t){try{return{ok:!0,value:oR(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function oR(e,t){switch(e.type){case"VARIABLE":throw new z(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new z(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Pu(e.value,t);case"NUMBER":return G(e);case"ARRAY":return Nu(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new z(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new z("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new z("\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 z("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 z("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new z("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function rr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var z=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Aa=new Set(["CHECK_BOX","MULTI_SELECT"]),aR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ir(e){throw new Error(`ArgumentError: ${e}`)}function Ou(e,t,n){let r=sR(n.fieldType,e.field),i=lR(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let h=y.value;h!==""&&(y.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let y of s)l.has(y)&&ir(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let p=i.filter(y=>!l.has(y)),u=a.filter(y=>!o.has(y)),d=[...p,...u],c=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let h=y.kind==="ADD"?f:E,g=!h.has(y.value);return h.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&g&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=Aa.has(r)?d:d.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:u.length,removedValues:c,changedValues:u.length+c}}function sR(e,t){return Aa.has(e)||aR.has(e)?e:ir(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function lR(e,t,n){if(!Array.isArray(e))return ir(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Aa.has(t)?typeof i!="string"?ir(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?ir(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function V(e){throw new Error(`ArgumentError: ${e}`)}function Ia(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?V("APPLY parent selector must be a single positive $id."):t.right.value}function nt(e,t){let n=e.applyBlocks;if(!n?.length)return V("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)Sa(s.field,null,r),uR(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&V(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(d=>d.field===s.field)&&V(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(d=>d.code===s.field&&!d.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?V(`APPLY target ${s.field} is not a SUBTABLE.`):V(`APPLY target ${s.field} does not exist as a top-level field.`);if(Tl(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&V(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let p=l,u=new Map(t.filter(d=>d.inSubtable&&d.subtableCode===s.field).map(d=>[d.code,d]));i.set(s.field,p),a.set(s.field,u);for(let d of s.operations)if(d.kind==="PATCH"){for(let c of d.assignments)Sa(c.field,s.field,r,u),Ta(c.value,s.field,r,u);d.selector.kind==="WHERE"&&Ta(d.selector.where,s.field,r,u)}else if(d.kind==="APPEND"){let c=new Set;for(let f of d.fields)c.has(f)&&V(`APPLY APPEND specifies child ${f} more than once.`),c.add(f),Sa(f,s.field,r,u)}else d.kind==="REMOVE"&&d.selector.kind==="WHERE"&&Ta(d.selector.where,s.field,r,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function uR(e,t){or(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&V(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&V(`APPLY parent FILE reference ${n} is not supported.`)})}function Sa(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&V(`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&&V(`APPLY child ${e} does not belong to subtable ${t}.`),V(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&V(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ta(e,t,n,r){or(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&V(`APPLY child reference ${i} does not belong to subtable ${t}.`),V(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Ni(e,t){let n=nt(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)or(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Ci(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=ku(i?.value);return n}function _u(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??nt(t,r),o=Pa(n.$id?.value,"APPLY snapshot $id"),a=Ia(t);return o!==a&&V(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),vu(t,n,i,o)}function Du(e,t,n,r=nt(e,n)){let i=new Set;return t.map(o=>{let a=Pa(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&V(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),vu(e,o,r,a)})}function vu(e,t,n,r){let i=Pa(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let P=n.targetMultiValueFields.get(u.field);P||V(`APPLY multi-value metadata for ${u.field} is missing.`),a.push(Ou(u,t[u.field]?.value,P));continue}let d=n.childrenByTable.get(u.field),c=RR(t,u.field),f=new Set;for(let P of c)P.id||V(`APPLY snapshot for ${u.field} contains a row without _rid.`),f.has(P.id)&&V(`APPLY snapshot for ${u.field} contains duplicate _rid ${P.id}.`),f.add(P.id);let E=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":d.get(P.field)?.fieldType,R=[],m=[],y=[],h=new Set,g=new Set,S=new Set,N=u.operations.some(P=>P.kind==="REMOVE");for(let[P,L]of u.operations.entries()){if(L.kind==="APPEND"){let A=wa(L,d,u.field);y.push({kind:"APPEND",addedRows:A.length}),m.push(...A);continue}if(L.kind==="REMOVE"){let A=dR(L,c,E,u.field);L.expectRows&&Lu(L.expectRows,A.length,r,u.field,P,L.kind),y.push({kind:"REMOVE",removedRows:A.length});for(let b of A){let C=c[b].id;g.has(b)&&V(`APPLY row ${C} is selected by both PATCH and REMOVE.`),S.has(b)&&V(`APPLY removes row ${C} more than once.`),S.add(b)}continue}if(L.kind!=="PATCH")continue;let U=pR(L,c,E,u.field);L.expectRows&&Lu(L.expectRows,U.length,r,u.field,P,L.kind),y.push({kind:"PATCH",matchedRows:U.length,changedRows:U.length});for(let A of U){let b=c[A];S.has(A)&&V(`APPLY row ${b.id} is selected by both PATCH and REMOVE.`),g.add(A);let C=Ci(b,A);for(let I of L.assignments){let k=`${b.id}\0${I.field}`;h.has(k)&&V(`APPLY patches cell ${b.id}.${I.field} more than once.`),h.add(k),R.push({rowIndex:A,field:I.field,value:Pi(I.value,C,E)})}}}let w=new Map;for(let P of R){let L=w.get(P.rowIndex)??{};L[P.field]={value:P.value},w.set(P.rowIndex,L)}let O=[...c.flatMap((P,L)=>S.has(L)?[]:[{id:P.id,value:{...P.value,...w.get(L)??{}}}]),...m],v={table:u.field,operations:y,changedSubtableRows:w.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:c.map(P=>P.id),postImageRows:O};N?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:c.flatMap((P,L)=>S.has(L)?[P.id]:[]),payloadRows:O.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...c.map((P,L)=>{let U=w.get(L);return U?{id:P.id,value:U}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let s=mR(t),l={};for(let u of e.assignments){let d=n.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:ma(u.value,s,d,t)}}let p={...t};Object.assign(p,l);for(let u of o)p[u.table]={value:u.postImageRows};for(let u of a)p[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((u,d)=>u+d.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function Lu(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}`;V(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Oi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return V(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,p)=>{let u=a[p];return u?.value?l.id===void 0?{value:u.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(d=>[d,u.value[d]]))}:V(`APPLY normalized post-image for ${o.table} row ${p+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:V(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function wa(e,t,n){return e.values.map(r=>({value:cR(e,r,t,n)}))}function cR(e,t,n,r){if(t.length!==e.fields.length)return V(`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?ba(a):s.type==="CASE_VALUE"?gt(s.expr,{},a.fieldType):tt(s,a.fieldType)}}return o}function ba(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 pR(e,t,n,r){return Uu(e.selector,t,n,r)}function dR(e,t,n,r){return Uu(e.selector,t,n,r)}function Uu(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,p)=>p);let i=e.where,o=t.flatMap((l,p)=>J(i,Ci(l,p),n)?[p]:[]),a=fR(i);a!==null&&o.length===0&&V(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=ER(i);return s!==null&&o.length===0&&V(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function fR(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 ER(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 RR(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:{}}}):V(`APPLY snapshot field ${t} is not a subtable value.`)}function Pa(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&V(`${t} must be a positive integer.`),n}function mR(e){let t={};for(let[n,r]of Object.entries(e))t[n]=ku(r?.value);return t}function ku(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 or(e,t){if(Array.isArray(e)){e.forEach(r=>or(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))or(r,t)}function X(e){throw new Error(`ArgumentError: ${e}`)}function _i(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?X("APPLY snapshot $revision must be a positive integer."):t}function ar(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return X("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return X("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)&&X(`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)&&X(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&X(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),yR(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Mu(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 X("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 yR(e){let t=Na(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(u=>u.id===void 0?[]:[u.id]);for(let u of e.payloadRows)u.id===void 0&&u.value===void 0&&X(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Na(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(c=>c.kind==="REMOVE")&&X(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let u=e.payloadRows.slice(0,t.length).map(c=>c.id??"");Li(t,u,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(c=>c.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let d=e.postImageRows.slice(0,t.length).map(c=>c.id??"");Li(t,d,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(c=>c.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(u=>u.kind==="REMOVE")||X(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Na(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&X(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&X(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(u=>u.id===void 0?[]:[u.id]),o=new Set(r),a=new Set(i);for(let u of r)a.has(u)&&X(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${u}.`);let s=t.filter(u=>!o.has(u));Li(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(u=>u.id??"");Li(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(u=>u.id!==void 0)||e.postImageRows.slice(i.length).some(u=>u.id!==void 0))&&X(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(u=>u.value===void 0)&&X(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((u,d)=>!Ca(u.value,e.postImageRows[d]?.value))&&X(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...r]);(p.size!==t.length||t.some(u=>!p.has(u)))&&X(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Na(e,t){let n=[...e],r=new Set;for(let i of n)i||X(`APPLY ${t} contains an empty row id.`),r.has(i)&&X(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Li(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&X(n)}function Ca(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)=>Ca(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)&&Ca(n[a],r[a]))}function Fu(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 xu(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Fu(t.digits,"digits",1,30),r=Fu(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 Ku(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 hR=new Set(["CHECK_BOX","MULTI_SELECT"]),gR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ie(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=AR(e);if(i!==""&&!SR(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=sr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:TR(t.fieldType),message:o}}if(t.required&&Di(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Di(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Ne(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&&Zr(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&&Zr(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}=Ku(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(!Di(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ut(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!Di(r)&&gR.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 AR(e){return e==null?"":vi(e)&&e.type==="NUMBER"?G(e):vi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function SR(e,t){if(t==="DATE")return Ut(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ut(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)?Ut(n.slice(0,10),"DATE")&&Ut(n.slice(11),"TIME"):Ut(n,"DATETIME")}function sr(e,t){if(vi(e)){let r=ga(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(hR.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 vi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function kt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(vi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Di(e){return e===""||Array.isArray(e)&&e.length===0}function TR(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ut(e,t){if(t==="TIME"){let p=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return p!==null&&Number(p[1])<=23&&Number(p[2])<=59&&Number(p[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Ut(l,"TIME")}var Sn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Oa(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(u=>typeof u=="object"&&u!==null&&"code"in u),p=a;try{p=sr(a,s)}catch{}i.record[o]={value:l?a:p}}}}function La(e,t,n,r,i,o,a,s=[],l=!0,p=!0,u={}){let d=new Map(i.map(m=>[m.code,m])),c=[],f=new Set,E=[];u.validateUpdateBuiltIns===!1&&Oa(e,r,i);let R;for(let m of e){m.record??={};let y=p?[...m.preErrors]:[],h=[],g=[],S=m.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let O of r){if(!m.payload.has(O))continue;let v=m.payload.get(O),P=d.get(O).fieldType,L=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(P)&&Array.isArray(v)&&v.every(A=>typeof A=="object"&&A!==null&&"code"in A);if(!S)continue;let U=Ie(v,d.get(O),a);U.ok?m.record[O]={value:L?v:U.value}:h.push({field:O,code:U.code,message:U.message})}if(l&&m.mode==="create")for(let O of i){if(O.inSubtable||m.payload.has(O.code))continue;if(kt(O.defaultValue)){let P=Ie("",O,a);P.ok?O.required&&h.push({field:O.code,code:"ERR_REQUIRED",message:`${O.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:O.code,code:P.code,message:P.message})}else{let P=Ie(O.defaultValue,O,a);P.ok||h.push({field:O.code,code:P.code,message:`\u65E2\u5B9A\u5024: ${P.message}`})}}if(s.length>0){let O=m.evaluationRow??Object.fromEntries([...m.payload].map(([L,U])=>[L,Ge(U)])),v=m.evaluationFieldTypes,P=L=>{let U=L.tableAlias?`${L.tableAlias}.${L.field}`:L.field;return v?.get(U)??v?.get(L.field)};try{for(let L of Ti(s,O,P))g.push({field:"",code:"ERR_CHECK",message:L.message})}catch(L){R??=L}}let N=O=>O.map(v=>{let P={};for(let L of n)P[L]=Ge(m.payload.get(L));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(m.rowNumber),P.$err_field=v.field,P.$err_code=v.code,P.$err_message=v.message,P.$err_value="",P.$err_subtable="",P.$err_subrow="",P.$err_subrow_id="",P}),w={rowNumber:m.rowNumber,preErrors:N(y),builtInErrors:N(h),checkErrors:N(g)};E.push(w);let _=[...w.preErrors,...w.builtInErrors,...w.checkErrors];_.length>0&&f.add(m.rowNumber),c.push(..._)}if(R!==void 0)throw R;return{errors:c,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Ge(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)}function _a(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 IR(e){return e.required===!0||e.minValue!==void 0||e.maxValue!==void 0||e.minLength!==void 0||e.maxLength!==void 0||e.optionOrder!==void 0}function wR(e){return e.fieldType==="NUMBER"||IR(e)}function Ui(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Da(e,t){let{topByCode:n,childrenByTable:r}=_a(t),i=wR;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,p)=>{let u=p?`${p}\0${l.code}`:l.code;if(a.has(u))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(u),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...p?{subtableCode:p}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let d=r.get(l.subtableCode);if(!d)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 c of l.children){let f=d.find(E=>E.code===c);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===c));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \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 ${c} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let p=l.field;if(p==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let u=n.get(p);if(u?.fieldType==="SUBTABLE"){let d=(r.get(p)??[]).filter(i);if(d.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${p} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);d.forEach(c=>s(c,p));continue}if(u){s(u);continue}throw[...r.values()].some(d=>d.some(c=>c.code===p))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${p}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function lr(e,t){return kt(e)?"":Ge(sr(e,t))}var bR=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),ur=Sn;function Ve(e,t=["$id"]){let n=_a(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!bR.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 Mt(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 Ft(e,t,n,r,i=1,o="UPDATE"){let a=PR(e),s=[],l=new Set,p=[...t.payloadFields,...ur],u=Ge(e.$id?.value),d=(c,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?u:Ge(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=c.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=lr(f,c.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let c of t.topLevel){let f=e[c.code]?.value,E=Ie(f,c,n);E.ok?a[c.code]={value:Bu(f,c.fieldType,E.value)}:d(c,f,E)}for(let[c,f]of t.subtables){let E=e[c]?.value;if(!Array.isArray(E))continue;let R=a[c]?.value;for(let m=0;m<E.length;m++){let y=E[m],h=R[m];for(let g of f){let S=y.value?.[g.code]?.value,N=Ie(S,g,n);N.ok?(h.value??={},h.value[g.code]={value:Bu(S,g.fieldType,N.value)}):d(g,S,N,Ui(c,m,y))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Bu(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 PR(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 ki(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;$u(o,"dmlMaxRows"),$u(a,"dmlMaxSubtableRows");for(let g of n)_i(g);let l=Du(t,n,r,i),p=Ve(r,t.assignments.map(g=>g.field)),u=l.some(g=>Mt(g.postImage,p));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=u?await e.loadNumberPrecision():void 0,c=l.map((g,S)=>Ft(g.postImage,p,d,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=c.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((g,S)=>Oi(g,c[S].normalizedRecord)),y=m.flatMap(g=>ar(g).records),h=c.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return Gu({plans:m,records:y,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function $u(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Gu(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))Gu(n,t);return Object.freeze(e)}var va=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Mi(e,t){if(new Set(e.fields).size!==e.fields.length)return We("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Vu(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return We(`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 We(`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 We(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let u of l.fields){if(p.has(u))return We(`APPLY APPEND specifies child ${u} more than once.`);p.add(u),Vu(u,o.field,n,s)}for(let u of l.values)if(u.length!==l.fields.length)return We(`APPLY APPEND for ${o.field} has ${u.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function NR(e,t,n=Mi(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=wi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),p=s.operations.flatMap(u=>wa(u,l,s.field));return{table:s.field,rows:p,addedRows:p.length}});return o.map((s,l)=>{let p={};for(let d of t)d.inSubtable||d.fieldType==="SUBTABLE"||d.fieldType==="FILE"||d.writable===!1||va.has(d.fieldType)||(p[d.code]=s[d.code]??{value:ba(d)});let u={...s};for(let d of a){let c=d.rows.map(f=>({value:f.value}));p[d.table]={value:c},u[d.table]={value:c}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:p,record:u}})}async function cr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Wu(r,"dmlMaxRows"),Wu(i,"dmlMaxSubtableRows");let a=e.metadata??Mi(t,n),s=NR(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!va.has(S.fieldType)),p=Ve(l,t.fields),u=s.some(S=>Mt(S.postImage,p));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=u?await e.loadNumberPrecision():void 0,c=s.map(S=>Ft(S.postImage,p,d,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=c.flatMap(N=>N.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,N)=>S+N.tables.reduce((w,_)=>w+_.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,N)=>{let w=c[N].normalizedRecord,_={};for(let O of t.fields)_[O]=w[O];for(let O of S.tables){let v=w[O.table]?.value;_[O.table]={value:O.rows.map((P,L)=>({value:Object.fromEntries(Object.keys(P.value).map(U=>[U,v[L]?.value?.[U]??P.value[U]]))}))}}return{...S,postImage:w,record:_}}),y=m.map(S=>S.record),h=[];for(let S=0;S<y.length;S+=100)h.push({app:t.appId,records:y.slice(S,S+100)});let g=c.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Hu({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Vu(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return We(`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?We(`APPLY child ${e} does not belong to subtable ${t}.`):We(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||va.has(i.fieldType))return We(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Wu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function We(e){throw new Error(`ArgumentError: ${e}`)}function Hu(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))Hu(n,t);return Object.freeze(e)}async function ju(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Yu(i,"dmlMaxRows"),Yu(o,"dmlMaxSubtableRows"),DR(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),p=CR(t,s.map(y=>y.sourceRowIndex)),u=await cr({statement:p,fieldInfos:r,metadata:Mi(p,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),d=[],c=new Set;for(let y of l){let h=y.targetId;c.has(h)&&Ua(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),c.add(h),y.snapshot||Ua(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(y.snapshot.$id?.value);g!==h&&Ua(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=OR(t,y.sourceRowIndex,h),N=S.applyBlocks?.length?nt(S,r):LR(r);d.push(await ki({statement:S,snapshots:[y.snapshot],fieldInfos:r,metadata:N,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=_R(d,i,o),E=u.guards.parentRows+f.guards.parentRows,R=u.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...u.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return ka({create:u,update:f,createBatches:u.batches,updateBatches:vR(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:u.guards,update:f.guards}})}function CR(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function OR(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 LR(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function _R(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 ka({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 DR(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 vR(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 Yu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ua(e){throw new Error(`ArgumentError: ${e}`)}function ka(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))ka(n,t);return Object.freeze(e)}function dr(e){return Tn("UPDATE",[Ju(e)])}function Ma(e){return Tn("INSERT",[zu(e)])}function Fa(e){return Tn("UPSERT",[zu(e.create),Ju(e.update)])}function _e(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 xi(e,t,n){return e.type==="UPDATE"?Tn("UPDATE",[Fi("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Tn("INSERT",[Fi("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Tn("UPSERT",[Fi("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Fi("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Tn(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function zu(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 Ju(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:qu(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:qu(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 qu(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:pr(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:pr(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:pr(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:pr(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:pr(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function pr(e,t){return e==null||t===null?null:e+t}function Fi(e,t,n,r,i,o){let a=t.map(u=>{let d=u.operations.map(f=>UR(f,n)),c=d.every(f=>f.count!==null)?d.reduce((f,E)=>f+E.count,0):null;return{targetKind:u.targetKind,field:u.field,operations:d,changedCount:c}}),s=a.filter(u=>u.targetKind==="SUBTABLE"),l=s.every(u=>u.changedCount!==null)?s.reduce((u,d)=>u+d.changedCount,0):null,p=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:p},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function UR(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 Xu(e,t,n){cn("phase10c");let r=Mu(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:_e(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 Qu(e,t,n){cn("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:_e(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 Zu(e,t,n){cn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let u=await t.postRecords({app:p.app,records:[...p.records]});r.push(u.ids)}catch(u){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:_e(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},u)}i+=1,a+=p.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let p=e.updateBatches[l];try{await t.putRecords({app:p.app,records:[...p.records]})}catch(u){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:_e(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},u)}o+=1,s+=p.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function kR(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 ec(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 kR(i)?!0:Object.values(i).some(n)};return n(e)}function tc(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 He(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ki(e.left);case"NULL_CHECK":return Ki(e.field);case"LOGICAL":return He(e.left)||He(e.right);case"NOT":case"GROUP":return He(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ki(e){if(Array.isArray(e))return e.some(Ki);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(Ki)}async function Me(e,t,n,r,i){let o=await ge(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 Bi(e,t,n,r){let{records:i,metrics:o}=await Me(e,t,n,["$id"],r);return{ids:rl(i),metrics:o}}var De=["=","!=",">","<",">=","<="],MR=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),FR=new Set(De),xR=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"])]]),KR=new Map([["TODAY",new Set(De)],["NOW",new Set(De)],["LOGINUSER",new Set(["in","not in"])]]),BR=["=","!=","in","not in"],$R=new Map([["RECORD_NUMBER",new Set([...De,"in","not in"])],["__ID__",new Set([...De,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(De)],["UPDATED_TIME",new Set(De)],["DATE",new Set(De)],["TIME",new Set(De)],["DATETIME",new Set(De)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...De,"in","not in"])],["CALC",new Set([...De,"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(BR)]]),GR=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"])]]),ic=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"]),oc=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function VR(e){return $R.get(e)??new Set}function we(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Er(e,t)}function Er(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return WR(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ka():jR(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ka();case"GROUP":return Er(e.expr,t);case"NOT":{let n=Er(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:sc(n.reasons)?mr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Er(e.left,t),r=Er(e.right,t);return zR(e.op,n,r)}}}function WR(e,t,n,r){if(n.type==="KINTONE_FUNC"&&j(n.name))return HR(e,t,n,r);if(n.type==="KINTONE_FUNC"&&nc(n))return rc(e,t,n,r);if(n.type==="IN_LIST"){let u=n.values.filter(d=>d.type==="KINTONE_FUNC");if(u.length>0)return n.values.length===1&&u.length===1?rc(e,t,u[0],r):$i("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",u[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Rr(e))}if(t.type!=="FIELD")return Ka();let i=r(t);if(!i)return In("WHERE_FIELD_UNRESOLVED",t.field,void 0,Rr(e));let o=Rr(e);if(!ac(i.fieldType,o))return In("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!qR(i.fieldType,e))return In("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=VR(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||nc(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!p?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function nc(e){return e.type==="KINTONE_FUNC"&&Nt.has(e.name)}function rc(e,t,n,r){let i=Rr(e),o=n.name;if(!Nt.has(o)||t.type!=="FIELD")return $i("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=xR.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?$i("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):KR.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:$i("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function HR(e,t,n,r){let i=Rr(e),o=n.name;if(t.type!=="FIELD")return fr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?YR(n)?FR.has(i)?!MR.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?fr("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}]}:fr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):fr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):fr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function YR(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 jR(e,t,n){let r=n(e);return r?ac(r.fieldType,t)?!ic.has(r.fieldType)&&!oc.has(r.fieldType)?In("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:In("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):In("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function ac(e,t){let n=GR.get(e);return n===void 0||n.has(t)}function qR(e,t){return ic.has(e)?!0:oc.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Rr(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 zR(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?mr({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")?mr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):mr({capability:"LOCAL_ONLY",reasons:r})}function Ka(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function In(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function $i(e,t,n,r,i){return mr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function fr(e,t,n,r,i){return lc({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function sc(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&j(t.functionName))}function JR(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Nt.has(t.functionName))}function lc(e){if(e.capability==="EXACT_PUSHDOWN"||!sc(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&j(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function XR(e){if(e.capability==="EXACT_PUSHDOWN"||!JR(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&&Nt.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 mr(e){return XR(lc(e))}var QR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),ZR=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),em=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function bn(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)?cc(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"}):cc(n[0],e.field)}function $a(e,t){if(e.left.type!=="FIELD")return yr();let n=bn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return yr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||we(e,a=>{let s=bn(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:q({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return yr();let o=om(e,n,r);return o==="unsafe"?yr():Object.freeze({relation:o,owner:n})}function pc(e,t){let n=le(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=bn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):we(e,o=>{let a=bn(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:q({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function dc(e,t){let n=new Set;xt(e,n);let i=(e===null?[]:Rc(wn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=tm(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)xt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(im(e,t)),fetchQueriesByAlias:new Map,...o})}function fc(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Kt(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,Pn(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(p=>p.alias===a.targetAlias&&p.appId===a.appId&&p.sourceKind==="APP"))return e;let l=Pn({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Kt(ji(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 Nn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Kt(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&&!Kt(ji(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))||Ec(rm(e))!==e.allKlikes.length))}function tm(e,t){if(e===null)return uc(null);let n=Object.freeze([...le(e)]);if(n.length===0)return uc(e);let r=nm(e,t,n);if(r!==null)return r;let i=Wi(e),o=[],a=new Set;for(let d of i){let c=pc(d,t);if(c.relation!=="function-leaf-exact")continue;let f={targetAlias:c.owner.alias,appId:c.owner.appId,predicate:d,relation:"exact"},E;try{E=Pn(f,t)}catch{continue}let R=ji(E);Kt(R,c.functionOccurrences)&&(a.add(d),o.push(Object.freeze({targetAlias:c.owner.alias,appId:c.owner.appId,predicate:d,functionLeaves:Object.freeze([d]),functionOccurrences:c.functionOccurrences,relation:c.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Hi(e,a),l=Object.freeze(s===null?[]:[...le(s)]),p=Object.freeze(o.flatMap(d=>[...d.functionOccurrences])),u=Kt(n,p)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:u,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:p,residualWhere:s,residualServerFunctionOccurrences:l}}function nm(e,t,n){let r=Gi(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Pn(i,t)}catch{return null}if(!Kt(ji(o),n))return null;let a=new Set;if(xt(e,a),Ec(o)!==a.size)return null;let s=Object.freeze(Vi(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 Gi(e,t){switch(e.type){case"BINARY":{if(le(e).length>0){let i=pc(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=$a(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Gi(e.left,t),r=Gi(e.right,t);return n!==null&&r!==null&&qi(n,r)?n:null}case"GROUP":case"NOT":return Gi(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Vi(e){switch(e.type){case"BINARY":return le(e).length>0?[e]:[];case"LOGICAL":return[...Vi(e.left),...Vi(e.right)];case"GROUP":case"NOT":return Vi(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function uc(e){let t=e===null?[]:le(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Wi(e){switch(e.type){case"BINARY":return le(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Wi(e.left),...Wi(e.right)]:[];case"GROUP":return Wi(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Hi(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Hi(e.left,t),r=Hi(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=Hi(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ji(e){let t=[];for(let n of Bn){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 Kt(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 Ec(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function rm(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function im(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=bn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Yi(i.right)){n.add("CROSS_TABLE_BINARY");return}$a(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(gc(i)){n.add("KLIKE_OR");return}let o=wn(i.left,t),a=wn(i.right,t);if(o.length!==1||a.length!==1||!qi(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 Pn(e,t){return hr(e.predicate,e,t),$(e.predicate)}function hr(e,t,n){switch(e.type){case"LOGICAL":hr(e.left,t,n),hr(e.right,t,n);return;case"GROUP":hr(e.expr,t,n);return;case"NOT":hr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Yi(e.right))throw Ba(t,"predicate contains a non-target or RHS field reference");let r=bn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Ba(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ba(t,"predicate shape is outside the Phase A serializer contract")}}function Ba(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function wn(e,t){switch(e.type){case"BINARY":{let n=$a(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=wn(e.left,t),r=wn(e.right,t);if(e.op==="AND")return Rc([...n,...r]);if(gc(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return qi(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:mc(i.relation,o.relation)}]:[]}case"GROUP":return wn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Rc(e){let t=[];for(let n of e){let r=t.findIndex(o=>qi(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:mc(i.relation,n.relation)}}return t}function om(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return ZR.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return am(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&yc(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||em.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?hc(e.right.value)?"superset":"unsafe":n==="TIME"?sm(e.right.value)?"superset":"unsafe":lm(e.right.value)?"superset":"unsafe";if(QR.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function cc(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function yr(){return Object.freeze({relation:"unsafe"})}function qi(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function mc(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function am(e){return e.type==="NUMBER"&&yc(e)&&e.value>0}function yc(e){return/^-?\d+$/.test(G(e))&&Number.isSafeInteger(e.value)}function hc(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function sm(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function lm(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!hc(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function xt(e,t){if(e!==null){if(dt(e)){t.add(e);return}switch(e.type){case"LOGICAL":xt(e.left,t),xt(e.right,t);return;case"NOT":case"GROUP":xt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function gc(e){let t=new Set;return xt(e,t),t.size>0}function Yi(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Yi);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Yi)}function Ga(e,t){let n=zn(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 um(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function cm(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function gr(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=um(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!cm(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var pm=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 dm(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Ar(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,p=e.orderSemantics.get(l);if(!p){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(dm(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!p.source||p.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}pm.has(p.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var zi=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"}},Ji=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}},Xi=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 Ac(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 Xi(a).message}}return{records:n,cleanupWarning:o}}function Va(e){let t=[];e.where&&t.push($(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 Sc=["$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 Tc(e){return e.startsWith("_")||e.startsWith("$")}var fm=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ha(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ha);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"?fm.test(t.field):Object.values(t).some(Ha)}function Em(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 Xn(e)||Ha(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Rm=["_pid","_rid","_idx"];function Wa(e){return[...new Set(e)]}function mm(e){switch(e.kind){case"APP":return Wa([...e.fieldCodes,...Sc]);case"SUBTABLE":return Wa([...e.childFieldCodes,...Rm,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Wa(e.columns)}}function Ic(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:mm(t(r,i))}))}function ym(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 hm(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function gm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Am(e,t,n){let r=ym(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:hm(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>gm(l)===e?[{column:l,columnIndex:p}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],p=Em(l.column);return p==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:p==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&Ae(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function wc(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Am(r.name,t,n):{kind:"EXPRESSION"})}}function it(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 Sm(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(bc(e,a,r.leftColumns),bc(t,s,r.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let R=E[a]??"",m=d.get(R);m?m.push(E):d.set(R,[E])}let c={};for(let E of r.leftColumns??Object.keys(e[0]??{}))c[E]="";let f=[];for(let E of t){let R=E[s]??"",m=d.get(R)??[];if(m.length>0)for(let y of m)f.push({...y,...E});else f.push({...c,...E})}return f}let l=new Map;for(let d of t){let c=d[s]??"",f=l.get(c);f?f.push(d):l.set(c,[d])}let p=[],u={};for(let d of r.rightColumns??Object.keys(t[0]??{}))u[d]="";for(let d of e){let c=d[a]??"",f=l.get(c)??[];if(f.length>0)for(let E of f)p.push({...d,...E});else o==="LEFT"&&p.push({...d,...u})}return p}function bc(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 Tm(e,t,n,r,i){return t===null?e:e.filter(o=>J(t,o,n,r,i))}function Dc(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Sr(t.expr)||t.type==="SCALAR_VALUE_COL"&&At(t.expr))}function Im(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let p=t.map((d,c)=>bm(d,l,i?.items[c],n,o)).join("\0"),u=a.get(p);u?u.push(l):a.set(p,[l])}a.size===0&&t.length===0&&Dc(n)&&a.set("",[]);let s=[];for(let l of a.values()){let p={...l[0]};for(let u of t)u.type==="ARITH_KEY"?p[Xa(u.expr)]=String(re(u.expr,l[0])):u.type==="FUNC_KEY"&&(p[St(u.expr)]=ie(u.expr,l[0]));vc(p,l,n,r),s.push(p)}return s}function wm(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let p={children:new Map},u=[];for(let c of e){let f=p;for(let E of l.items){let R=Pc(E,c),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],u.push(f.rows)),f.rows.push(c)}e.length===0&&l.items.length===0&&(s(),p.rows=[],u.push(p.rows));let d=new Set(l.items.map(c=>c.canonicalId));for(let c of u){let f={...c[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Pc(R,c[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}vc(f,c,n,r),Hl(f,d),o.push(f)}}return o}function Pc(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function vc(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=Ae(i.func,i.distinct,i.arg),a=String(ja(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??Cn(i.expr);e[o]=String(Qi(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Sr(i.expr)){let o=i.alias??St(i.expr),a=Qa(i.expr,t,r);e[o]=ie(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&At(i.expr)){let o=i.alias??Ye(i.expr),a=eo(i.expr,t,r);e[o]=String(ce(a,e))}}function bm(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=Zi(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"?ie(e.expr,t):String(re(e.expr,t))}function ja(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=re(n,f);if(isNaN(R))continue;E=String(R)}else{let R=ht(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,p=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Uc(n,o):void 0,d=typeof u=="string"?x(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?x("string"):x("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let h=Dt(m,E,d);(h<0||h===0&&yt(m,E)<0)&&(E=m)}return E}if(e==="MIN"||e==="MAX"){let f=p;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let m=Dt(R,E,d);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let c=s?p:p.map(Number);switch(e){case"SUM":return c.reduce((f,E)=>f+E,0);case"AVG":return c.length===0?0:c.reduce((f,E)=>f+E,0)/c.length;case"MEDIAN":{if(c.length===0)return"";let f=[...c].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(c.length===0||f&&c.length<2)return"";let E=c[0],R=0,m=0,y=0;for(let g of c){let S=g-E;R++;let N=S-m;m+=N/R,y+=N*(S-m)}let h=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function Pm(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 Qi(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ja(e.func,e.distinct,e.arg,e.separator,t,n));let r=Qi(e.left,t,n),i=Qi(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 Cn(e){return Kn(e)}function Uc(e,t){if(e.type==="FIELD_REF")return t?.(Pm(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=>Uc(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 Nm(e,t,n,r){return t===null?e:e.filter(i=>J(t,i,n,void 0,r))}function Cm(e,t,n,r,i){if(e.length===0)return e;let o=Om(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 Om(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(Um(t,a,o))}function qa(e,t,n,r,i,o){return t.length===0?e:kc(e,t,n,r,i,o).rows.map(a=>a.row)}function kc(e,t,n,r,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:x("number")};if(p.type==="FUNC_KEY")return{semantics:x(Mc.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:x("number")};let u=i?.get(p.name);if(u)return{semantics:u};let d=n?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:x(r?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:u},d)=>({s:Dm(u,p,o)}))})),l=(p,u)=>Lm(p,u,t,a);return s.sort(l),{rows:s,compare:l}}function Lm(e,t,n,r){for(let i=0;i<n.length;i++){let o=_m(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function _m(e,t,n){return Dt(e.s,t.s,n.semantics)}var Mc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Dm(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(re(e.expr,t));case"FUNC_KEY":return ie(e.expr,t);case"GROUPING_KEY":return yn(e.ref,t)}}function za(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=>et(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=Ae(a.func,a.distinct,a.arg);i.set(s,p=>p[s]??p[l]??"0");break}case"ARITH_AGG_COL":{let l=Cn(a.expr);i.set(s,p=>p[s]??p[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(re(a.expr,l)));break;case"STRFUNC_COL":{let l=St(a.expr);i.set(s,p=>Sr(a.expr)?p[s]??p[l]??ie(a.expr,p,n,r):ie(a.expr,p,n,r));break}case"CASE_COL":i.set(s,l=>Le(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=Ye(a.expr);i.set(s,p=>At(a.expr)?p[s]??p[l]??"":String(ce(a.expr,p,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>yn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Ja(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let p=JSON.stringify(a.partitionBy.map(d=>vm(l,d))),u=s.get(p);u?u.push(l):s.set(p,[l])}for(let l of s.values()){let p=kc(l,a.orderBy,n,r,i),u=p.rows,d=1,c=1;for(let f=0;f<u.length;f++){f>0&&p.compare(u[f-1],u[f])!==0&&(d=f+1,c++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?d:c;u[f].row[a.alias]=String(E)}}}return e}function vm(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return et(e,n)}function to(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Zi(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return et(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=Ae(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Cn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(re(e.expr,t));case"CASE_COL":return Le(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return yn(e.ref,t);case"STRFUNC_COL":{let i=St(e.expr);return Sr(e.expr)?t[e.alias??i]??t[i]??ie(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):ie(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=Ye(e.expr);return At(e.expr)?t[e.alias??i]??t[i]??"":String(ce(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function Um(e,t,n={}){return e.map((r,i)=>{let o=Zi(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function no(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let c=e.map(E=>{let R=Lc(Cc(E),a),m=Zi(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[h,g]of m.entries)g!==null&&(y[h]=g);return y}),f=c.length>0?Object.keys(c[0]):[...i??[]];return{rows:c,columns:f}}let s=Fm(t),l=t.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD"),p=l?null:km(t,s),u=p??[];return l&&e.length===0?{rows:[],columns:Mm(t,s)}:{rows:e.map((c,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Lc(Cc(c),a)),parentWildcardKeys:Object.keys(c).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let h=Zi(y,c,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S),f===0&&u.push(g);break}case"FIELD":{let g=p?.[m]??y.alias??s.get(m)??y.field;E[g]=h,p===null&&f===0&&u.push(g);break}case"LITERAL_COL":{let g=p?.[m]??y.alias??`'${y.value}'`;E[g]=h,p===null&&f===0&&u.push(g);break}case"AGGREGATE":{let g=Ae(y.func,y.distinct,y.arg),S=p?.[m]??y.alias??g;E[S]=h,p===null&&f===0&&u.push(S);break}case"ARITH_AGG_COL":{let g=p?.[m]??y.alias??Cn(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"ARITH_COL":{let g=p?.[m]??y.alias??Xa(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"CASE_COL":{let g=p?.[m]??y.alias??"case";E[g]=h,p===null&&f===0&&u.push(g);break}case"GROUPING_COL":{let g=p?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[g]=h,p===null&&f===0&&u.push(g);break}case"STRFUNC_COL":{let g=p?.[m]??y.alias??St(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"SCALAR_VALUE_COL":{let g=p?.[m]??y.alias??Ye(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=p?.[m]??y.alias??"(subquery)";E[g]=h,p===null&&f===0&&u.push(g);break}case"WINDOW_COL":{let g=p?.[m]??y.alias;E[g]=h,p===null&&f===0&&u.push(g);break}}}return E}),columns:u}}function km(e,t){return e.map((n,r)=>Fc(n,r,t))}function Mm(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=Fc(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Fc(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??Ae(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Cn(e.expr);case"ARITH_COL":return e.alias??Xa(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??St(e.expr);case"SCALAR_VALUE_COL":return e.alias??Ye(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 Fm(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Nc(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=Nc(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 Nc(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Cc(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Xa(e){let t=n=>n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?G(n):n.type==="STRING_FUNC"?St(n):`(${t(n.left)}${n.op}${t(n.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function St(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?Cn(n):Ye(n));return`${e.func}(${t.join(",")})`}function Ye(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return G(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return St(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Ye(e.left)}${e.op}${Ye(e.right)}`;case"CONCAT_OP":return`${Ye(e.left)}||${Ye(e.right)}`}}function xm(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:At(e)}function At(e){return e.type==="STRING_FUNC"?Sr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?At(e.left)||At(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Oc(t.result))||e.elseResult!==null&&Oc(e.elseResult):!1}function Oc(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:At(e)}function Sr(e){return e.args.some(t=>xm(t))}function Km(e,t,n){if(e.type==="AGG_REF"){let r=ja(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=Qi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Qa(e,t,n):eo(e,t,n)}function eo(e,t,n){return e.type==="STRING_FUNC"?Qa(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:eo(e.left,t,n),right:eo(e.right,t,n)}:e}function Qa(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Km(r,t,n))}}function Lc(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 _c(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Ya(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Bm(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,x("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,x("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,x("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,x("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,x(Mc.has(n.expr.func)?"number":"string")));return t}function Za(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:u,aggregateSortKindResolver:d,appliedKlikes:c,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y}=e,h=Bm(t.columns);for(let[v,P]of a??[])h.set(v,P);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(v=>it(v,S));let w=Ya(_c(E?.get(S),S),void 0,g);for(let v of t.joins){let P=v.table.alias,U=(n.get(P)??[]).map(b=>it(b,P)),A=Ya(_c(E?.get(P),P),void 0,U);g=Sm(g,U,v,{leftColumns:w,rightColumns:A}),w=Ya(w,A,g)}let _=e.residualWhere!==void 0?e.residualWhere:t.where;g=Tm(g,_,s,c,l);let O=Z(t);if(O.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=wm(g,m,t.columns,d,{maxGeneratedRows:5e4})}else(O.type==="PLAIN"||Dc(t.columns))&&(g=Im(g,O.type==="PLAIN"?O.allItems:[],t.columns,d,O.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=Nm(g,t.having,p,u),g=Ja(g,t.columns,i,o,h),t.distinct&&(g=Cm(g,t.columns,r,s,l)),g=qa(g,t.orderBy,i,o,h,za(t.columns,r,s,l)),g=to(g,t.limit,t.offset),no(g,t.columns,r,s,f,l,R)}function xc(e,t){let n=[];for(let r of e){let i=es(r.$id?.value),o=$m(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[p,u]of Object.entries(r)){if(p===t)continue;let d=es(u?.value);l[`_p.${p}`]={value:d}}for(let[p,u]of Object.entries(s.value??{}))l[p]={value:es(u?.value)};n.push(l)}}return n}function $m(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function es(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 Kc(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Bc(e,t){let n=Tr(e);for(let[r,i]of Object.entries(t))n[r]=Tr(i);return n}function $c(e){let t=[...e.preErrors.map(i=>ts(i)),...e.postImageErrors.map(i=>ts(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>ts(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]=Tr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function ts(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 Tr(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(Tr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Tr(a,t);return i}function Vc(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"&&ke(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 rs(e){return Vc(e,!0)}function ro(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 Fe(e,t,n,r,i=!0,o=!0,a=r){let s=rs(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:le(e.where)}),ro(e,e).forEach((l,p)=>Fe(l,`${t}.select-source[${p}]`,n,a,a?!1:i,a?!1:o,a))}function Ir(e,t,n,r,i=!0){e.left.type==="UNION"?Ir(e.left,`${t}.left`,n,r,i):Fe(e.left,`${t}.left`,n,r,!0,i),Fe(e.right,`${t}.right`,n,r,!0,i)}function Gc(e,t,n,r){if(!r&&Et(e)){Fe(Rt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Fe(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ir(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Fe(e.query,`${t}.main`,n,r,!1,!r,!0):Ir(e.query,`${t}.main`,n,!0,!1)}function Wc(e,t,n,r=!1){switch(e.type){case"SELECT":Fe(e,t,n,r);return;case"UNION":Ir(e,t,n,r);return;case"WITH":Gc(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Gc(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ir(e.query,`${t}.query`,n,!0,!1):Fe(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Wc(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=rs(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:le(e.where)}),ro(e,e).forEach((o,a)=>Fe(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=rs(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:le(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=Vc(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ro(e,e).forEach((o,a)=>Fe(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ro(e,e).forEach((i,o)=>Fe(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function io(e,t){let n=new Map;for(let r of t){if(!ke(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 is(e,t){return t.eligible===!0&&Ce(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Gm(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Nn(t)}function Vm(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Wm(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 rn(e)?(n.some(r=>r!==Xe)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Xe)||n.push(Xe)):n.includes(Ct)||n.push(Ct),[...new Set(n)]}function ns(e,t){let n=e.functionNames[0],r=rn(n)?Xe:Ct,i=Wm(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Hc(e,t){let n=[];Wc(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let u=Vm(i);return r.push(u),{hasRelativeDate:i.functionNames.some(j),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ns(i)}}if(i.kind==="SELECT"){let u=i.source,d=u.from.cteName===null&&!u.from.subtableCode&&u.joins.length===0,c=Ce(u),f=await t.select(u),E="";try{E=i.where===null?"":$(i.where)}catch{E=""}let R=d&&c==="SIMPLE"&&(u.orderBy.length===0||u.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&io(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let N=await t.prefilterDecomposition(u);N?.eligible===!0&&is(u,N)&&(m=N.plan,y=!0,R=!0)}let h;!R&&f.capability==="EXACT_PUSHDOWN"&&(h=li({select:u,selectMode:c,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(m=h.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let N=await t.joinServerFunctionPlan(u);N!==null&&Gm(u,N)&&(g=N,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:c,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(N=>N.functionNames.some(j)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ns(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":$(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&io(s,i.relativeFunctionOccurrences),p={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(p),!l)return{hasRelativeDate:n.some(u=>u.functionNames.some(j)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ns(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(j)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Yc(e){if(!e.allowed&&e.rejection){let t=rn(e.rejection.functionName)?Xe:Ct,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 os(e,t,n={}){let r=we(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=br(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Hm(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Ym(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=qm(e.where,t),l=zn(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=n.serialize??$,u=n.containsFunctions??io,d=[];for(let g of a.leaves){let S=lo(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let N;try{N=p(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!u(N,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);d.push(g)}let c=jm(l.condition),f=new Set(d),E=ao(e.where,f,c);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=p(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=d.map(g=>lo(g));if(!u(R,[...new Set(m)])||!zm(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):so(e.where,f);if(y!==null&&br(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let g of m)h.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:d,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Hm(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}br(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":br(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(lo(o)===null)return;if(we(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":br(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function lo(e){return e.right.type==="KINTONE_FUNC"&&ke(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&ke(e.right.values[0].name)?e.right.values[0].name:null}function br(e){let t=[],n=r=>{if(r.type==="BINARY"&&lo(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function Ym(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 jm(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 ao(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=ao(e.left,t,n),i=ao(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=ao(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var wr={type:"BOOLEAN",value:!0};function so(e,t){if(e.type==="BINARY"&&t.has(e))return wr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=so(e.left,t)??wr,r=so(e.right,t)??wr;return oo(n)?oo(r)?null:r:oo(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=so(e.expr,t)??wr;return oo(n)?wr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function oo(e){return e.type==="BOOLEAN"&&e.value}function qm(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 zm(e,t){let n=new Map;for(let r of t){if(!Bn.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 F=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function jc(e,t){if(!t)throw new F("IMPORT source capability is not available.");let n=t(e);if(!n)throw new F(`source "${e}" is not supplied.`);return n}async function uo(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new F("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new F("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function Jm(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new F(`invalid ${t.toUpperCase()} byte sequence.`)}}function Xm(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
4
- `)throw new F(`unexpected character after closing quote at offset ${a}.`);if(p==='"'){if(r.length!==0)throw new F(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(p===","){s(),a++;continue}if(p==="\r"||p===`
5
- `){p==="\r"&&e[a+1]===`
6
- `&&a++,l(),a++;continue}r+=p,a++}if(i)throw new F("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function Qm(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new F(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new F(`CSV column name "${n}" is duplicated.`);t.add(n)})}function co(e,t){let n=Xm(Jm(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}`)),Qm(r),i.length===0)throw new F("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new F(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var Zm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ey=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Pr=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 qc(e,t,n){if(!Zm.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Pr;return ey.has(t??"")?r.map(i=>({code:i})):r}function ot(e,t,n,r){throw new F(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function zc(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new F("JSON source is not valid UTF-8.")}}function Jc(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
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 me("\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 ia(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||qf(t)}function Fl(e){let t=e.codePointAt(0);return ia(e)||t>=48&&t<=57}function cn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function qf(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var zf=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Jf(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=zf.exec(e.trim());if(t===null)return null;let n=Jf(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 Xf(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 Kl(e){let t=Le(e);return t===null?null:Xf(t)}function Qf(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 li(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Qf(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function ui(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return li(n,r)}var Ye="__NO_FROM__";function ye(e){return{type:"NUMBER",value:Number(e),raw:e}}function V(e){let t=e.raw??String(e.value);return Kl(t)??t}function Bl(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function Zf(e){return`${e.tableAlias??""}\0${e.field}`}function re(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=Zf(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 $l(e){return re(e).type!=="NONE"}function Gl(e,t){let n=re(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let u={...l,field:s};return r.set(u.canonicalId,u),u},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(u=>u.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 ci(e){return`'${e.replace(/'/g,"''")}'`}function pn(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return V(e);if(e.type==="STRING_FUNC")return aa(e);let n=`${pn(e.left)}${e.op}${pn(e.right)}`;return t?n:`(${n})`}function Vl(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return aa(e.expr);if(e.type==="ARITH_FIELD")return pn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return oa(e.expr)}function Hl(e){switch(e.type){case"STRING":return ci(e.value);case"NUMBER":return V(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=>ci(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Hl).join(",")})`;case"ARITH_VALUE":return pn(e.expr);case"CASE_VALUE":return oa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Yn(e){switch(e.type){case"BINARY":return`${Vl(e.left)} ${e.op.replace("_"," ")} ${Hl(e.right)}`;case"NULL_CHECK":return`${Vl(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Yn(e.left)} ${e.op} ${Yn(e.right)})`;case"NOT":return`NOT (${Yn(e.expr)})`;case"GROUP":return`(${Yn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Wl(e){return e.type==="ARRAY"?`[${e.elements.map(t=>ci(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?pn(e):Mt(e)}function oa(e){let t=e.branches.map(r=>`WHEN ${Yn(r.condition)} THEN ${Wl(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Wl(e.elseResult)}`;return`CASE ${t}${n} END`}function eE(e){return e.type==="AGG_REF"?Ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?jn(e):Mt(e)}function aa(e){return`${e.func}(${e.args.map(eE).join(",")})`}function Mt(e){switch(e.type){case"STRING":return ci(e.value);case"NUMBER":return V(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return aa(e);case"CASE_WHEN":return oa(e);case"SCALAR_ARITH":return`(${Mt(e.left)}${e.op}${Mt(e.right)})`;case"CONCAT_OP":return`(${Mt(e.left)}||${Mt(e.right)})`}}function tE(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?pn(e,!0):Mt(e)}function Ie(e,t,n){let r=tE(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function jn(e){return e.type==="NUMBER"?V(e):e.type==="AGG_REF"?Ie(e.func,e.distinct,e.arg):`${jn(e.left)}${e.op}${jn(e.right)}`}var pi=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Ft=new Set(["TODAY","NOW","LOGINUSER"]),qn=new Set([...Ft,...pi]),xt="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",ot="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function z(e){return pi.has(e)}function dn(e){return Ft.has(e)}function xe(e){return qn.has(e)}var Yl=20,sa=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"}),ql=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),la=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"}),AS=Object.freeze(Object.values(la).filter(e=>e!==void 0)),nE=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),rE=new Set(nE);function iE(e){return rE.has(e)}var zl=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),di=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function jl(e){return di[e]!==void 0}var oE=Object.freeze([...pi]),aE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),sE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function lE(e){return aE.has(e)}function uE(e){return sE.has(e)}function cE(e){return Number.isInteger(e)&&e>=1&&e<=31}var SS=Object.freeze(Array.from(new Set([...Object.keys(sa),...ql,...Object.keys(la),...Object.keys(zl),...Object.keys(di),...oE,"IF"]))),pE=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","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 dE(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!pE.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},At=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=[]}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>Yl)throw new T(`batch exceeds ${Yl} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=di[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=at(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=at(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new T(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let O=this.parseIdentList();if(this.expect(")"),new Set(O).size!==O.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let U of["ID","SOURCE"]){if(!this.isSoftKeyword(U))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:O,...P?{rowIdSourceHeader:P}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),u,c=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());u=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ye||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),h=this.parseIdentList(),this.expect(")"),new Set(h).size!==h.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let g=o.filter(b=>b.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(h);for(let O of g){if(!O.rowIdSourceHeader)throw new T(`CSV subtable ${O.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(O.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${O.subtableCode}.`,this.prev())}for(let O of b)if(!g.some(P=>P.subtableCode===O))throw new T(`REPLACE SUBTABLES target ${O} is not declared in INTO.`,this.prev())}}else if(h)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),w=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:u,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...h?{replaceSubtables:h}:{},...m?{keyFields:m}:{},...S,...w}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=at(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:p})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let u={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(u,t),u}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&dE(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:Ye},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,u=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(u=this.parseWhereExpr("HAVING"))}let c="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||d!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:u,orderMode:c,orderBy:p,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.continueArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseArithAddSub(),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.continueArith(o),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return zl[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?ye(`-${V(n)}`):{type:"AGG_ARITH",left:ye("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return ye(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return ye(`${n.kind==="-"?"-":"+"}${V(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:ye("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),ye(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return ye(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?ye(`-${V(n)}`):{type:"ARITH",left:ye("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ye(t.value);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=sa[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=sa[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(ql.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=fE(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return la[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!iE(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=at(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:Ie(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&z(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!lE(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!uE(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!cE(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(jl(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:di[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(ye(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(ye(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Bl(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=at(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:u,...c,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let u=this.parseInsertRow(i.length);this.expect(")"),o.push(u)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=at(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:p,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...u}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(ye(`${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(ye(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=at(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),u=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(u.validateOnly||u.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...u}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...u}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...u}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((u,c)=>{let p=this.matchUpdateFromJoin(u,n,r);p!==null&&a.push({index:c,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let u=0;u<o.length;u++){if(u!==s.index&&this.nodeContainsQualifiedField(o[u],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(u!==s.index&&this.nodeContainsForeignQualifier(o[u],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((u,c)=>c!==s.index).reduce((u,c)=>u===null?c:{type:"LOGICAL",op:"AND",left:u,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(jl(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=at(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=at(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||si.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function fE(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 at(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Ei(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function EE(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 ua(e){return Kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Bt(e){return!ua(e)&&(EE(e.type)||Kt(e.type))}function Jl(e){return Bt(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}function Xl(e){return Bt(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION":!1}var RE=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function he(e,t){for(let n of t)e.add(n)}function fi(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"&&RE.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=>fi(i,t)):fi(r,t))}function St(e){let t=new Set;if(Kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":he(t,En(e));break;case"UNION":he(t,Zl(e));break;case"WITH":for(let n of e.ctes)he(t,St(n.query));he(t,St(e.query));break;case"CREATE_TEMP_TABLE":he(t,St(e.query));break;default:break}return fi(e)&&t.add("STATISTICAL_AGGREGATE"),t}function Ql(e){return St(e).size>0}function Zl(e){let t=e.left.type==="SELECT"?En(e.left):Zl(e.left);return he(t,En(e.right)),t}function En(e){let t=new Set;re(e).type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let n of e.columns)if(n.type==="WINDOW_COL"&&n.orderBy.length>0&&t.add("WINDOW_ORDER"),n.type==="SCALAR_SUBQUERY_COL"&&he(t,En(n.query)),n.type==="CASE_COL")for(let r of n.expr.branches)he(t,fn(r.condition));return he(t,fn(e.where)),he(t,fn(e.having)),fi(e)&&t.add("STATISTICAL_AGGREGATE"),t}function fn(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")&&he(t,En(e.right.query));break;case"LOGICAL":he(t,fn(e.left)),he(t,fn(e.right));break;case"NOT":case"GROUP":he(t,fn(e.expr));break;case"EXISTS":he(t,En(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function eu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function tu(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 mE=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})}),da=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),zn="v1";function $(e){throw new Error(`UnsupportedError: APPLY ${zn} scope does not support ${e}`)}function yE(e,t){let n=zn;zn=e;try{return t()}finally{zn=n}}function hE(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 yn(e,t){return yE(e,()=>gE(t,mE[e]))}function gE(e,t){let n=hE(e);if(n===null)return;if(n.type==="UPSERT"){SE(n,t);return}let r=n.applyBlocks;if(ca(r),!t.multipleBlocks&&r.length!==1&&$("multiple APPLY blocks in this phase"),n.type==="INSERT"){TE(n,r,t);return}let i=n;i.subtableCode&&$("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&$("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&$("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&$("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&$("REJECT LIMIT in this phase"),IE(i.where,t.multipleParents),ru(r,t)}function ru(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||$(`${r.kind} in this phase`);iu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Ri(i,"APPEND targets");mn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&$("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&nu(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&$("EXPECT ROWS in this phase"),r.assignments.length===0&&$("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(".")&&$("parent or qualified PATCH targets in this phase")}mn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&nu(r.selector.where,t.idxSelectors)}}}}function iu(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 AE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ou(e,t){if(iu(e),e.targetKind==="MULTI_VALUE"){if(!AE.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 ca(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${zn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function SE(e,t){t.upsert||$("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&$("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&$("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&$("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];ca(n),ca(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&$("multiple APPLY blocks in this phase"),au(n,"UPSERT ON INSERT"),ru(r,{...t,idxSelectors:!1,expectRows:!1})}function au(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&$(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Ri(i,"APPEND targets");mn(r.values,"APPEND values")}}function TE(e,t,n){n.insert||$("INSERT in this phase"),e.subtableCode&&$("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&$("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&$("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&$("REJECT LIMIT in this phase"),au(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function mi(e,t){let n=da[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&fa(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Rn(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 ${Rn(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 ${Rn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${Rn(e)} execution does not support multiple-parent APPLY`)}function fa(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function su(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!da[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Rn(e)} public multiple-parent write is not connected`)}function hn(e){if(!da[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Rn(e)} internal prepared write is not available`)}function Rn(e){return`Phase ${e.slice(5)}`}function IE(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&$("a parent $id that is not a positive safe integer in this phase"),t||$("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),pa(e,t))}function pa(e,t){if(Array.isArray(e)){for(let o of e)pa(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")&&$("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&$("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&$("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)&&$("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&z(n.name))&&$("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))pa(o,t)}function nu(e,t){mn(e,"child row selectors",t)}function mn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)mn(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")&&$(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&$(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&$(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&z(r.name))&&$(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&$(`qualified or parent field references in ${t}`),Ri(l,t,n)}if(i==="FIELD_REF"&&Ri(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))mn(s,t,n)}function Ri(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&$(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&$(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&$(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=wE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function wE(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 lu(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function It(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Tt(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function pe(e){if(e===null)return!1;if(It(e))return!0;switch(e.type){case"LOGICAL":return pe(e.left)||pe(e.right);case"NOT":case"GROUP":return pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return bE(e);case"NULL_CHECK":return NE(e);case"LOGICAL":return CE(e);case"NOT":return OE(e);case"GROUP":return LE(e);case"EXISTS":throw new ie("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ie("internal error: BOOLEAN predicate reached kintone query conversion")}}function bE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=cu(e.left),n=PE(e.op),r=_E(e.right,e.op);return`${t} ${n} ${r}`}function PE(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 NE(e){let t=cu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function CE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=uu(e.left)?`(${t})`:t,o=uu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function OE(e){return G(Jn(e.expr))}function LE(e){return`(${G(e.expr)})`}function cu(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return KE(e.field)}function _E(e,t){switch(e.type){case"VARIABLE":throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ie(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return pu(e);case"NUMBER":return V(e);case"KINTONE_FUNC":return du(e);case"IN_LIST":return FE(e,t);case"ARITH_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ie("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new ie("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function pu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function du(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return DE(e)}function DE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!kE(e.args.offset,e.args.offsetText)||!vE.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!UE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!ME(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var vE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),UE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function kE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ME(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function FE(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ie("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return xE(e.values),`(${e.values.map(r=>r.type==="STRING"?pu(r):r.type==="NUMBER"?V(r):du(r)).join(",")})`}function xE(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function KE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function uu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function BE(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||re(e).type!=="NONE"||e.distinct||BE(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&yu(t.expr)||t.type==="SCALAR_VALUE_COL"&&er(t.expr))||wt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function wt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return fu(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return fu(e.field);case"LOGICAL":return wt(e.left)||wt(e.right);case"NOT":case"GROUP":return wt(e.expr);case"EXISTS":return!0}}function fu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function yi(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map($E).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:GE(e.columns),totalCount:!1}}function mu(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!wt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function $t(e,t,n){let i=gu(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 $E(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 GE(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(Ra(r.field)):r.type==="ARITH_COL"?Zn(r.expr,n):r.type==="STRFUNC_COL"?ma(r.expr,n):r.type==="SCALAR_VALUE_COL"&&gn(r.expr,n);return[...new Set(n)]}function VE(e,t){Zn(e.left,t),Zn(e.right,t)}function Zn(e,t){e.type==="FIELD_REF"?t.push(Ra(e.field)):e.type==="ARITH"?VE(e,t):e.type==="STRING_FUNC"&&ma(e,t)}function Ra(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ma(e,t){for(let n of e.args)WE(n,t)}function WE(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ea(e,t);return}gn(e,t)}function gn(e,t){if(e.type==="FIELD"){t.push(Ra(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ma(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){gn(e.left,t),gn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Eu(n.result,t);e.elseResult&&Eu(e.elseResult,t)}}function Eu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Zn(e,t);return}gn(e,t)}}function Ea(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&HE(e.arg,t);return}e.type==="AGG_ARITH"&&(Ea(e.left,t),Ea(e.right,t))}function HE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Zn(e,t):gn(e,t)}function yu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:er(t))}function er(e){return e.type==="STRING_FUNC"?yu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?er(e.left)||er(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Ru(t.result))||e.elseResult!==null&&Ru(e.elseResult):!1}function Ru(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:er(e)}function hu(e,t){let n=new Set,r=gu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function gu(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let u=YE(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},p=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let M=a.get(A);if(!(!M||M.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let N=C.slice(3);N&&N!=="*"&&M.fields.add(N);return}return void 0}C&&M.fields.add(C)}},R=(A,C="select",M)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let Y=d.get(F);if(Y){c(Y);return}return}if(C==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let F=r[M.sourceIndex];F&&(n||F.cteName===null)&&E(F,M.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&u.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&jE(A))return;let N=A.indexOf(".");if(N>0){let F=A.slice(0,N),Y=A.slice(N+1);if(F==="_p"){l&&E(l,`_p.${Y}`);return}let j=d.get(F);if(j){E(j,Y);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},m=(A,C,M="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let N=d.get(C);if(N){E(N,A);return}if(n)return}R(A,M)},y=(A,C="select")=>{if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){y(A.left,C),y(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},h=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&b(A.arg,C);return}A.type==="AGG_ARITH"&&(h(A.left,C),h(A.right,C))},g=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){h(A,C);return}w(A,C)},S=(A,C="select")=>{for(let M of A.args)g(M,C)},w=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){w(A.left,C),w(A.right,C);return}A.type==="CASE_WHEN"&&P(A,C)},b=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}w(A,C)},O=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}w(A,C)}},P=(A,C="select")=>{for(let M of A.branches)_(M.condition,C),O(M.result,C);A.elseResult&&O(A.elseResult,C)},U=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){y(A.expr,C);return}A.type!=="GROUPING_FIELD"&&P(A.expr,C)},I=(A,C="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,C);return}if(A.type==="CASE_VALUE"){P(A.expr,C);return}},_=(A,C="where")=>{if(A)switch(A.type){case"BINARY":U(A.left,C),I(A.right,C);return;case"NULL_CHECK":U(A.field,C);return;case"LOGICAL":_(A.left,C),_(A.right,C);return;case"NOT":case"GROUP":_(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},k=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}S(A.expr,"groupBy")},L=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){y(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&b(A.arg,"select");break;case"ARITH_AGG_COL":h(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":w(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)m(C.field,C.tableAlias,"select");for(let C of A.orderBy)L(C.key,"select");break}for(let A of e.joins)m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where");_(e.where,"where");let v=re(e);if(v.type==="PLAIN")v.allItems.forEach((A,C)=>k(A,t?.items[C]));else if(v.type==="GROUPING_SETS")for(let A of v.allItems)m(A.field,A.tableAlias,"select");_(e.having,"having");for(let A of e.orderBy)L(A.key);return a}function YE(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(Ie(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 jE(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function bt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||$l(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Pt(e){let t=e.ctes[0].query,n=e.query,r=hi(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 hi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Au(e.left,t)};case"NULL_CHECK":return{...e,field:Au(e.field,t)};case"LOGICAL":return{...e,left:hi(e.left,t),right:hi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:hi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Au(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return tr(e,n=>qE(n,t))}function nr(e,t={}){return tr(e,n=>Su(n,t)||Tu(n,t))}function tr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=tr(e.left,t),r=tr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return tr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function qE(e,t){return zE(e,t)||QE(e,t)?!0:Su(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":XE(e,t)}function zE(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ya(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var JE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function XE(e,t){if(!Tu(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!JE.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function QE(e,t){return!ZE(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function ZE(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 Su(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ya(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(V(e.right))&&Number.isSafeInteger(e.right.value)}function Tu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ya(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function ya(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function rr(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(u=>u.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=rr(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let u of e.joins){if(!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});c!==null&&l.set(u.table.alias,c)}let d=new Set(a.appliedKlikes);for(let u of l.values())Sn(u,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function ha(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(It(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function gi(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=ce(t.where);if(l.length===0||!nR(l,a)||o===null||!Iu(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:tR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},u={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return eR(u,e,l),u}function eR(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Iu(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ce(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&xe(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function tR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&xe(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&xe(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function nR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Iu(e,t){let n=new Map;for(let r of t){if(!xe(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function je(e){wu(e)}function Aa(e){if(ha(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function wu(e){switch(e.type){case"SELECT":In(e);return;case"UNION":Ta(e);return;case"WITH":bu(e);return;case"EXPLAIN":wu(e.query);return;case"CREATE_TEMP_TABLE":Sa(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Gt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&pe(e.where)){ga(e.where),Gt(e);return}if(Nt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&pe(e.where)&&!oR(e,e.where)){ga(e.where),Gt(e);return}if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(Nt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&pe(e.where)){ga(e.where),Gt(e);return}if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(Nt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function ga(e){Si(e,t=>{if(!It(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Sa(e){e.type==="SELECT"?In(e):e.type==="UNION"?Ta(e):bu(e)}function Ta(e){Sa(e.left),In(e.right)}function bu(e){if(bt(e)){In(Pt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&Ta(t.query);Sa(e.query)}function In(e){if(iR(e),pe(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(ha(n).length===0){Gt(e);return}if(rR(e)){Gt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Gt(e)}function rR(e){return e.where!==null&&ce(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function iR(e){Si(e,t=>{if(!It(t))return;if(!Ai(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Gt(e){Ti(e,t=>{t.type==="SELECT"&&In(t)},!0)}function Nt(e){let t=!1;return Ti(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function oR(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function Ai(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ai(e.left,t)||Ai(e.right,t);case"NOT":case"GROUP":return Ai(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Si(e,t){if(Array.isArray(e)){for(let r of e)Si(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&aR(r)||Si(r,t)}function Ti(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Ti(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Ti(i,t)}function aR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Pu=Symbol("ksql.groupingRowMeta"),Nu=new WeakMap;function Cu(e,t){return Object.defineProperty(e,Pu,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function sR(e){return e[Pu]}function lR(e){return sR(e)?.includedCanonicalIds}function Ou(e,t){Nu.set(e,t)}function wn(e,t){let n=lR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Nu.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var _u=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function bi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function wa(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function Pi(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Pi(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){De(n.arg,t);return}Object.values(n).forEach(r=>Pi(r,t))}}function ir(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>ir(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(wa(n.field));return}Object.values(n).forEach(i=>ir(i,t))}}function or(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(or);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(or)}function uR(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"?or(e):!1}function cR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Lu(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function pR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${bi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${bi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Ou(e,r.canonicalId)}function Ia(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${bi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function dR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[wa(e.name)];let t=[];return ir(e,t),t}function ba(e){let t=re(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),Pi(e.columns,r),Pi(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&De(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function Du(e,t,n=()=>{}){ba(e);let r=re(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&De(u,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Gl(e,t),a=new Set,s=[];for(let u of o.allItems){let c=u;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${bi(u.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)pR(u,t,a);let l=cR(e.columns);for(let u of e.columns){if(u.type==="GROUPING_COL"||u.type==="AGGREGATE"||u.type==="ARITH_AGG_COL"||u.type==="LITERAL_COL"||u.type==="VARIABLE_COL"||u.type==="SCALAR_SUBQUERY_COL")continue;let c=[];u.type==="FIELD"?c.push(wa(u.field)):ir(u,c);for(let p of c)Ia(p,t,a,"SELECT")}if(e.having){let u=[];ir(e.having,u);for(let c of u)c.tableAlias===null&&l.has(c.field)||Lu(c)||Ia(c,t,a,"HAVING")}for(let u of e.orderBy)for(let c of dR(u.key))c.tableAlias===null&&l.has(c.field)||Lu(c)||Ia(c,t,a,"ORDER BY");let d=new Set;for(let u of s)d.add(u.directKey),u.unqualifiedBridgeKey!==null&&d.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!uR(u))continue;let c="alias"in u?u.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Ni=16,vu=64,te=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ar(e,t,n){if(Array.isArray(e)){for(let r of e)ar(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))ar(a,t,n)}}function Pa(e,t){if(Array.isArray(e)){for(let n of e)Pa(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Pa(i,t)}}function Na(e){if(Array.isArray(e)){for(let t of e)Na(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&ba(e);for(let n of Object.values(t))Na(n)}}function Uu(e){if(e.length===0)throw new te("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{Na(c)}catch(f){throw f instanceof Error?new te(f.message,p):f}try{yn("phase15b",c),je(c)}catch(f){throw f instanceof oe?new te(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new te(f.message,p):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let p=c==="SET_VARIABLE"?"SET":"DECLARE";throw new te(`ArgumentError: ${p} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let p=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new te(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,p)=>{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 O=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 te(O,p)}let E=Ei(c),R=[],m=[],y=new Set,h=new Set,g=new Set,S=[];Pa(c,S);let w=new Set;for(let O of S){let P=o.get(O.name);if(P===void 0)throw new te(`ParseError: variable @${O.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&O.kind==="array-in-list")throw new te(`ParseError: scalar variable @${O.name} cannot be used as IN @${O.name}; use IN (@${O.name}) instead.`,p);if(P.kind==="array"&&O.kind!=="array-in-list")throw new te(`ParseError: array variable @${O.name} can only be used as IN @${O.name}.`,p);w.has(O.name)||(P.referencedBy.push(p),w.add(O.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new te(`ParseError: variable @${c.name} is already defined.`,p);if(o.set(c.name,{index:p,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>vu)throw new te(`ParseError: batch exceeds ${vu} variables.`,p)}c.type==="CREATE_TEMP_TABLE"?ar(c.query,y,h):c.type==="DROP_TEMP_TABLE"||ar(c,y,h);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let O=new Set,P=new Set;ar(c.select,O,P),b=O.size>0&&P.size===0}for(let O of y){let P=t.get(O);if(P===void 0)throw new te(`ParseError: temp table ${O} is not defined in this batch.`,p);g.add(P)}if(f){let O=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(I=>I.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(I=>I.kind==="FIELD"?[I.field]:I.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(I=>I.field)]:"fields"in c?c.fields:[],P=JSON.stringify(O),U=t.get(f);if(U===void 0){if(t.set(f,p),n.set(f,P),r.push(f),R.push(f),t.size>Ni)throw new te(`ParseError: batch exceeds ${Ni} temp tables.`,p)}else{if(n.get(f)!==P)throw new te(`ParseError: validation error table ${f} has a different payload schema.`,p);g.add(U)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new te(`ParseError: temp table ${c.name} is already defined.`,p);if(t.set(c.name,p),r.push(c.name),R.push(c.name),t.size>Ni)throw new te(`ParseError: batch exceeds ${Ni} temp tables.`,p)}if(c.type==="DROP_TEMP_TABLE"){let O=t.get(c.name);if(O===void 0)throw new te(`ParseError: temp table ${c.name} is not defined in this batch.`,p);g.add(O),m.push(c.name),t.delete(c.name)}i.push({index:p,statementType:E,isDml:ua(c),isReadOnly:Bt(c),hasWhere:eu(c),insertValuesCount:tu(c),appIds:[...h].sort((O,P)=>O-P),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...g].sort((O,P)=>O-P),tempOnlySource:b,targetAppId:Kt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:Ql(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),u=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:u,warnings:u.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var fR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),ER=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function J(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":ER.has(e.fieldType)?t="option":fR.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function bn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Ci(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function RR(e,t){return e<t?-1:e>t?1:0}function ku(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function mR(e,t){let n=ku(e),r=ku(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?li(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function Mu(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function yR(e,t,n){let r=Mu(e,n),i=Mu(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function hR(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 Fu(e,t){let n=t.optionOrder??new Map,i=[...new Set(hR(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(xu),i}function xu(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function gR(e,t,n){let r=Fu(e,n),i=Fu(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=xu(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function Vt(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return mR(e,t);case"recordNumber":return yR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return gR(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Wt(e,t,n,r=B("string")){let i=Vt(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 Ku(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?li(s,l):RR(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(lt(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function de(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return lt(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(de(e.left,t,n,r)),o=Number(de(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 Vu(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 de(e,t,n,r)}}function Oi(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 AR(e){return e>=55296&&e<=56319}function SR(e){return e>=56320&&e<=57343}function _i(e,t){return t>0&&t<e.length&&AR(e.charCodeAt(t-1))&&SR(e.charCodeAt(t))}function Bu(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 Oa(e,t){let n=Math.min(Math.max(0,t),e.length);return _i(e,n)&&(n-=1),e.slice(0,n)}function TR(e,t){let n=Math.max(0,e.length-t);return _i(e,n)&&(n+=1),e.slice(n)}function IR(e,t,n){let r=Bu(t,e.length),i=Bu(n,e.length);return i<=r?"":(_i(e,r)&&(r+=1),_i(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function wR(e,t){let n=e.repeat(Math.ceil(t/e.length));return Oa(n,t)}var bR=200,sr=new Map;function PR(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 Ca(e,t,n=!1){let r=PR(t)+(n?"g":""),i=`${e}\0${r}`,o=sr.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(sr.size>=bR){let s=sr.keys().next().value;s!==void 0&&sr.delete(s)}return sr.set(i,a),a}function NR(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function CR(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 OR(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 u=Number(s+l);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function LR(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),u=a.slice(0,d);return OR(n,o,u,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>xR(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ge("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return IR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ge("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Oa(o,a)}case"RIGHT":{ge("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":TR(o,a)}case"INSTR":return ge("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ge(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Oa(o,a);let s=i[2]??" ";if(s==="")return o;let l=wR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ge(e.func,i,2),Ku(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ge("REGEXP_LIKE",i,2,3),Ca(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ge("REGEXP_REPLACE",i,3,5),NR(i[2]);let o=CR(i[4]),a=Ca(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):LR(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ge("REGEXP_SUBSTR",i,2,3),Ca(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ge("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Oi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Oi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Oi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ge("TRUNCATE",i,1,2),Oi("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 MR(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ge(e.func,i,1,1),Li(i[0])?String(La(i[0])+1):"";case"QUARTER":return ge(e.func,i,1,1),Li(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ge(e.func,i,1,1),Li(i[0])?String(Gu(i[0])):"";case"DATE_FORMAT":return DR(i[0]??"",i[1]??"");case"DATEDIFF":return vR(i[0]??"",i[1]??"");case"DATE_ADD":return UR(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ge("LAST_DAY",i,1,1),kR(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ge(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function lr(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 Di(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 Li(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Di(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 La(e){return Di(e).getUTCDay()}function $u(e){let t=Di(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function _R(e){return $u(e).getUTCFullYear()}function Gu(e){let t=$u(e),n=t.getUTCFullYear(),r=Di(`${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 DR(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=lr(e),l=Li(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(La(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][La(e)]:"";case"%v":return l?String(Gu(e)).padStart(2,"0"):"";case"%G":return l?String(_R(e)).padStart(4,"0"):"";default:return d}})}function vR(e,t){if(e.length<10||t.length<10)return"0";let n=lr(e),r=lr(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 UR(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}=lr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function kR(e){if(!e||e.length<10)return e;let{y:t,mo:n}=lr(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 MR(e,t){if(/^-?\d+$/.test(t.trim()))return FR(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,u=i.toFixed(d),[c,p=""]=u.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=p?`${f}.${p}`:f;return n?E+"%":E}function FR(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 xR(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?V(e):String(de(e,t,n,r))}function lt(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 Q(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return KR(e,t,n,r,i);case"NULL_CHECK":return HR(e,t);case"LOGICAL":return YR(e,t,n,r,i);case"NOT":return!Q(e.expr,t,n,r,i);case"GROUP":return Q(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function KR(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=Xu(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=$R(e.left,a,i);return BR(e.op,o,e.right,t,a,n,s,i)}function BR(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(WR(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?V(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=VR(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=_a(n,r,o);return Ju(t,d)}if(e==="NOT_LIKE"){let d=_a(n,r,o);return!Ju(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=_a(n,r,o,s);return Wt(e,t,l,a)}var Wu=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function $R(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?J({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Wu.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(Wu.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var Hu=new Set(["CHECK_BOX","MULTI_SELECT"]),Yu=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),GR=new Set(["CREATOR","MODIFIER"]);function VR(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Wt("=",e,a,o))}let i;if(Hu.has(n)||Yu.has(n)||GR.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Hu.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Yu.has(n)?!Array.isArray(i)||!i.every(ju)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):ju(i)?t.has(i.code):r()}function ju(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function WR(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}: ${ot}`)}function HR(e,t){let n=Xu(e.field,t);return e.not?n!=="":n===""}function YR(e,t,n,r,i){return e.op==="AND"?Q(e.left,t,n,r,i)&&Q(e.right,t,n,r,i):Q(e.left,t,n,r,i)||Q(e.right,t,n,r,i)}function Xu(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return lt(t,i)}function _a(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 V(e);case"KINTONE_FUNC":return jR(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"?lt(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(Q(i.condition,t,n,void 0,r))return zu(i.result,t,n,r);return e.elseResult!==null?zu(e.elseResult,t,n,r):""}function Vu(e,t,n,r){for(let i of e.branches)if(Q(i.condition,t,n,void 0,r))return qu(i.result,t,n,r);return e.elseResult===null?null:qu(e.elseResult,t,n,r)}function qu(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function zu(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(de(e,t,n,r))}function Qu(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":return""}}function jR(e){throw z(e)?new Error(`${e}: ${xt}`):dn(e)?new Error(`${e}: ${ot}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var vi=new Map,qR=200;function Ju(e,t){if(!lu(t))return e.includes(t);let n=vi.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),vi.size>=qR&&vi.clear(),vi.set(t,n)}return n.test(e)}function Pn(e){return ec(e)}function Zu(e){return ec(e.flatMap(t=>t.rules.map(n=>n.condition)))}function ec(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 fe("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 fe("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 fe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Ui(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!Q(a.condition,t,n))continue;let s=de(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function va(e){if(Tt(e))throw new X("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 zR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),JR=new Set(["CHECK_BOX","MULTI_SELECT"]);function Mi(e,t=new Map){let n=e.values.map(r=>XR(e.fields,r,t));return dr(n,100).map(r=>({app:e.appId,records:r}))}function XR(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ut(a,n.get(i))}}),r}function cr(e){va(e.where);let t=fc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function pr(e,t,n=new Map){let r=QR(e.assignments,n);return dr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function QR(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:ut(i,t.get(r))});return n}function ic(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 Fi(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 Ua(e){va(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?oc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Nn(n,t):n.type==="STRING_FUNC"?ka(n,t):n.type==="CASE_VALUE"&&ac(n.expr,t);return fc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function oc(e,t){ur(e.left,t),ur(e.right,t)}function ur(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?oc(e,t):e.type==="STRING_FUNC"&&ka(e,t)}function ka(e,t){for(let n of e.args)ZR(n,t)}function ZR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Da(e,t);return}Nn(e,t)}function Nn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){ka(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Nn(e.left,t),Nn(e.right,t);return}e.type==="CASE_WHEN"&&ac(e,t)}function Da(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&em(e.arg,t);return}e.type==="AGG_ARITH"&&(Da(e.left,t),Da(e.right,t))}function em(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ur(e,t):Nn(e,t)}function tc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){ur(e,t);return}Nn(e,t)}}function ac(e,t){for(let n of e.branches)ki(n.condition,t),tc(n.result,t);e.elseResult!==null&&tc(e.elseResult,t)}function ki(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&ur(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ki(e.left,t),ki(e.right,t);break;case"NOT":case"GROUP":ki(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Ma(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=sc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:Fa(d,a,n.get(l),i)};return{id:o,record:s}});return dr(r,100).map(i=>({app:e.appId,records:i}))}function Fa(e,t,n,r){if(e.type==="ARITH")return String(r?Ka(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(de(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new X("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ut(e,n)}function xi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return V(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var tm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function xa(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new X("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=sc(i),l={};for(let{field:d,value:u}of e.assignments){let c=n.get(d);if(u.type==="SOURCE_FIELD"){if(tm.has(c??""))throw new X(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,u.field))throw new X(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let p=o[u.field];if(typeof p!="string")throw new X(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&p!==""&&!Number.isFinite(Number(p)))throw new X(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${p}`);l[d]={value:ut({type:"STRING",value:p},c)}}else{if(u.type==="STRING_FUNC")throw new X("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?l[d]={value:String(Ka(u,i))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?l[d]={value:String(de(u,s))}:u.type==="CASE_VALUE"?l[d]={value:Lt(u.expr,s,c)}:l[d]={value:ut(u,c)}}}return{id:a,record:l}});return dr(r,100).map(i=>({app:e.appId,records:i}))}function sc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Ka(e,t){let n=nc(e.left,t),r=nc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new X("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new X("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function nc(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Ka(e,t);if(e.type==="STRING_FUNC")throw new X("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 X(`\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 lc(e){return va(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function uc(e,t){return dr(t,100).map(n=>({app:e,ids:n}))}function cc(e){return zR.has(e??"")}function nm(e){return JR.has(e??"")}function rm(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 im(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function pc(e,t){return cc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):nm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?rm(e):t==="DATE"?im(e):e}function dc(e,t){return cc(t)?e.map(n=>({code:n})):e}function rc(e,t,n){return e.type==="ARRAY"?dc(e.elements.map(r=>r.value),n):e.type==="STRING"?pc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(de(e,t))}function fc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Pn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(Q(r.condition,t))return rc(r.result,t,n);return e.elseResult!==null?rc(e.elseResult,t,n):""}function ut(e,t){let n=Ba(e,t);if(!n.ok)throw new X(n.message);return n.value}function Ba(e,t){try{return{ok:!0,value:om(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function om(e,t){switch(e.type){case"VARIABLE":throw new X(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new X(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return pc(e.value,t);case"NUMBER":return V(e);case"ARRAY":return dc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new X(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new X("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new X("\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 X("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 X("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new X("\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 dr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var X=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var $a=new Set(["CHECK_BOX","MULTI_SELECT"]),am=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function fr(e){throw new Error(`ArgumentError: ${e}`)}function Ec(e,t,n){let r=sm(n.fieldType,e.field),i=lm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let h=y.value;h!==""&&(y.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let y of s)l.has(y)&&fr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),u=a.filter(y=>!o.has(y)),c=[...d,...u],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let h=y.kind==="ADD"?f:E,g=!h.has(y.value);return h.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&g&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=$a.has(r)?c:c.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:u.length,removedValues:p,changedValues:u.length+p}}function sm(e,t){return $a.has(e)||am.has(e)?e:fr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function lm(e,t,n){if(!Array.isArray(e))return fr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>$a.has(t)?typeof i!="string"?fr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?fr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function H(e){throw new Error(`ArgumentError: ${e}`)}function Wa(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?H("APPLY parent selector must be a single positive $id."):t.right.value}function ct(e,t){let n=e.applyBlocks;if(!n?.length)return H("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)Ga(s.field,null,r),um(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&H(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&H(`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"?H(`APPLY target ${s.field} is not a SUBTABLE.`):H(`APPLY target ${s.field} does not exist as a top-level field.`);if(ou(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&H(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,u=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,u);for(let c of s.operations)if(c.kind==="PATCH"){for(let p of c.assignments)Ga(p.field,s.field,r,u),Va(p.value,s.field,r,u);c.selector.kind==="WHERE"&&Va(c.selector.where,s.field,r,u)}else if(c.kind==="APPEND"){let p=new Set;for(let f of c.fields)p.has(f)&&H(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),Ga(f,s.field,r,u)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Va(c.selector.where,s.field,r,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function um(e,t){Er(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&H(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&H(`APPLY parent FILE reference ${n} is not supported.`)})}function Ga(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&H(`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&&H(`APPLY child ${e} does not belong to subtable ${t}.`),H(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&H(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Va(e,t,n,r){Er(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&H(`APPLY child reference ${i} does not belong to subtable ${t}.`),H(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Ki(e,t){let n=ct(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)Er(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Bi(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Ac(i?.value);return n}function mc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??ct(t,r),o=ja(n.$id?.value,"APPLY snapshot $id"),a=Wa(t);return o!==a&&H(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),hc(t,n,i,o)}function yc(e,t,n,r=ct(e,n)){let i=new Set;return t.map(o=>{let a=ja(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&H(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),hc(e,o,r,a)})}function hc(e,t,n,r){let i=ja(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let I=n.targetMultiValueFields.get(u.field);I||H(`APPLY multi-value metadata for ${u.field} is missing.`),a.push(Ec(u,t[u.field]?.value,I));continue}let c=n.childrenByTable.get(u.field),p=Rm(t,u.field),f=new Set;for(let I of p)I.id||H(`APPLY snapshot for ${u.field} contains a row without _rid.`),f.has(I.id)&&H(`APPLY snapshot for ${u.field} contains duplicate _rid ${I.id}.`),f.add(I.id);let E=I=>I.field==="_rid"?"SINGLE_LINE_TEXT":I.field==="_idx"?"NUMBER":c.get(I.field)?.fieldType,R=[],m=[],y=[],h=new Set,g=new Set,S=new Set,w=u.operations.some(I=>I.kind==="REMOVE");for(let[I,_]of u.operations.entries()){if(_.kind==="APPEND"){let L=Ha(_,c,u.field);y.push({kind:"APPEND",addedRows:L.length}),m.push(...L);continue}if(_.kind==="REMOVE"){let L=dm(_,p,E,u.field);_.expectRows&&Rc(_.expectRows,L.length,r,u.field,I,_.kind),y.push({kind:"REMOVE",removedRows:L.length});for(let v of L){let A=p[v].id;g.has(v)&&H(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(v)&&H(`APPLY removes row ${A} more than once.`),S.add(v)}continue}if(_.kind!=="PATCH")continue;let k=pm(_,p,E,u.field);_.expectRows&&Rc(_.expectRows,k.length,r,u.field,I,_.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let L of k){let v=p[L];S.has(L)&&H(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),g.add(L);let A=Bi(v,L);for(let C of _.assignments){let M=`${v.id}\0${C.field}`;h.has(M)&&H(`APPLY patches cell ${v.id}.${C.field} more than once.`),h.add(M),R.push({rowIndex:L,field:C.field,value:xi(C.value,A,E)})}}}let b=new Map;for(let I of R){let _=b.get(I.rowIndex)??{};_[I.field]={value:I.value},b.set(I.rowIndex,_)}let P=[...p.flatMap((I,_)=>S.has(_)?[]:[{id:I.id,value:{...I.value,...b.get(_)??{}}}]),...m],U={table:u.field,operations:y,changedSubtableRows:b.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:p.map(I=>I.id),postImageRows:P};w?o.push({...U,payloadShape:"FULL_SURVIVORS",removedRowIds:p.flatMap((I,_)=>S.has(_)?[I.id]:[]),payloadRows:P.map(I=>({...I.id===void 0?{}:{id:I.id},value:I.value}))}):o.push({...U,payloadShape:"PATCH_ONLY",payloadRows:[...p.map((I,_)=>{let k=b.get(_);return k?{id:I.id,value:k}:{id:I.id}}),...m.map(I=>({value:I.value}))]})}let s=mm(t),l={};for(let u of e.assignments){let c=n.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:Fa(u.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let u of o)d[u.table]={value:u.postImageRows};for(let u of a)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((u,c)=>u+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function Rc(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}`;H(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function $i(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return H(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let u=a[d];return u?.value?l.id===void 0?{value:u.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,u.value[c]]))}:H(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:H(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function Ha(e,t,n){return e.values.map(r=>({value:cm(e,r,t,n)}))}function cm(e,t,n,r){if(t.length!==e.fields.length)return H(`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?Ya(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ut(s,a.fieldType)}}return o}function Ya(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 pm(e,t,n,r){return gc(e.selector,t,n,r)}function dm(e,t,n,r){return gc(e.selector,t,n,r)}function gc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>Q(i,Bi(l,d),n)?[d]:[]),a=fm(i);a!==null&&o.length===0&&H(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Em(i);return s!==null&&o.length===0&&H(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function fm(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 Em(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 Rm(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:{}}}):H(`APPLY snapshot field ${t} is not a subtable value.`)}function ja(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&H(`${t} must be a positive integer.`),n}function mm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ac(r?.value);return t}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 Er(e,t){if(Array.isArray(e)){e.forEach(r=>Er(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))Er(r,t)}function ne(e){throw new Error(`ArgumentError: ${e}`)}function Vi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?ne("APPLY snapshot $revision must be a positive integer."):t}function Rr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return ne("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return ne("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)&&ne(`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)&&ne(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&ne(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),ym(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Sc(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 ne("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function ym(e){let t=qa(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(u=>u.id===void 0?[]:[u.id]);for(let u of e.payloadRows)u.id===void 0&&u.value===void 0&&ne(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(qa(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&ne(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let u=e.payloadRows.slice(0,t.length).map(p=>p.id??"");Gi(t,u,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&ne(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(p=>p.id??"");Gi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&ne(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(u=>u.kind==="REMOVE")||ne(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=qa(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&ne(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&ne(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(u=>u.id===void 0?[]:[u.id]),o=new Set(r),a=new Set(i);for(let u of r)a.has(u)&&ne(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${u}.`);let s=t.filter(u=>!o.has(u));Gi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(u=>u.id??"");Gi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(u=>u.id!==void 0)||e.postImageRows.slice(i.length).some(u=>u.id!==void 0))&&ne(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(u=>u.value===void 0)&&ne(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((u,c)=>!za(u.value,e.postImageRows[c]?.value))&&ne(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(u=>!d.has(u)))&&ne(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function qa(e,t){let n=[...e],r=new Set;for(let i of n)i||ne(`APPLY ${t} contains an empty row id.`),r.has(i)&&ne(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Gi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&ne(n)}function za(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)=>za(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)&&za(n[a],r[a]))}function Tc(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 Ic(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Tc(t.digits,"digits",1,30),r=Tc(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 wc(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 hm=new Set(["CHECK_BOX","MULTI_SELECT"]),gm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function we(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Am(e);if(i!==""&&!Sm(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=mr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:Tm(t.fieldType),message:o}}if(t.required&&Wi(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Wi(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&ui(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&&ui(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}=wc(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(!Wi(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ht(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!Wi(r)&&gm.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 Am(e){return e==null?"":Hi(e)&&e.type==="NUMBER"?V(e):Hi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Sm(e,t){if(t==="DATE")return Ht(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ht(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Ht(n.slice(0,10),"DATE")&&Ht(n.slice(11),"TIME"):Ht(n,"DATETIME")}function mr(e,t){if(Hi(e)){let r=Ba(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(hm.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 Hi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Hi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Wi(e){return e===""||Array.isArray(e)&&e.length===0}function Tm(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ht(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Ht(l,"TIME")}var Cn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ja(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(u=>typeof u=="object"&&u!==null&&"code"in u),d=a;try{d=mr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function Xa(e,t,n,r,i,o,a,s=[],l=!0,d=!0,u={}){let c=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,E=[];u.validateUpdateBuiltIns===!1&&Ja(e,r,i);let R;for(let m of e){m.record??={};let y=d?[...m.preErrors]:[],h=[],g=[],S=m.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let P of r){if(!m.payload.has(P))continue;let U=m.payload.get(P),I=c.get(P).fieldType,_=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(I)&&Array.isArray(U)&&U.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!S)continue;let k=we(U,c.get(P),a);k.ok?m.record[P]={value:_?U:k.value}:h.push({field:P,code:k.code,message:k.message})}if(l&&m.mode==="create")for(let P of i){if(P.inSubtable||m.payload.has(P.code))continue;if(Yt(P.defaultValue)){let I=we("",P,a);I.ok?P.required&&h.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:P.code,code:I.code,message:I.message})}else{let I=we(P.defaultValue,P,a);I.ok||h.push({field:P.code,code:I.code,message:`\u65E2\u5B9A\u5024: ${I.message}`})}}if(s.length>0){let P=m.evaluationRow??Object.fromEntries([...m.payload].map(([_,k])=>[_,qe(k)])),U=m.evaluationFieldTypes,I=_=>{let k=_.tableAlias?`${_.tableAlias}.${_.field}`:_.field;return U?.get(k)??U?.get(_.field)};try{for(let _ of Ui(s,P,I))g.push({field:"",code:"ERR_CHECK",message:_.message})}catch(_){R??=_}}let w=P=>P.map(U=>{let I={};for(let _ of n)I[_]=qe(m.payload.get(_));return I.$err_statement=String(o),I.$err_operation=t,I.$err_row=String(m.rowNumber),I.$err_field=U.field,I.$err_code=U.code,I.$err_message=U.message,I.$err_value="",I.$err_subtable="",I.$err_subrow="",I.$err_subrow_id="",I}),b={rowNumber:m.rowNumber,preErrors:w(y),builtInErrors:w(h),checkErrors:w(g)};E.push(b);let O=[...b.preErrors,...b.builtInErrors,...b.checkErrors];O.length>0&&f.add(m.rowNumber),p.push(...O)}if(R!==void 0)throw R;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function qe(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var Qa=["required","length","range","choice"];function Za(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 es(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 Im(e){return Za(e).length>0}function wm(e){return e.fieldType==="NUMBER"||Im(e)}function Yi(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ts(e,t){let{topByCode:n,childrenByTable:r}=es(t),i=wm;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let u=d?`${d}\0${l.code}`:l.code;if(a.has(u))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(u),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=c.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let u=n.get(d);if(u?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(p=>s(p,d));continue}if(u){s(u);continue}throw[...r.values()].some(c=>c.some(p=>p.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function yr(e,t){return Yt(e)?"":qe(mr(e,t))}var bm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),hr=Cn;function ze(e,t=["$id"]){let n=es(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!bm.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function jt(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function qt(e,t,n,r,i=1,o="UPDATE"){let a=Pm(e),s=[],l=new Set,d=[...t.payloadFields,...hr],u=qe(e.$id?.value),c=(p,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?u:qe(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=yr(f,p.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,E=we(f,p,n);E.ok?a[p.code]={value:bc(f,p.fieldType,E.value)}:c(p,f,E)}for(let[p,f]of t.subtables){let E=e[p]?.value;if(!Array.isArray(E))continue;let R=a[p]?.value;for(let m=0;m<E.length;m++){let y=E[m],h=R[m];for(let g of f){let S=y.value?.[g.code]?.value,w=we(S,g,n);w.ok?(h.value??={},h.value[g.code]={value:bc(S,g.fieldType,w.value)}):c(g,S,w,Yi(p,m,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function bc(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 Pm(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 ji(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Pc(o,"dmlMaxRows"),Pc(a,"dmlMaxSubtableRows");for(let g of n)Vi(g);let l=yc(t,n,r,i),d=ze(r,t.assignments.map(g=>g.field)),u=l.some(g=>jt(g.postImage,d));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=u?await e.loadNumberPrecision():void 0,p=l.map((g,S)=>qt(g.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=p.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((g,S)=>$i(g,p[S].normalizedRecord)),y=m.flatMap(g=>Rr(g).records),h=p.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return Nc({plans:m,records:y,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Pc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Nc(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))Nc(n,t);return Object.freeze(e)}var ns=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qi(e,t){if(new Set(e.fields).size!==e.fields.length)return Je("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Cc(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Je(`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 Je(`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 Je(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let u of l.fields){if(d.has(u))return Je(`APPLY APPEND specifies child ${u} more than once.`);d.add(u),Cc(u,o.field,n,s)}for(let u of l.values)if(u.length!==l.fields.length)return Je(`APPLY APPEND for ${o.field} has ${u.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function Nm(e,t,n=qi(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Mi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(u=>Ha(u,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||ns.has(c.fieldType)||(d[c.code]=s[c.code]??{value:Ya(c)});let u={...s};for(let c of a){let p=c.rows.map(f=>({value:f.value}));d[c.table]={value:p},u[c.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:u}})}async function gr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Oc(r,"dmlMaxRows"),Oc(i,"dmlMaxSubtableRows");let a=e.metadata??qi(t,n),s=Nm(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!ns.has(S.fieldType)),d=ze(l,t.fields),u=s.some(S=>jt(S.postImage,d));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=u?await e.loadNumberPrecision():void 0,p=s.map(S=>qt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=p.flatMap(w=>w.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,w)=>S+w.tables.reduce((b,O)=>b+O.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,w)=>{let b=p[w].normalizedRecord,O={};for(let P of t.fields)O[P]=b[P];for(let P of S.tables){let U=b[P.table]?.value;O[P.table]={value:P.rows.map((I,_)=>({value:Object.fromEntries(Object.keys(I.value).map(k=>[k,U[_]?.value?.[k]??I.value[k]]))}))}}return{...S,postImage:b,record:O}}),y=m.map(S=>S.record),h=[];for(let S=0;S<y.length;S+=100)h.push({app:t.appId,records:y.slice(S,S+100)});let g=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Lc({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Cc(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Je(`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?Je(`APPLY child ${e} does not belong to subtable ${t}.`):Je(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||ns.has(i.fieldType))return Je(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Oc(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Je(e){throw new Error(`ArgumentError: ${e}`)}function Lc(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))Lc(n,t);return Object.freeze(e)}async function Dc(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;_c(i,"dmlMaxRows"),_c(o,"dmlMaxSubtableRows"),Dm(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=Cm(t,s.map(y=>y.sourceRowIndex)),u=await gr({statement:d,fieldInfos:r,metadata:qi(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],p=new Set;for(let y of l){let h=y.targetId;p.has(h)&&rs(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),p.add(h),y.snapshot||rs(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(y.snapshot.$id?.value);g!==h&&rs(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=Om(t,y.sourceRowIndex,h),w=S.applyBlocks?.length?ct(S,r):Lm(r);c.push(await ji({statement:S,snapshots:[y.snapshot],fieldInfos:r,metadata:w,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=_m(c,i,o),E=u.guards.parentRows+f.guards.parentRows,R=u.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...u.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return is({create:u,update:f,createBatches:u.batches,updateBatches:vm(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:u.guards,update:f.guards}})}function Cm(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Om(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 Lm(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function _m(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 is({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 Dm(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 vm(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 _c(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function rs(e){throw new Error(`ArgumentError: ${e}`)}function is(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))is(n,t);return Object.freeze(e)}function Sr(e){return On("UPDATE",[kc(e)])}function os(e){return On("INSERT",[Uc(e)])}function as(e){return On("UPSERT",[Uc(e.create),kc(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Ji(e,t,n){return e.type==="UPDATE"?On("UPDATE",[zi("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?On("INSERT",[zi("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):On("UPSERT",[zi("insert",e.onInsertApplyBlocks??[],null,!1,t,n),zi("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function On(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Uc(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 kc(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:vc(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:vc(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 vc(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:Ar(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ar(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ar(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ar(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ar(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ar(e,t){return e==null||t===null?null:e+t}function zi(e,t,n,r,i,o){let a=t.map(u=>{let c=u.operations.map(f=>Um(f,n)),p=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:u.targetKind,field:u.field,operations:c,changedCount:p}}),s=a.filter(u=>u.targetKind==="SUBTABLE"),l=s.every(u=>u.changedCount!==null)?s.reduce((u,c)=>u+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function Um(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 Xe=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 Mc(e,t,n){hn("phase10c");let r=Sc(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 Xe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Fc(e,t,n){hn("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 Xe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function xc(e,t,n){hn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let u=await t.postRecords({app:d.app,records:[...d.records]});r.push(u.ids)}catch(u){throw new Xe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},u)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(u){throw new Xe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},u)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var km=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function Mm(e){if(!km.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 Fm(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=Mm(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 Kc(e,t){let n=Fm(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 xm(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function ss(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return xm(i)?!0:Object.values(i).some(n)};return n(e)}function Bc(e,t){let n=re(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Qe(e){if(e===null)return!1;switch(e.type){case"BINARY":return Xi(e.left);case"NULL_CHECK":return Xi(e.field);case"LOGICAL":return Qe(e.left)||Qe(e.right);case"NOT":case"GROUP":return Qe(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Xi(e){if(Array.isArray(e))return e.some(Xi);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(Xi)}async function Ke(e,t,n,r,i){let o=await Te(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 Qi(e,t,n,r){let{records:i,metrics:o}=await Ke(e,t,n,["$id"],r);return{ids:Ml(i),metrics:o}}var ke=["=","!=",">","<",">=","<="],Km=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Bm=new Set(ke),$m=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"])]]),Gm=new Map([["TODAY",new Set(ke)],["NOW",new Set(ke)],["LOGINUSER",new Set(["in","not in"])]]),Vm=["=","!=","in","not in"],Wm=new Map([["RECORD_NUMBER",new Set([...ke,"in","not in"])],["__ID__",new Set([...ke,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ke)],["UPDATED_TIME",new Set(ke)],["DATE",new Set(ke)],["TIME",new Set(ke)],["DATETIME",new Set(ke)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ke,"in","not in"])],["CALC",new Set([...ke,"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(Vm)]]),Hm=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"])]]),Vc=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"]),Wc=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Ym(e){return Wm.get(e)??new Set}function be(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Ir(e,t)}function Ir(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return jm(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?us():Jm(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return us();case"GROUP":return Ir(e.expr,t);case"NOT":{let n=Ir(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Yc(n.reasons)?br({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Ir(e.left,t),r=Ir(e.right,t);return Qm(e.op,n,r)}}}function jm(e,t,n,r){if(n.type==="KINTONE_FUNC"&&z(n.name))return qm(e,t,n,r);if(n.type==="KINTONE_FUNC"&&$c(n))return Gc(e,t,n,r);if(n.type==="IN_LIST"){let u=n.values.filter(c=>c.type==="KINTONE_FUNC");if(u.length>0)return n.values.length===1&&u.length===1?Gc(e,t,u[0],r):Zi("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",u[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,wr(e))}if(t.type!=="FIELD")return us();let i=r(t);if(!i)return Ln("WHERE_FIELD_UNRESOLVED",t.field,void 0,wr(e));let o=wr(e);if(!Hc(i.fieldType,o))return Ln("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Xm(i.fieldType,e))return Ln("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Ym(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||$c(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function $c(e){return e.type==="KINTONE_FUNC"&&Ft.has(e.name)}function Gc(e,t,n,r){let i=wr(e),o=n.name;if(!Ft.has(o)||t.type!=="FIELD")return Zi("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=$m.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Zi("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Gm.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Zi("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function qm(e,t,n,r){let i=wr(e),o=n.name;if(t.type!=="FIELD")return Tr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?zm(n)?Bm.has(i)?!Km.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Tr("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}]}:Tr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Tr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Tr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function zm(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 Jm(e,t,n){let r=n(e);return r?Hc(r.fieldType,t)?!Vc.has(r.fieldType)&&!Wc.has(r.fieldType)?Ln("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Ln("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Ln("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Hc(e,t){let n=Hm.get(e);return n===void 0||n.has(t)}function Xm(e,t){return Vc.has(e)?!0:Wc.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function wr(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 Qm(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?br({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")?br({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):br({capability:"LOCAL_ONLY",reasons:r})}function us(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Ln(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Zi(e,t,n,r,i){return br({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Tr(e,t,n,r,i){return jc({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Yc(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&z(t.functionName))}function Zm(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Ft.has(t.functionName))}function jc(e){if(e.capability==="EXACT_PUSHDOWN"||!Yc(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&&z(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 ey(e){if(e.capability==="EXACT_PUSHDOWN"||!Zm(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&&Ft.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 br(e){return ey(jc(e))}var ty=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),ny=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),ry=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Dn(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)?zc(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"}):zc(n[0],e.field)}function ps(e,t){if(e.left.type!=="FIELD")return Pr();let n=Dn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Pr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||be(e,a=>{let s=Dn(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:J({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Pr();let o=ly(e,n,r);return o==="unsafe"?Pr():Object.freeze({relation:o,owner:n})}function Jc(e,t){let n=ce(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Dn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):be(e,o=>{let a=Dn(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:J({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Xc(e,t){let n=new Set;zt(e,n);let i=(e===null?[]:ep(_n(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=iy(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)zt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(sy(e,t)),fetchQueriesByAlias:new Map,...o})}function Qc(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Jt(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,vn(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=vn({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Jt(oo(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function Un(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Jt(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&&!Jt(oo(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||Zc(ay(e))!==e.allKlikes.length))}function iy(e,t){if(e===null)return qc(null);let n=Object.freeze([...ce(e)]);if(n.length===0)return qc(e);let r=oy(e,t,n);if(r!==null)return r;let i=no(e),o=[],a=new Set;for(let c of i){let p=Jc(c,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,relation:"exact"},E;try{E=vn(f,t)}catch{continue}let R=oo(E);Jt(R,p.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ro(e,a),l=Object.freeze(s===null?[]:[...ce(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),u=Jt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:u,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function oy(e,t,n){let r=eo(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=vn(i,t)}catch{return null}if(!Jt(oo(o),n))return null;let a=new Set;if(zt(e,a),Zc(o)!==a.size)return null;let s=Object.freeze(to(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 eo(e,t){switch(e.type){case"BINARY":{if(ce(e).length>0){let i=Jc(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=ps(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=eo(e.left,t),r=eo(e.right,t);return n!==null&&r!==null&&ao(n,r)?n:null}case"GROUP":case"NOT":return eo(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function to(e){switch(e.type){case"BINARY":return ce(e).length>0?[e]:[];case"LOGICAL":return[...to(e.left),...to(e.right)];case"GROUP":case"NOT":return to(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function qc(e){let t=e===null?[]:ce(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function no(e){switch(e.type){case"BINARY":return ce(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...no(e.left),...no(e.right)]:[];case"GROUP":return no(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ro(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ro(e.left,t),r=ro(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=ro(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function oo(e){let t=[];for(let n of qn){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function Jt(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 Zc(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function ay(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function sy(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=Dn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(io(i.right)){n.add("CROSS_TABLE_BINARY");return}ps(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(ip(i)){n.add("KLIKE_OR");return}let o=_n(i.left,t),a=_n(i.right,t);if(o.length!==1||a.length!==1||!ao(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 vn(e,t){return Nr(e.predicate,e,t),G(e.predicate)}function Nr(e,t,n){switch(e.type){case"LOGICAL":Nr(e.left,t,n),Nr(e.right,t,n);return;case"GROUP":Nr(e.expr,t,n);return;case"NOT":Nr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||io(e.right))throw cs(t,"predicate contains a non-target or RHS field reference");let r=Dn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw cs(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw cs(t,"predicate shape is outside the Phase A serializer contract")}}function cs(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function _n(e,t){switch(e.type){case"BINARY":{let n=ps(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=_n(e.left,t),r=_n(e.right,t);if(e.op==="AND")return ep([...n,...r]);if(ip(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return ao(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:tp(i.relation,o.relation)}]:[]}case"GROUP":return _n(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ep(e){let t=[];for(let n of e){let r=t.findIndex(o=>ao(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:tp(i.relation,n.relation)}}return t}function ly(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return ny.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return uy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&np(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||ry.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?rp(e.right.value)?"superset":"unsafe":n==="TIME"?cy(e.right.value)?"superset":"unsafe":py(e.right.value)?"superset":"unsafe";if(ty.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function zc(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Pr(){return Object.freeze({relation:"unsafe"})}function ao(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function tp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function uy(e){return e.type==="NUMBER"&&np(e)&&e.value>0}function np(e){return/^-?\d+$/.test(V(e))&&Number.isSafeInteger(e.value)}function rp(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function cy(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function py(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!rp(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function zt(e,t){if(e!==null){if(It(e)){t.add(e);return}switch(e.type){case"LOGICAL":zt(e.left,t),zt(e.right,t);return;case"NOT":case"GROUP":zt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function ip(e){let t=new Set;return zt(e,t),t.size>0}function io(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(io);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(io)}function ds(e,t){let n=rr(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 dy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function fy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Cr(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=dy(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"&&!fy(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 Ey=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 Ry(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Or(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,d=e.orderSemantics.get(l);if(!d){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(Ry(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}Ey.has(d.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var so=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"}},lo=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}},uo=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 op(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 uo(a).message}}return{records:n,cleanupWarning:o}}function fs(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var ap=["$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 Es(e){return e.startsWith("_")||e.startsWith("$")}var my=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ms(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ms);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?my.test(t.field):Object.values(t).some(ms)}function yy(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return or(e)||ms(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var hy=["_pid","_rid","_idx"];function Rs(e){return[...new Set(e)]}function gy(e){switch(e.kind){case"APP":return Rs([...e.fieldCodes,...ap]);case"SUBTABLE":return Rs([...e.childFieldCodes,...hy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Rs(e.columns)}}function sp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:gy(t(r,i))}))}function Ay(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 Sy(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Ty(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Iy(e,t,n){let r=Ay(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:Sy(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Ty(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=yy(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&Ie(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function lp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Iy(r.name,t,n):{kind:"EXPRESSION"})}}function pt(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 wy(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(up(e,a,r.leftColumns),up(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",m=c.get(R);m?m.push(E):c.set(R,[E])}let p={};for(let E of r.leftColumns??Object.keys(e[0]??{}))p[E]="";let f=[];for(let E of t){let R=E[s]??"",m=c.get(R)??[];if(m.length>0)for(let y of m)f.push({...y,...E});else f.push({...p,...E})}return f}let l=new Map;for(let c of t){let p=c[s]??"",f=l.get(p);f?f.push(c):l.set(p,[c])}let d=[],u={};for(let c of r.rightColumns??Object.keys(t[0]??{}))u[c]="";for(let c of e){let p=c[a]??"",f=l.get(p)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...u})}return d}function up(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 by(e,t,n,r,i){return t===null?e:e.filter(o=>Q(t,o,n,r,i))}function mp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Lr(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function Py(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,p)=>Cy(c,l,i?.items[p],n,o)).join("\0"),u=a.get(d);u?u.push(l):a.set(d,[l])}a.size===0&&t.length===0&&mp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let u of t)u.type==="ARITH_KEY"?d[Ts(u.expr)]=String(ae(u.expr,l[0])):u.type==="FUNC_KEY"&&(d[Dt(u.expr)]=se(u.expr,l[0]));yp(d,l,n,r),s.push(d)}return s}function Ny(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},u=[];for(let p of e){let f=d;for(let E of l.items){let R=cp(E,p),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],u.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),d.rows=[],u.push(d.rows));let c=new Set(l.items.map(p=>p.canonicalId));for(let p of u){let f={...p[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,cp(R,p[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}yp(f,p,n,r),Cu(f,c),o.push(f)}}return o}function cp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function yp(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=Ie(i.func,i.distinct,i.arg),a=String(hs(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??kn(i.expr);e[o]=String(co(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Lr(i.expr)){let o=i.alias??Dt(i.expr),a=Is(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??Ze(i.expr),a=fo(i.expr,t,r);e[o]=String(de(a,e))}}function Cy(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=po(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function hs(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?hp(n,o):void 0,c=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let h=Vt(m,E,c);(h<0||h===0&&Ct(m,E)<0)&&(E=m)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let m=Vt(R,E,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let p=s?d:d.map(Number);switch(e){case"SUM":return p.reduce((f,E)=>f+E,0);case"AVG":return p.length===0?0:p.reduce((f,E)=>f+E,0)/p.length;case"MEDIAN":{if(p.length===0)return"";let f=[...p].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(p.length===0||f&&p.length<2)return"";let E=p[0],R=0,m=0,y=0;for(let g of p){let S=g-E;R++;let w=S-m;m+=w/R,y+=w*(S-m)}let h=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function Oy(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 co(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(hs(e.func,e.distinct,e.arg,e.separator,t,n));let r=co(e.left,t,n),i=co(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function kn(e){return jn(e)}function hp(e,t){if(e.type==="FIELD_REF")return t?.(Oy(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=>hp(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 Ly(e,t,n,r){return t===null?e:e.filter(i=>Q(t,i,n,void 0,r))}function _y(e,t,n,r,i){if(e.length===0)return e;let o=Dy(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 Dy(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(Fy(t,a,o))}function gs(e,t,n,r,i,o){return t.length===0?e:gp(e,t,n,r,i,o).rows.map(a=>a.row)}function gp(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(Ap.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:u},c)=>({s:ky(u,d,o)}))})),l=(d,u)=>vy(d,u,t,a);return s.sort(l),{rows:s,compare:l}}function vy(e,t,n,r){for(let i=0;i<n.length;i++){let o=Uy(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Uy(e,t,n){return Vt(e.s,t.s,n.semantics)}var Ap=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function ky(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function As(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=>lt(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=Ie(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=kn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Lr(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=Ze(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(de(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Ss(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>My(l,c))),u=s.get(d);u?u.push(l):s.set(d,[l])}for(let l of s.values()){let d=gp(l,a.orderBy,n,r,i),u=d.rows,c=1,p=1;for(let f=0;f<u.length;f++){f>0&&d.compare(u[f-1],u[f])!==0&&(c=f+1,p++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:p;u[f].row[a.alias]=String(E)}}}return e}function My(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return lt(e,n)}function Eo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function po(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return lt(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=Ie(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??kn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Lr(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=Ze(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(de(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function Fy(e,t,n={}){return e.map((r,i)=>{let o=po(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Ro(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let p=e.map(E=>{let R=Ep(dp(E),a),m=po(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[h,g]of m.entries)g!==null&&(y[h]=g);return y}),f=p.length>0?Object.keys(p[0]):[...i??[]];return{rows:p,columns:f}}let s=By(t),l=t.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"),d=l?null:xy(t,s),u=d??[];return l&&e.length===0?{rows:[],columns:Ky(t,s)}:{rows:e.map((p,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Ep(dp(p),a)),parentWildcardKeys:Object.keys(p).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let h=po(y,p,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[g,S]of h.entries)S!==null&&(E[g]=S),f===0&&u.push(g);break}case"FIELD":{let g=d?.[m]??y.alias??s.get(m)??y.field;E[g]=h,d===null&&f===0&&u.push(g);break}case"LITERAL_COL":{let g=d?.[m]??y.alias??`'${y.value}'`;E[g]=h,d===null&&f===0&&u.push(g);break}case"AGGREGATE":{let g=Ie(y.func,y.distinct,y.arg),S=d?.[m]??y.alias??g;E[S]=h,d===null&&f===0&&u.push(S);break}case"ARITH_AGG_COL":{let g=d?.[m]??y.alias??kn(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"ARITH_COL":{let g=d?.[m]??y.alias??Ts(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"CASE_COL":{let g=d?.[m]??y.alias??"case";E[g]=h,d===null&&f===0&&u.push(g);break}case"GROUPING_COL":{let g=d?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[g]=h,d===null&&f===0&&u.push(g);break}case"STRFUNC_COL":{let g=d?.[m]??y.alias??Dt(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"SCALAR_VALUE_COL":{let g=d?.[m]??y.alias??Ze(y.expr);E[g]=h,d===null&&f===0&&u.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=d?.[m]??y.alias??"(subquery)";E[g]=h,d===null&&f===0&&u.push(g);break}case"WINDOW_COL":{let g=d?.[m]??y.alias;E[g]=h,d===null&&f===0&&u.push(g);break}}}return E}),columns:u}}function xy(e,t){return e.map((n,r)=>Sp(n,r,t))}function Ky(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=Sp(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Sp(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??Ie(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??kn(e.expr);case"ARITH_COL":return e.alias??Ts(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??Ze(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 By(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=pp(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=pp(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 pp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function dp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Ts(e){let t=n=>n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?V(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?kn(n):Ze(n));return`${e.func}(${t.join(",")})`}function Ze(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return V(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Ze(e.left)}${e.op}${Ze(e.right)}`;case"CONCAT_OP":return`${Ze(e.left)}||${Ze(e.right)}`}}function $y(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Lr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>fp(t.result))||e.elseResult!==null&&fp(e.elseResult):!1}function fp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Lr(e){return e.args.some(t=>$y(t))}function Gy(e,t,n){if(e.type==="AGG_REF"){let r=hs(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=co(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Is(e,t,n):fo(e,t,n)}function fo(e,t,n){return e.type==="STRING_FUNC"?Is(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:fo(e.left,t,n),right:fo(e.right,t,n)}:e}function Is(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Gy(r,t,n))}}function Ep(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 Rp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function ys(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Vy(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(Ap.has(n.expr.func)?"number":"string")));return t}function ws(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:u,aggregateSortKindResolver:c,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y}=e,h=Vy(t.columns);for(let[U,I]of a??[])h.set(U,I);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(U=>pt(U,S));let b=ys(Rp(E?.get(S),S),void 0,g);for(let U of t.joins){let I=U.table.alias,k=(n.get(I)??[]).map(v=>pt(v,I)),L=ys(Rp(E?.get(I),I),void 0,k);g=wy(g,k,U,{leftColumns:b,rightColumns:L}),b=ys(b,L,g)}let O=e.residualWhere!==void 0?e.residualWhere:t.where;g=by(g,O,s,p,l);let P=re(t);if(P.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=Ny(g,m,t.columns,c,{maxGeneratedRows:5e4})}else(P.type==="PLAIN"||mp(t.columns))&&(g=Py(g,P.type==="PLAIN"?P.allItems:[],t.columns,c,P.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=Ly(g,t.having,d,u),g=Ss(g,t.columns,i,o,h),t.distinct&&(g=_y(g,t.columns,r,s,l)),g=gs(g,t.orderBy,i,o,h,As(t.columns,r,s,l)),g=Eo(g,t.limit,t.offset),Ro(g,t.columns,r,s,f,l,R)}function Tp(e,t){let n=[];for(let r of e){let i=bs(r.$id?.value),o=Wy(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,u]of Object.entries(r)){if(d===t)continue;let c=bs(u?.value);l[`_p.${d}`]={value:c}}for(let[d,u]of Object.entries(s.value??{}))l[d]={value:bs(u?.value)};n.push(l)}}return n}function Wy(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function bs(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 Ip(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function wp(e,t){let n=_r(e);for(let[r,i]of Object.entries(t))n[r]=_r(i);return n}function bp(e){let t=[...e.preErrors.map(i=>Ps(i)),...e.postImageErrors.map(i=>Ps(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Ps(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]=_r(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Ps(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 _r(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(_r(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=_r(a,t);return i}function Np(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&xe(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function Cs(e){return Np(e,!0)}function mo(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 Be(e,t,n,r,i=!0,o=!0,a=r){let s=Cs(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:ce(e.where)}),mo(e,e).forEach((l,d)=>Be(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Dr(e,t,n,r,i=!0){e.left.type==="UNION"?Dr(e.left,`${t}.left`,n,r,i):Be(e.left,`${t}.left`,n,r,!0,i),Be(e.right,`${t}.right`,n,r,!0,i)}function Pp(e,t,n,r){if(!r&&bt(e)){Be(Pt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Be(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Dr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Be(e.query,`${t}.main`,n,r,!1,!r,!0):Dr(e.query,`${t}.main`,n,!0,!1)}function Cp(e,t,n,r=!1){switch(e.type){case"SELECT":Be(e,t,n,r);return;case"UNION":Dr(e,t,n,r);return;case"WITH":Pp(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Pp(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Dr(e.query,`${t}.query`,n,!0,!1):Be(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Cp(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Cs(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ce(e.where)}),mo(e,e).forEach((o,a)=>Be(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Cs(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:ce(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=Np(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}mo(e,e).forEach((o,a)=>Be(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:mo(e,e).forEach((i,o)=>Be(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function yo(e,t){let n=new Map;for(let r of t){if(!xe(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Os(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Hy(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Un(t)}function Yy(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function jy(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 dn(e)?(n.some(r=>r!==ot)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(ot)||n.push(ot)):n.includes(xt)||n.push(xt),[...new Set(n)]}function Ns(e,t){let n=e.functionNames[0],r=dn(n)?ot:xt,i=jy(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Op(e,t){let n=[];Cp(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let u=Yy(i);return r.push(u),{hasRelativeDate:i.functionNames.some(z),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ns(i)}}if(i.kind==="SELECT"){let u=i.source,c=u.from.cteName===null&&!u.from.subtableCode&&u.joins.length===0,p=_e(u),f=await t.select(u),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&p==="SIMPLE"&&(u.orderBy.length===0||u.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&yo(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let w=await t.prefilterDecomposition(u);w?.eligible===!0&&Os(u,w)&&(m=w.plan,y=!0,R=!0)}let h;!R&&f.capability==="EXACT_PUSHDOWN"&&(h=gi({select:u,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,h&&(m=h.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let w=await t.joinServerFunctionPlan(u);w!==null&&Hy(u,w)&&(g=w,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...h?{fullScanExactPlan:h,allowForm:h.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(w=>w.functionNames.some(z)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ns(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&yo(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(u=>u.functionNames.some(z)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ns(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(z)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Ls(e){if(!e.allowed&&e.rejection){let t=dn(e.rejection.functionName)?ot:xt,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 _s(e,t,n={}){let r=be(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Ur(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=qy(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!zy(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=Xy(e.where,t),l=rr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,u=n.containsFunctions??yo,c=[];for(let g of a.leaves){let S=So(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let w;try{w=d(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!u(w,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(g)}let p=Jy(l.condition),f=new Set(c),E=go(e.where,f,p);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(g=>So(g));if(!u(R,[...new Set(m)])||!Qy(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Ao(e.where,f);if(y!==null&&Ur(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let g of m)h.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:c,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function qy(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}Ur(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Ur(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(So(o)===null)return;if(be(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Ur(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 So(e){return e.right.type==="KINTONE_FUNC"&&xe(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&xe(e.right.values[0].name)?e.right.values[0].name:null}function Ur(e){let t=[],n=r=>{if(r.type==="BINARY"&&So(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 zy(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 Jy(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 go(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=go(e.left,t,n),i=go(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=go(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var vr={type:"BOOLEAN",value:!0};function Ao(e,t){if(e.type==="BINARY"&&t.has(e))return vr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Ao(e.left,t)??vr,r=Ao(e.right,t)??vr;return ho(n)?ho(r)?null:r:ho(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Ao(e.expr,t)??vr;return ho(n)?vr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function ho(e){return e.type==="BOOLEAN"&&e.value}function Xy(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 Qy(e,t){let n=new Map;for(let r of t){if(!qn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function Lp(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function To(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function Zy(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function eh(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
4
+ `)throw new K(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new K(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
5
+ `){d==="\r"&&e[a+1]===`
6
+ `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function th(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new K(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new K(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Io(e,t){let n=eh(Zy(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}`)),th(r),i.length===0)throw new K("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new K(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var nh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),rh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),kr=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function _p(e,t,n){if(!nh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new kr;return rh.has(t??"")?r.map(i=>({code:i})):r}function dt(e,t,n,r){throw new K(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function Dp(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function vp(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
7
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
8
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let c="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ot("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){c+=E;continue}n>=e.length&&ot("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
- `,r:"\r",t:" "};if(R in m){c+=m[R];continue}R!=="u"&&ot(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||ot("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(y,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ot("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let N=0;N<4;N++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&ot("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),c+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?ot("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):c+=String.fromCharCode(h)}f||ot("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:c,...l});continue}let p=e.slice(n),u=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(u){for(let c=0;c<u.length;c++)o();t.push({kind:"number",lexeme:u,...l});continue}let d=/^(true|false|null)/.exec(p)?.[0];if(d){for(let c=0;c<d.length;c++)o();t.push({kind:"literal",value:d==="true"?!0:d==="false"?!1:null,...l});continue}ot(`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 po(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function fo(e){if(e.byteLength===0)throw new F("JSON source is empty.");let t=Jc(zc(e)),n=0,r=(p,u=t[n])=>{throw new F(`JSON ${p} (offset=${u.offset}, line=${u.line}, column=${u.column}).`)},i=(p,u)=>p.kind==="punct"&&p.value===u,o=p=>{let u=t[n];(u.kind!=="punct"||u.value!==p)&&r(`expected ${p}; found ${po(u)}`,u),n++},a=()=>{let p=t[n++];if(p.kind==="string")return p.value;if(p.kind==="number")return{kind:"number",lexeme:p.lexeme};if(p.kind==="literal")return p.value;if(p.kind==="punct"&&p.value==="{"){let u=new Map;if(i(t[n],"}"))return n++,u;for(;;){let d=t[n++];if(d.kind!=="string")return r(`object key must be a string; found ${po(d)}`,d);let c=d.value;u.has(c)&&r(`duplicate key ${JSON.stringify(c)}`,d),o(":"),u.set(c,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return u}if(p.kind==="punct"&&p.value==="["){let u=[];if(i(t[n],"]"))return n++,u;for(;;){u.push(a());let d=t[n];if(i(d,"]")){n++;break}o(",")}return u}return r(`expected a value; found ${po(p)}`,p)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${po(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 F("JSON source contains no records.");return l.forEach((p,u)=>{if(!(p instanceof Map))throw new F(`JSON record ${u+1} must be an object.`)}),l}var ty=new Set(["CHECK_BOX","MULTI_SELECT"]),Xc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function je(e,t,n){throw new F(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function ny(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function ry(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&je(n,t.code,"boolean is not accepted."),ny(e)){t.fieldType==="NUMBER"&&je(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&je(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)||je(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&je(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||je(n,t.code,"unsupported value type."),!ty.has(t.fieldType)&&!Xc.has(t.fieldType)&&je(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&je(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&je(n,t.code,"array elements must not contain duplicates."),Xc.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function as(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new F("JSON source is UTF-8 only.");let i=fo(t.bytes);if(i.length>r)throw new F(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new F("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let c of l.keys())o.has(c)||je(p+1,c,"unknown key (not declared in INTO).");let u={},d=new Set;for(let c of n)l.has(c.code)&&(d.add(c.code),u[c.code]=ry(l.get(c.code),c,p+1));a.push(u),s.push(d)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ss(e,t,n,r,i,o){let a=co(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new F(`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 F("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,h)=>[y,h]));for(let y of r)if(!l.has(y))throw new F(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let p=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new F("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new F(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],c=[],f=y=>a.rows.filter(h=>h[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,h]of a.columns.entries()){if(u.has(h)||h===o)continue;let g=p.get(h);if(g)d.push({column:h,reason:E(g),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)c.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new F(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let y of r){let h=p.get(y);if(!h)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let h=[],g={};for(let S of r){let N=y[l.get(S)];try{g[S]=qc(N,p.get(S)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof Pr))throw w;g[S]=N,h.push({field:S,code:w.code,message:w.message})}}return R.push(h),g}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:p.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:d,ignoredUnknownColumns:c}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((p,u)=>[p,l[u]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Nr=(e,t,n)=>{throw new F(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Qc(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new F("JSON source is UTF-8 only.");let o=fo(t.bytes);if(o.length>r)throw new F(`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 F("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,p)=>{let u=p+1;for(let E of l.keys())a.has(E)||Nr(u,E,"unknown key (not declared in INTO).");let d=new Map,c=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Nr(u,R,"object is not accepted for a top-level field."),d.set(R,m);continue}Array.isArray(m)||Nr(u,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),h=m.map((g,S)=>{g instanceof Map||Nr(u,R,`childRow=${S+1} must be an object.`);let N=g;for(let w of N.keys())y.has(w)||Nr(u,w,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new F(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:N}});c.set(R,h)}return{rowNumber:u,top:d,subtables:c,replacementTables:f}})}}function Zc(e,t,n,r,i,o){let a=co(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new F('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((c,f)=>[c,f]));if(o&&!s.has(o))throw new F(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(c=>c.kind==="FIELD"),p=n.filter(c=>c.kind==="SUBTABLE");for(let c of l)if(!s.has(c.field))throw new F(`ERR_IMPORT_MISSING_COLUMN: required header "${c.field}" is missing.`);for(let c of p){if(!c.rowIdSourceHeader||!s.has(c.rowIdSourceHeader))throw new F(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${c.subtableCode} is missing.`);for(let f of c.children)if(!s.has(f))throw new F(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let u=[],d;if(a.rows.forEach((c,f)=>{let E=f+2,R=c[0];if(R!==""&&R!=="*")throw new F(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new F(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:u.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,c[s.get(m.field)]])),subtables:new Map(p.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:c[s.get(o)]}:{}},u.push(d)}else if(d){for(let m of l){let y=c[s.get(m.field)];if(y!==""&&y!==d.top.get(m.field))throw new F(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=c[s.get(o)];if(m!==""&&m!==d.recordNumberSourceValue)throw new F(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new F(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of p){let y=c[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(S=>[S,c[s.get(S)]]));if(y===""&&[...h.values()].every(S=>S===""))continue;let g=d.subtables.get(m.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:h})}}),u.length===0)throw new F("CSV has no parent rows.");return{records:u}}var iy=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),oy=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function cs(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function rp(e,t,n,r,i){let o=new Map(n.filter(c=>!c.inSubtable).map(c=>[c.code,c])),a=new Map;for(let c of n)if(c.inSubtable&&c.subtableCode){let f=a.get(c.subtableCode);f||a.set(c.subtableCode,f=new Map),f.set(c.code,c)}let s=t.filter(c=>c.kind==="FIELD"),l=t.filter(c=>c.kind==="SUBTABLE");for(let c of s)ep(c.field,o.get(c.field),void 0);for(let c of l){let f=o.get(c.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${c.subtableCode} does not exist.`);let E=a.get(c.subtableCode)??new Map;for(let R of c.children)ep(R,E.get(R),c.subtableCode)}let p=new Map(l.map(c=>[c.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),u=e.records.map(c=>ay(c,s,l,o,a,r,i,p)),d=u.flatMap(c=>[...c.errors]);return{parents:u,errors:d,invalidParentRows:new Set(u.filter(c=>!c.valid).map(c=>c.parentRow)),tableCounts:p}}function ay(e,t,n,r,i,o,a,s){let l=[],p={};for(let c of t)e.top.has(c.field)&&us(e.top.get(c.field),r.get(c.field),o,p,c.field,l,ls(e,a,c.field));let u={};if(a==="INSERT")for(let c of r.values())c.fieldType==="SUBTABLE"||c.writable===!1||e.top.has(c.code)||tp(c,o,u,l,ls(e,a,c.code));let d=new Map;for(let c of n){if(!e.subtables.has(c.subtableCode))continue;let f=s.get(c.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(c.subtableCode)){f.childRows++;let m=l.length,y={},h=i.get(c.subtableCode);for(let g of c.children){let S=h.get(g),N=ls(e,a,g,c.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?us(R.values.get(g),S,o,y,g,l,N):tp(S,o,y,l,N)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}d.set(c.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:d,replacementTables:e.replacementTables,errors:l}}function ep(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&&oy.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function tp(e,t,n,r,i){let o=kt(e.defaultValue)?"":e.defaultValue;us(o,e,t,n,e.code,r,i,!kt(e.defaultValue))}function us(e,t,n,r,i,o,a,s=!1){let l=sy(e),p=Ie(l,t,n);p.ok?r[i]={value:ly(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function sy(e){return np(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:np(t)?t.lexeme:t):e}function np(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function ly(e,t){return iy.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ls(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 ps=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function ds(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":uy(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 uy(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 fs(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 ip(e,t){return fs(e,t,"DROP")}function op(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 ap(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,p])=>{let u=a?.record[l]?.value,d=Array.isArray(u)?u.length:0;return{table:l,existingRows:d,inputRows:p.length,addRows:p.length,deleteRows:d}});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 cy(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function sp(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 lp(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],p=l===void 0?void 0:r.get(l),u=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:u};let d=new Map,c=[];for(let f of o.replacementTables){let E=cy(p.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],h=0,g=0,S=0,N=m.map((w,_)=>{let O=y[_]??{};return w.rowId&&R.has(w.rowId)?(h++,{rowId:w.rowId,record:O}):(w.rowId&&((i.get(w.rowId)??[]).some(P=>P.parentId!==l||P.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),S++),g++,{record:O})});d.set(f,N),c.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:h,addRows:g,deleteRows:E.length-h,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:u.length===0,top:o.top,subtables:d,tables:c,errors:u}})}var Es="#__import_source";function up(e){return{...e,from:{appId:0,alias:null,cteName:Es}}}function py(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Rs(e,t){let n=e.map(py),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 dy="\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",_n=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"}},Se=new WeakMap;function Dp(e){return Se.get(e)}var vn=new WeakMap,No=new WeakMap,cp=new WeakMap,fy=1;function Ey(e,t){if(t)return t;let n=cp.get(e);return n||(n=`client:${fy++}`,cp.set(e,n)),n}async function Ns(e,t,n={}){let r=Date.now(),i=Ey(t,n.cacheContext),o=zh(e,n.enableImport===!0),a=Ry(),s=my(t,a),l={aborted:!1},p=vp(s,l,!yy(o)||ec(o)),u=await gy(o,p,n,i);a.elapsedMs=Date.now()-r;let d={...hy(u,l),metrics:a};if(u.type==="SELECT"){let c=Se.get(u);c&&Se.set(d,c)}return d}function Ry(){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,elapsedMs:0}}function my(e,t){return{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 pp=Symbol("searchAbortFailClosed");function vp(e,t,n){return n&&e[pp]?e:{...e,...n?{[pp]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new _n;return i}}}function yy(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function hy(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(dy),{...e,warnings:[...n]}}async function Cs(e,t,n){return Hc(e,{select:r=>kr(r,t,n),dml:r=>kp(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await Un(r,t,n);return os(r,i)},joinServerFunctionPlan:async r=>{let i=await Lo(r,t,n),o=Oo(r,i);return o===null?null:(Nn(o.joinPlan)&&ks.set(r,o),o.joinPlan)}})}async function gy(e,t,n,r){let i=await Cs(e,t,r);e.type!=="EXPLAIN"&&Yc(i);let o=gs(e);if(o!==null&&!Nh(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(oi("phase15b",e),wl("phase15b",e),mn(e),e.type!=="EXPLAIN"&&await Cy(e,t,r),e.type==="IMPORT")return Th(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 bp(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 Zp(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 Sy(e,t,n,r);case"SELECT":return wt(e,t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Hp(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Hy(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Ah(e,t,n,r);case"INSERT_SELECT":return rd(e,t,n,r);case"UPSERT":return Bh(e,t,n,r);case"UPSERT_SELECT":return sd(e,t,n,r);case"UPDATE":return bp(e,t,n,r);case"DELETE":return Kh(e,t,n,r);case"REORDER":return Yh(e,t,n,r);case"SHOW_APPS":return ld(t);case"DESCRIBE":return ud(e,t,r);case"EXPLAIN":return eg(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ue(n.dmlMaxRows,"dmlMaxRows",ut):ut,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be):be,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return wy(e,t,n,r)}}var Os=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Ls=["$id","$err_subtable","$err_field","$err_code","$err_count"];function _s(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 Ay(e=!1){let t=e?Ls:Os;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:x(n==="$id"||n==="$err_count"?"number":"string")}]))}async function Sy(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Ty(e,t,n,r)}async function Ty(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(I=>!I.inSubtable).map(I=>[I.code,I])),a=new Set(i.filter(I=>I.inSubtable).map(I=>I.code)),s=Da(e,i),l=e.checkGroups??[],p=gn(l);for(let I of p){if(I.field!=="$id"&&!o.has(I.field)&&!a.has(I.field))throw pe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${I.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(I.field!=="$id"&&!o.has(I.field)&&a.has(I.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${I.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([I,k])=>[I,k.fieldType]));u.set("$id","RECORD_NUMBER"),zt(e,u);let d=_s(e.where),c=[...new Set(["$id",...s.map(I=>I.subtableCode??I.field.code),...d,...p.map(I=>I.field)])];for(let I of d){if(I!=="$id"&&!o.has(I)&&!a.has(I))throw new Error(`ArgumentError: WHERE field ${I} does not exist in APP${e.appId}.`);if(I!=="$id"&&!o.has(I)&&a.has(I))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${I} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let f=s.some(I=>I.field.fieldType==="NUMBER")?await Je(e.appId,t,r):void 0,E=I=>I.field==="$id"?q({fieldType:"__ID__"}):o.get(I.field)?.semantics??(o.has(I.field)?q(o.get(I.field)):void 0),R=we(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(R)}).`);let m=new Map([...o].map(([I,k])=>[I,k.fieldType])),y=new Map([...o.values()].flatMap(I=>I.optionOrder?[[I.code,new Set(Object.keys(I.optionOrder))]]:[])),h=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:dn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:y,allowKlike:!1}),g=h===null?"":$(h),N=(await ge(t.getRecords,e.appId,g,c,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(I=>({id:String(I.$id?.value??""),record:I,flat:it(I,null)})).filter(I=>e.where===null||J(e.where,I.flat,k=>u.get(k.field))),w=[],_=new Map,O=new Map,v=new Set,P=0,L=I=>{if(v.add(I.id),P+=1,e.summary){let H=JSON.stringify([I.id,I.subtable??"",I.field,I.code]),oe=O.get(H);oe?oe.$err_count=String(Number(oe.$err_count)+1):O.set(H,{$id:I.id,$err_subtable:I.subtable??"",$err_field:I.field,$err_code:I.code,$err_count:"1"});return}let k=JSON.stringify([I.id,I.subtable??"",I.field,I.code,I.message]),K=_.get(k);K?(K.$err_count=String(Number(K.$err_count)+1),I.subrow!==void 0&&(K.$err_subrow=`${K.$err_subrow},${I.subrow}`,K.$err_subrow_id=`${K.$err_subrow_id},${I.subrowId??""}`)):_.set(k,{$id:I.id,$err_field:I.field,$err_code:I.code,$err_message:I.message,$err_value:I.value,$err_subtable:I.subtable??"",$err_subrow:I.subrow===void 0?"":String(I.subrow),$err_subrow_id:I.subrowId??"",$err_count:"1"})},U=s.filter(I=>!I.subtableCode),A=new Map;for(let I of s){if(!I.subtableCode)continue;let k=A.get(I.subtableCode)??[];k.push(I),A.set(I.subtableCode,k)}for(let I of N){for(let k of U){let K=I.record[k.field.code]?.value,H=Ie(K,k.field,f);H.ok||L({id:I.id,field:k.field.code,code:H.code,message:H.message,value:lr(K,k.field.fieldType)})}for(let[k,K]of A){let H=I.record[k]?.value;if(Array.isArray(H))for(let oe=0;oe<H.length;oe++){let de=H[oe];for(let D of K){let M=de.value?.[D.field.code]?.value,W=Ie(M,D.field,f);if(!W.ok){let se=Ui(k,oe,de);L({id:I.id,field:D.field.code,code:W.code,message:W.message,value:lr(M,D.field.fieldType),...se})}}}}for(let k of Ti(l,I.flat,K=>u.get(K.field)))L({id:I.id,field:"",code:"ERR_CHECK",message:k.message,value:""})}if(e.summary)w.push(...O.values());else for(let I of _.values()){let k=Number(I.$err_count);I.$err_subtable!==""&&k>=2&&(I.$err_message=`${I.$err_message}\uFF08${k}\u884C: ${I.$err_subrow}\uFF09`),w.push(I)}let C={type:"SELECT",columns:[...e.summary?Ls:Os],rows:w,rowCount:w.length,validateStats:{errorRecords:v.size,errorCount:P}};return Se.set(C,Ay(e.summary===!0)),C}var Tt=1e4;function It(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,p)=>l!==n[p])||!Iy(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 Iy(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!mi(i.semantics,r.semantics))return!1}return!0}function gs(e){if(Array.isArray(e)){for(let t of e){let n=gs(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=gs(n);if(r!==null)return r}}return null}var Ur=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},On=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function wy(e,t,n,r,i){let o=await Eo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?x("number"):x("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Eo(e.low,t,n,r,i),p=await Eo(e.high,t,n,r,i);if(!vt(">=",o,l,a)||!vt("<=",o,p,a))throw new Ur(`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 Eo(e.right,t,n,r,i);if(!vt(e.op,o,s,a))throw new Ur(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Eo(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return G(e);case"STRING":return e.value;case"ARITH":return String(As(e));case"SCALAR_SUBQUERY":try{return await by(e.query,t,n,r,i)}catch(o){throw o instanceof On?new Ur(o.message):o}}}async function by(e,t,n,r,i){let{query:o,probed:a}=Py(e),s=await Dr(o,t,n,r,i);if(s.columns.length!==1)throw new On(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new On("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 On(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Py(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 As(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=As(e.left),n=As(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 Un(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(c=>c.table)],a=i||He(e.where)?[...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))]:[],s=new Map(await Promise.all(a.map(async c=>{let f=await Q(c,t,n);return[c,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,p=c=>{if(Array.isArray(c)){c.forEach(p);return}if(c===null||typeof c!="object")return;let f=c;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(p)}};p(e.where),p(e.having);for(let c of e.columns)c.type==="CASE_COL"&&p(c.expr);let u=new Map;await Promise.all([...s].map(async([c,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await $s(c,t,n);R&&u.set(c,R)}));let d=(c,f,E)=>{if(f==="$id")return hn(q({fieldType:"__ID__"}),c.appId,"$id");if(E&&c.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(c.appId)?.get(ye(c,f));if(!R)return;let m=R.semantics??q(R),y=R.fieldType==="STATUS"&&u.has(c.appId)?{...m,optionOrder:u.get(c.appId)}:m;return hn(y,c.appId,R.code)};return c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return d(e.from,c.field,!1);let E=o.find(R=>ve(R)===c.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(c.field)?.semantics??x("string"):d(E,c.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(c.field)?.semantics??x("string"):d(e.from,c.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(c.field)?.semantics:d(E,c.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>mo(E,c.field)!==void 0))return f.length>1?x("string"):void 0}}function Ds(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=>He(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Up(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Be(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=x("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=xs(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?x("string"):x("number"):r.type==="STRFUNC_COL"?i=Ht(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function kr(e,t,n,r){if(e.where===null)return we(null,()=>{});let i=await Un(e,t,n,r);return we(e.where,i)}function Vt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function go(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function kp(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=He(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?we(null,()=>{}):we(e.where,o=>{if(o.field==="$id")return q({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?q(a):void 0)})}async function Ln(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await kp(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new z(`WHERE predicate cannot be represented by kintone REST (${Vt(r)})`)}async function wt(e,t,n,r,i,o=!1,a=!1){let s;if(await Co(e,t,r,i),_y(e))return s=Uy(e),o&&Se.set(s,await Ts(e,s.columns,t,r,i,a)),s;let l=await vs(e,t,r,i);await cd(e,t,n,r,i);let p=await kr(e,t,r,i);if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(p)}).`);let u=Ce(e),d,c;if(p.capability==="SUPERSET_PREFILTER"){let g=await Un(e,t,r,i),S=os(e,g);S.eligible&&is(e,S)&&(d=S.plan)}if(d===void 0&&p.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=$(e.where)}catch{g=null}c=li({select:e,selectMode:u,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:le(e.where)})??void 0,c&&(d=c.prefilterPlan)}let f=p.capability==="EXACT_PUSHDOWN"?u:"FULL_SCAN",E=await Fr(e,t,r,i),R=go(e)?(e.orderMode==="KINTONE_NATIVE"?Ar:gr)({stmt:e,staticMode:f,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:ue(e.where)}):null;await My(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Mp(e,n,R),h=c!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?vp(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await ky(e,h,m.effectiveOptions,r,R,E):s=await Wy(e,h,m.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&d===void 0,E,d,l)}catch(g){Fp(m,g)}return o&&Se.set(s,await Ts(e,s.columns,t,r,i,a)),s}async function vs(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(p=>p.table)],o=await Promise.all(i.map(async p=>{if(p.cteName!==null){let f=r?.get(p.cteName);if(!f)throw new Error(`InternalError: materialized schema ${p.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let u=await Q(p.appId,t,n);if(!p.subtableCode)return{kind:"APP",fieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)};let d=u.filter(f=>f.inSubtable&&f.subtableCode===p.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(d.length>0?d:u.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Ic(e,(p,u)=>o[u]),s=e.groupBy,l=wc(s,e.columns,a);return Ny(e,s,l),l}function Ny(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],p=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let u=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${u}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.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 ${a.name} reached runtime planning.`)})}var Mr=new WeakMap;async function Cy(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await Co(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Oy(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let d=await Q(u,t,n);return[u,new Map(d.map(c=>[c.code,c]))]}))),s=(u,d)=>{if(d==="$id")return"$id";let c=ye(u,d);return a.get(u.appId)?.has(c)?c:null},l=(u,d)=>{if(u.cteName===null)return!1;let c=r?.get(u.cteName);return c?c.columns.includes(d):!0},p=(u,d,c,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,c.field)!==null).length,R=i.some(y=>l(y,c.field)),m=ve(u);return{canonicalId:`source:${d}:APP${u.appId}:${f}`,directKey:c.tableAlias&&m?`${c.tableAlias}.${c.field}`:c.field,unqualifiedBridgeKey:E===1&&!R?c.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let f=i.findIndex(m=>ve(m)===u.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,u.field);if(R===null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${E.appId}.`);return p(E,f,u,R)}let d=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,u.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),c=i.filter(f=>l(f,u.field));if(d.length+c.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(d.length===1&&c.length===0){let f=d[0];return p(f.table,f.tableIndex,u,f.code)}throw c.length===1?new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Co(e,t,n,r){Mr.delete(e);let i=Z(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Oy(e,t,n,r),s=Jl(e,a,ql);s&&Mr.set(e,s)}function Ly(e){let t=[...e].join(", ");return`${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.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"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 Mp(e,t,n){let r=n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR"?Ot({...e,orderBy:[]}):Ot(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Fp(e,t){throw e.reasons.size>0&&t instanceof Pe?new Pe(Ly(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function dp(e,t){try{return await t()}catch(n){Fp(e,n)}}function st(e){return e?.type==="BOOLEAN"&&e.value===!1}function _y(e){return e.from.appId===0&&e.from.cteName===ct}function Ao(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Ao(e.left)||Ao(e.right):e.type==="STRING_FUNC"?Us(e):!1}function Dy(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Cr(e)}function Cr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Us(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Cr(e.left)||Cr(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"?Ao(n):Cr(n))):!1}function Us(e){return e.args.some(t=>Dy(t))}function vy(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(Ao(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Us(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Cr(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 Uy(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.");vy(e);let t=Ja([{}],e.columns),{rows:n,columns:r}=no(t,e.columns),i=to(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function ky(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Gp(e):e,s=ai(a),l=i?.kind==="CANONICAL_LOCAL"?Lt(e,e.from):s.fields,p=await Fs(e,t,r),u=Ks(e,p),d=e.columns.some(_=>_.type==="CASE_COL")?await Un(e,t,r,void 0,Ds(e)):void 0,c=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&y!==null&&y<=c&&!ue(e.where)?y:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let _=await Ac({client:t,app:s.app,fields:s.fields,query:Va(e),offset:e.offset??0,limit:e.limit});g=_.records,_.cleanupWarning&&f.add(_.cleanupWarning)}else if(m)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let _=e.where?$(e.where):"";g=await ge(t.getRecords,s.app,_,l,{parallel:R,maxRecords:c,stopAfter:h,onLimit:E,onTruncate:O=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${O} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${O} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=g.map(_=>it(_,null));m||(S=qa(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,za(e.columns,void 0,u.row,d)),S=to(S,e.limit,e.offset));let{rows:N,columns:w}=no(S,e.columns,void 0,u.row,void 0,d);return{type:"SELECT",rows:N,columns:w,rowCount:N.length,warnings:[...f]}}async function My(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let p of s)l.add(p)};if(t==="SIMPLE"){let a=ai(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Lt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(c=>!Tc(c));if(l.length===0)continue;let p=await Q(a,n,r);if(p.length===0)continue;let u=new Set(p.map(c=>c.code)),d=l.filter(c=>!u.has(c));if(d.length>0)throw new Error(`ArgumentError: unknown field code(s): ${d.join(", ")} (APP${a})`)}}function xp(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?qn(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?qn(e.where,{tableAlias:e.from.alias}):null}var ks=new WeakMap;function Oo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(d=>d.type!=="INNER"))return null;let n=[e.from,...e.joins.map(d=>d.table)];if(n.some(d=>d.alias===null||d.cteName!==null||!!d.subtableCode))return null;let r=n.map(d=>({alias:d.alias,appId:d.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(d.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(d.appId)})),i=dc(e.where,r),o=fc(i,r),a=new Map,s=new Map;for(let[d,c]of o.fetchQueriesByAlias)s.set(d,c);for(let d of o.items)s.has(d.targetAlias)||s.set(d.targetAlias,Pn(d,r)),a.set(d.targetAlias,d.predicate);let l=e.from.alias,p=a.get(l)??null,u=new Map(a);return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:p,joinConditions:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Lo(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let p=r.get(s);p?p.push(l):r.set(s,[l])};if(i(e.from.appId,xp(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=qn(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[p,u]=await Promise.all([he(s,t,n),Jy(s,t,n)]),d=Fy(l).filter(c=>p.get(c)==="STATUS");if(d.length>0){let c=await Bs(s,t,n);if(c.enable&&c.states&&c.states.length>0){let f=new Set(c.states.map(E=>E.name));for(let E of d)u.set(E,f)}}return[s,p,u]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Fy(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 at(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"&&So(e.left.expr,t),e.right.type==="CASE_VALUE"&&So(e.right.expr,t);return;case"LOGICAL":at(e.left,t),at(e.right,t);return;case"NOT":case"GROUP":at(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function So(e,t){for(let n of e.branches)at(n.condition,t)}function xy(e){let t=[];at(e.where,t),at(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&So(n.expr,t);return t}function ve(e){return e.alias??e.cteName}function Kp(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ve(n)===t)}function Ms(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Fs(e,t,n){let r=xy(e);if(r.length===0)return new Map;let i=new Set,o=Ms(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=Kp(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 he(s,t,n)]));return new Map(a)}function Be(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Bp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Bt(t,n)}function Bt(e,t){if(e.type==="FIELD_REF"){t.push(Be(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Bt(e.left,t),Bt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Bt(e.left,t),Bt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Bt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&Bt(n,t)}function To(e,t){if(e.type==="AGG_REF"){Bp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(To(e.left,t),To(e.right,t))}function Ss(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?To(n,t):Or(n,t)}function Or(e,t){if(e.type==="STRING_FUNC"){Ss(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Or(e.left,t),Or(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"?Ss(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Or(r,t)}}function Ky(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Bp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?To(n.expr,t):n.type==="STRFUNC_COL"?Ss(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Or(n.expr,t);return t}var By=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function $y(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":By.has(e.fieldType)?"string":void 0}async function $p(e,t,n,r){let i=Ky(e.columns);if(i.length===0)return;let o=new Set,a=Ms(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=Kp(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,p=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...p].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await $s(f,t,n);R&&l.set(f,R)}));let u=[e.from,...e.joins.map(f=>f.table)],d=(f,E)=>{let R=f.semantics??q(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=u.find(y=>ve(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(m.appId)?.get(ye(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??x("string");E=s.get(e.from.appId)?.get(ye(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let g=r?.get(y.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let h=s.get(y.appId)?.get(ye(y,f.field));return h?[d(h,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?u.find(m=>ve(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return d(E,R?.appId??e.from.appId)}}function ye(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function mo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function qe(e,t){let n=e.semantics??q(e);return{sortKind:$y(e),fieldType:e.fieldType,semantics:t===void 0?n:hn(n,t,e.code)}}function Gp(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 Y(e){return{sortKind:e,semantics:x(e)}}function ze(){return{semantics:x("string","KSQL_UNKNOWN")}}function Vp(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function $t(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:q({fieldType:"__ID__"})};if(e==="_rid")return Y("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Y("number")}var Gy=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Ht(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return Gy.has(e.func)?Y("number"):Y("string")}function Dn(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?Vp():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?Ht(e):e.type==="FIELD_REF"?t(Be(e.field))??ze():e.type==="FIELD"?t(e)??ze():ze()}function _o(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&&mi(n(r.semantics),n(t.semantics)))?e.every(i=>mi(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Vp("KSQL_MIXED_UNSUPPORTED"):ze()}function xs(e,t){if(e.type==="FIELD_REF")return t(Be(e.field))??ze();if(e.type==="FIELD")return t(e)??ze();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return Y("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return Y("string");if(e.type==="STRING_FUNC")return Ht(e);let n=e.branches.map(r=>Dn(r.result,t));return e.elseResult&&n.push(Dn(e.elseResult,t)),_o(n)}function Vy(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Ts(e,t,n,r,i,o=!1){let a=new Map;Vy(e)&&await Promise.all(Ms(e).map(async R=>{if(a.has(R.appId))return;let m=await Q(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),p=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?qe(g,e.from.appId):void 0}let y=s.find(g=>ve(g)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let h=a.get(y.appId)?.get(ye(y,R.field));return h?qe(h,y.appId):$t(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(ye(e.from,R.field));return y?qe(y,e.from.appId):$t(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(y.appId)?.get(ye(y,R.field)),g=h?qe(h,y.appId):$t(R.field);return g?[g]:[]});return m.length===1?m[0]:void 0},u=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&ve(y)!==R.tableAlias)return!1;let h=ye(y,R.field);return a.get(y.appId)?.has(h)===!0||$t(R.field)!==void 0});return m.length===1?m[0].appId:void 0},d=(R,m)=>{let y=u(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},c=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Be(R),y=d(p(m),m);y&&c.set(R,y)}return c}if(f)for(let R of t){let m=Be(R),y=d(p(m),m);y&&c.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let h;if(R.type==="FIELD"){let g=Be(R.field);h=d(p(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?h=Y("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?h=Y("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(h=xs(R.arg,p));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")h=Y("number");else if(R.type==="GROUPING_COL")h=Y("number");else if(R.type==="LITERAL_COL")h=Y("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?h=Ht(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?h=Y("number"):g.type==="FIELD"?h=p(g):h=Y("string")}else if(R.type==="STRFUNC_COL")h=Ht(R.expr);else if(R.type==="WINDOW_COL")h=Y("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Dn(S.result,p));R.expr.elseResult&&g.push(Dn(R.expr.elseResult,p)),h=_o(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=ze());h&&c.set(y,h)}),c}function Wp(e,t){let n=Se.get(e),r=Se.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],p=l===void 0?void 0:r?.get(l);if(s&&p){let u=_o([s,p]),d=s.publicSourceApp===p.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:c,...f}=u;i.set(o,d===void 0?f:{...f,publicSourceApp:d})}else(s||p)&&i.set(o,ze())}),i}function Ks(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let p=n.find(u=>ve(u)===s.tableAlias);return!p||p.cteName!==null?void 0:mo(p,s.field)??t.get(p.appId)?.get(ye(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:mo(e.from,s.field)??t.get(e.from.appId)?.get(ye(e.from,s.field));if(n.some(p=>p.cteName!==null))return;let l=r.flatMap(p=>{let u=mo(p,s.field)??t.get(p.appId)?.get(ye(p,s.field));return u?[u]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function Wy(e,t,n,r,i,o=!0,a,s,l){let p=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([Br(e.where,t,n,r,i),Br(e.having,t,n,r,i)]);let[c,f,E]=await Promise.all([Lo(e,t,r),Fs(e,t,r),$p(e,t,r,i)]),R=Ks(e,f),m=await Un(e,t,r,i,He(e.having)||Ds(e)),y=Up(e,m),h=ks.get(e);if(h&&!Nn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let g=h??Oo(e,c)??En(e,c);na(g);let S="joinPlan"in g?g:null,N=S&&Nn(S.joinPlan)?S:null,w=t,_=g.mainCondition,O=g.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let v=s?s.prefilterWhere:N?null:_,P=N?.queriesByAlias.get(e.from.alias)??"",L=await dd(e.columns,t,n,r,i),U=st(e.where),A=U?Promise.resolve([]):Lr(e,e.from,w,p,d,!0,n.onLimitReached??"error",u,v,N?!1:o,l,P),b=[],C=[];for(let W of e.joins){if(U){b.push({join:W,promise:Promise.resolve([])});continue}let se=W.table.alias?N?.queriesByAlias.get(W.table.alias)??"":"",ae=N?null:W.table.alias?O.get(W.table.alias)??null:null;ae!==null||se!==""?b.push({join:W,promise:Lr(e,W.table,w,p,d,!1,n.onLimitReached??"error",u,ae,!0,l,se)}):C.push(W)}let I=a?Promise.resolve(a):Fr(e,t,r,i);I.catch(()=>{});let k=await A,K=new Map;K.set(e.from.alias,k);for(let{join:W,promise:se}of b)K.set(W.table.alias,await se);await Promise.all(C.map(async W=>{let ae=await Jp(e,W,K,w,p,d,n.onLimitReached??"error",u,null,l,"")??await Lr(e,W.table,w,p,d,!1,n.onLimitReached??"error",u,null,!0,l,"");K.set(W.table.alias,ae)}));let{optionOrders:H,sortKinds:oe,semantics:de}=await I,{rows:D,columns:M}=Za({tables:K,stmt:e,scalarCache:L,optionOrders:H,sortKinds:oe,orderSemantics:de,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??g.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Mr.get(e),plainGroupByPlan:l});return{type:"SELECT",rows:D,columns:M,rowCount:D.length,warnings:[...u]}}async function Hp(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Hp(e.left,t,n,r,i,o):wt(e.left,t,n,r,void 0,i,o),wt(e.right,t,n,r,void 0,i,o)]),l=a.columns,p=s.columns,u=s.rows.map(E=>{let R={};return l.forEach((m,y)=>{R[m]=E[p[y]??m]??""}),R}),d=[...a.rows,...u],c=e.all?d:Yp(d,l),f={type:"SELECT",rows:c,columns:l,rowCount:c.length};return i&&Se.set(f,Wp(a,s)),f}function Yp(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function Hy(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Et(e))return wt(Rt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await ld(t):s.query.type==="DESCRIBE"?l=await ud(s.query,t,r):l=await Yt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Se.get(l)})}return Yt(e.query,t,n,a,r,o)}async function Yt(e,t,n,r,i,o=!1){if(e.type==="UNION"){let[l,p]=await Promise.all([Yt(e.left,t,n,r,i,o),Yt(e.right,t,n,r,i,o)]),u=l.columns,d=p.columns,c=p.rows.map(m=>{let y={};return u.forEach((h,g)=>{y[h]=m[d[g]??h]??""}),y}),f=[...l.rows,...c],E=e.all?f:Yp(f,u),R={type:"SELECT",rows:E,columns:u,rowCount:E.length};return o&&Se.set(R,Wp(l,p)),R}if(!(e.from.cteName!=null&&e.from.cteName!==ct||e.joins.some(l=>l.table.cteName!=null)))return wt(e,t,n,i,r,o,!1);let s=await Yy(e,t,n,r,i);return o&&Se.set(s,await Ts(e,s.columns,t,i,r)),s}async function Yy(e,t,n,r,i){await Co(e,t,i,r);let o=Mr.get(e),a=await vs(e,t,i,r),s=new Set,l=D=>{if(D.alias!==null||D.cteName===null)return D;let M=ve(D);return s.add(M),{...D,alias:M}};e={...e,from:l(e.from),joins:e.joins.map(D=>({...D,table:l(D.table)}))};let p=new Set;for(let D of[e.from,...e.joins.map(M=>M.table)]){let M=ve(D);if(M!==null){if(p.has(M))throw new Error(`ArgumentError: effective alias ${M} is used by multiple tables.`);p.add(M)}}let u=D=>{let M=r.get(D);if(!M)throw new Error(`ArgumentError: materialized source ${D} is not available.`);return M};for(let D of[e.from,...e.joins.map(M=>M.table)])D.cteName!==null&&u(D.cteName);let d=n.maxRecords??1e4,c=new Set,f=n.fetchParallel??1;await Promise.all([Br(e.where,t,n,i,r),Br(e.having,t,n,i,r),cd(e,t,n,i,r)]);let E=await kr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(E)}).`);let R=await Fr(e,t,i,r),m=go(e)?(e.orderMode==="KINTONE_NATIVE"?Ar:gr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:d,hasKlike:ue(e.where)}):null,y=Mp(e,n,m),h=y.effectiveOptions,[g,S,N]=await Promise.all([Lo(e,t,i),Fs(e,t,i),$p(e,t,i,r)]),w=Ks(e,S),_=await Un(e,t,i,r,He(e.having)||Ds(e)),O=Up(e,_),v=Oo(e,g)??En(e,g);na(v);let P=t,L=await dd(e.columns,t,h,i,r),U=Promise.resolve(R);U.catch(()=>{});let A=new Map,b=new Map;if(e.from.cteName!=null){let D=u(e.from.cteName);A.set(e.from.alias,D.rows.map(fp)),b.set(e.from.alias,D.columns)}else{let D=await dp(y,()=>Lr(e,e.from,P,d,f,!0,h.onLimitReached??"error",c,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,D)}let C=e.joins.map(D=>dp(y,async()=>{if(D.table.cteName!=null){let M=u(D.table.cteName);A.set(D.table.alias,M.rows.map(fp)),b.set(D.table.alias,M.columns)}else{let M=D.table.alias?v.joinConditions.get(D.table.alias)??null:null,se=await Jp(e,D,A,P,d,f,h.onLimitReached??"error",c,M,a)??await Lr(e,D.table,P,d,f,!1,h.onLimitReached??"error",c,M,!0,a);A.set(D.table.alias,se)}}));await Promise.all(C);let{optionOrders:I,sortKinds:k,semantics:K}=await U,H=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:oe,columns:de}=Za({tables:A,stmt:e,scalarCache:L,optionOrders:I,sortKinds:k,orderSemantics:K,fieldTypeResolver:w.row,fieldSemanticsResolver:_,havingFieldTypeResolver:w.having,havingFieldSemanticsResolver:O,aggregateSortKindResolver:N,appliedKlikes:v.appliedKlikes,sourceColumns:H,tableColumns:b,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a});return{type:"SELECT",rows:oe,columns:de,rowCount:oe.length,warnings:[...c]}}function fp(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Lr(e,t,n,r,i,o,a,s,l=null,p=!0,u,d=""){let c=Lt(e,t,u),f=y=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let y=o&&p?kl(e,t.appId).query:"",h=[l!==null?$(l):"",d].filter(w=>w!==""),g=h.length>1?h.map(w=>`(${w})`).join(" and "):h[0]??"",S=y&&g?`(${y}) and (${g})`:y||g;return(await Me(n.getRecords,t.appId,S,c,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Me(n.getRecords,t.appId,"",c,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return xc(m,t.subtableCode)}var jp=50;function jy(e){let t=Ne(e);return t!==null?JSON.stringify(t):e}function Is(e){return JSON.stringify(e)}function jt(e,t){return JSON.stringify(e.map((n,r)=>t[r]?jy(n):n))}function Gr(e,t){let n=e.raw.get(Is(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(jt(t,e.numericKey))}async function Vr(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},u=(m,y,h)=>{let g=m.get(y);(g===void 0||h>g)&&m.set(y,h)},d=(m,y)=>{u(p.raw,Is(m),y),l.some(Boolean)&&u(p.normalized,jt(m,l),y)},c=new Set,f=[],E=new Set;for(let m of n){let y=Is(m);E.has(y)||(E.add(y),m.some(h=>h==="")?f.push(m):c.add(m[0]))}let R=["$id",...t];for(let m of kn([...c],jp)){let y=`${t[0]} in (${m.map(Io).join(",")})`,h=await ge(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&d(t.map(N=>qp(g[N]?.value)),S)}}for(let m of f){let y=t.map((g,S)=>`${g} = ${Io(m[S])}`).join(" and "),h=await ge(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});h.length!==0&&d(m,qy(h))}return p}function qy(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 qp(e){return typeof e=="string"?e:e==null?"":String(e)}function Io(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function kn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var zp=50,zy=6,Ep=zp*zy;async function Jp(e,t,n,r,i,o,a,s,l=null,p,u=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let d=t.on.left.tableAlias,c=t.on.right.tableAlias;if(!d||!c)return null;let f,E,R;if(d===t.table.alias&&c!==t.table.alias)f=c,E=t.on.right.field,R=t.on.left.field;else if(c===t.table.alias&&d!==t.table.alias)f=d,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let y=new Set;for(let O of m){let v=O[E]?.value,P=qp(v).trim();P.length>0&&y.add(P)}let h=[...y];if(h.length===0)return[];if(h.length>Ep)return s.add(`JOIN\u30AD\u30FC\u304C ${h.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Ep} \u4EF6\uFF09\u3002`),null;let g=Lt(e,t.table,p),S=O=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${O} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${O} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},N=kn(h,zp),w=[],_=new Set;for(let O of N){let v=`${R} in (${O.map(Io).join(",")})`,L=[l!==null?$(l):"",u].filter(A=>A!=="").reduce((A,b)=>`(${A}) and (${b})`,v),U=await Me(r.getRecords,t.table.appId,L,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let A of U.records){let b=`${A.$id?.value??""}:${JSON.stringify(A)}`;_.has(b)||(_.add(b),w.push(A))}}return w}var Rp=new Map,mp=new Map,yp=new Map,hp=new Map,gp=new Map,Ap=new Map;function Mn(e,t,n){return e.get(t)?.get(n)}function Fn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function Q(e,t,n){let r=Mn(hp,n,e);if(r)return r;let i=t.getFields(e);return Fn(hp,n,e,i),i}async function Je(e,t,n){let r=Mn(Ap,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Fn(Ap,n,e,i),i}async function Bs(e,t,n){let r=Mn(gp,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Fn(gp,n,e,i),i}async function $s(e,t,n){let r=await Bs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function he(e,t,n){let r=Mn(Rp,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Fn(Rp,n,e,o),o}async function ws(e,t,n){let r=Mn(mp,n,e);if(r)return r;let i=await Q(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 Fn(mp,n,e,o),o}async function Jy(e,t,n){let r=await ws(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Sp(e,t,n){let r=Mn(yp,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Fn(yp,n,e,o),o}function Xy(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 Qy(e,t,n,r){let i=Xy(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(d=>d.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))].map(async d=>{let c=await Q(d,t,n);return[d,new Map(c.map(f=>[f.code,f]))]}))),l=d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(d.field);return R?qe(R,e.from.appId):void 0}let f=o.find(R=>ve(R)===d.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(d.field);let E=s.get(f.appId)?.get(ye(f,d.field));return E?qe(E,f.appId):$t(d.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(d.field);let f=s.get(e.from.appId)?.get(ye(e.from,d.field));return f?qe(f,e.from.appId):$t(d.field)}let c=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(d.field)?m.columnMeta?.get(d.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(ye(f,d.field)),R=E?qe(E,f.appId):$t(d.field);return R?[R]:[]});return c.length>1&&a.add(d.field),c.length===1?c[0]:void 0},p=new Map;for(let d of e.columns){if(!("alias"in d)||!d.alias)continue;let c;if(d.type==="FIELD")c=l(Be(d.field));else if(d.type==="ARITH_COL"||d.type==="ARITH_AGG_COL"||d.type==="WINDOW_COL")c=Y("number");else if(d.type==="GROUPING_COL")c=Y("number");else if(d.type==="LITERAL_COL"||d.type==="SCALAR_VALUE_COL")c=Y("string");else if(d.type==="STRFUNC_COL")c=Ht(d.expr);else if(d.type==="SCALAR_SUBQUERY_COL")c=ze();else if(d.type==="CASE_COL"){let f=d.expr.branches.map(E=>Dn(E.result,l));d.expr.elseResult&&f.push(Dn(d.expr.elseResult,l)),c=_o(f)}else d.type==="AGGREGATE"&&(d.func==="MIN"||d.func==="MAX"||d.func==="MODE"?d.arg.type!=="WILDCARD"&&(c=xs(d.arg,l)):c=d.func==="GROUP_CONCAT"?Y("string"):Y("number"));c?.semantics&&p.set(d.alias,c.semantics)}let u=new Map;for(let d of i){let c=p.get(d)??l(Be(d))?.semantics;if(!c){let E=Be(d);E.tableAlias===null&&a.has(E.field)&&u.set(d,q({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=c;if(c.fieldType==="STATUS"&&c.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Bs(c.source.appId,t,n);E.enable&&E.states!==null&&(f={...c,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}u.set(d,f)}return u}async function Fr(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([Zy(e,t,n),eh(e,t,n),Qy(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Zy(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 ws(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await ws(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}async function eh(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 Sp(a.appId,t,n);for(let[l,p]of s.entries())r.has(l)||r.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Sp(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}function Xp(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 th=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function nh(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||th.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function $e(e,t,n,r){let i=await Q(e,n,r);return nh(e,t,i),i}async function lt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Je(e,r,i):void 0}function qt(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),p=o[s]?.value??"",u=Ie(p,l,r);if(!u.ok)throw new Error(`DmlValidationError: ${u.code} ${u.message} (row=${a+1}, field=${s})`);let d=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(c=>typeof c=="object"&&c!==null&&"code"in c);o[s]={value:d?p:u.value}}})}async function rh(e,t,n,r,i){let o=await $e(e.appId,e.fields,t,r),a=await cr({statement:e,fieldInfos:o,dmlMaxRows:Ue(n.dmlMaxRows,"dmlMaxRows",ut),dmlMaxSubtableRows:Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),statementNumber:i,loadNumberPrecision:()=>Je(e.appId,t,r)});return Uh(e,a,o)}async function ih(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Qp(e,t,n,r,i);return Mh(e,a,o)}async function Qp(e,t,n,r,i){let o=await $e(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=od(e),l=new Set;for(let m of s){let y=jt(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let p=await Vr(e.appId,e.keyFields,s,t,n,a),u=s.map(m=>Gr(p,m)),d=new Map,c=[...new Set(u.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of kn(c,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of y.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&d.set(g,h)}}let E=u.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:d.get(m)}})),R=await ju({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ue(n.dmlMaxRows,"dmlMaxRows",ut),dmlMaxSubtableRows:Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),statementNumber:i,loadNumberPrecision:()=>Je(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function oh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await $e(e.appId,e.fields,t,r),o=await cr({statement:e,fieldInfos:i,dmlMaxRows:Ue(n.dmlMaxRows,"dmlMaxRows",ut),dmlMaxSubtableRows:Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),loadNumberPrecision:()=>Je(e.appId,t,r)}),a=Ma(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Do(a),applyDiagnostic:a}))throw new te("INSERT",o.guards.parentRows);let s=await Qu(o,t,a);return{...s,diagnostic:_e(a,s)}}async function ah(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Qp(e,t,n,r,1),o=Fa(i);if(n.confirm){let s=Do(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new te("UPDATE",i.guards.parentRows)}let a=await Zu(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:_e(o,a)}}function sh(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 Do(e,t=!0){let n=e.branches.find(c=>c.branch==="insert"),r=e.branches.find(c=>c.branch==="update"),i=e.branches.flatMap(c=>c.targets),o=sh(n?Ro(n):[],r?Ro(r):[]),a=lh(i),s=e.branches.reduce((c,f)=>c+(f.parentRows??0),0),l=i.filter(c=>c.targetKind==="SUBTABLE").reduce((c,f)=>c+(f.changedCount??0),0),p=o.reduce((c,f)=>c+f.appendRows,0),u=o.reduce((c,f)=>c+f.removeRows,0),d={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:p,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:u,deletedParentRows:e.branches.reduce((c,f)=>c+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(c=>c.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...d,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(c=>c.targetKind==="SUBTABLE").reduce((c,f)=>c+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let c=Ro(n),f=Ro(r);return{...d,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:c.reduce((E,R)=>E+R.appendRows,0),tables:c},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return d}function Ro(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Wt(t,"APPEND"),r=Wt(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Wt(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function lh(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:Wt(n,"ADD"),removedValues:Wt(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 Zp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return rh(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return ih(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await id(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Gs(e,t,n,r,i,o)).result}var wo=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Gs(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(b=>b.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let u=e.type==="UPDATE"?e.assignments.map(b=>b.field):e.fields,d=await $e(e.appId,u,t,r);e.type==="UPDATE"&&await Ln(e,t,r);let c=new Map(d.map(b=>[b.code,b])),f=await lt(e.appId,u,d,t,r),E=Ve(d,p),R=Kc(E),m=(await uh(e,l,t,n,r,i,c,e.type==="UPDATE"?R:void 0)).sort((b,C)=>b.rowNumber-C.rowNumber),y=m.filter(b=>b.mode==="update"),h=e.type==="UPDATE"?dh:e.type.startsWith("UPSERT")?b=>fh(b,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=y.length>0&&g!==void 0,N=new Map;if(S){Oa(y,u,d);let b=await g({appId:e.appId,candidates:y,fields:R}),C=new Map;for(let I of y){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let k=b.get(I.targetId);if(!k)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let K=Bc(k,I.record??{});C.set(I.rowNumber,K)}f===void 0&&[...C.values()].some(I=>Mt(I,E))&&(f=await Je(e.appId,t,r));for(let I of y){let k=C.get(I.rowNumber);if(!k)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);N.set(I.rowNumber,Ft(k,E,f,o,I.rowNumber,l))}}let w=La(m,l,p,u,d,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:_,invalidRows:O,invalidRowNumbers:v}=w;if(S){let b=new Map(w.candidateResults.map(C=>[C.rowNumber,C]));_=[],v=new Set;for(let C of m){let I=b.get(C.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${C.rowNumber}.`);if(C.mode==="create"){let H=[...I.preErrors,...I.builtInErrors,...I.checkErrors];_.push(...H),H.length>0&&v.add(C.rowNumber);continue}let k=N.get(C.rowNumber);if(!k)throw new Error(`InternalError: prepared post-image validation is missing for row ${C.rowNumber}.`);let K=$c({rowNumber:C.rowNumber,setFields:u,normalizedPostImage:k.normalizedRecord,preErrors:I.preErrors,postImageErrors:k.errors,checkErrors:I.checkErrors});C.record=K.writeRecord,_.push(...K.errors);for(let H of K.invalidRowNumbers)v.add(H)}O=v.size}let P=[...p,...Sn],L={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-O,invalidRows:O,errorCount:_.length,columns:P,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let b of p){if(b==="$id"){U.set(b,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:q({fieldType:"RECORD_NUMBER"})});continue}let C=c.get(b);C&&U.set(b,qe(C,e.appId))}let A=new Set(["$err_statement","$err_row"]);for(let b of Sn)U.set(b,Y(A.has(b)?"number":"string"));return vn.set(L,U),{result:L,candidates:m,invalidRowNumbers:v,columnMeta:U}}async function Tp(e,t,n,r,i,o){let a=await Gs(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");It(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Tt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new wo(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(p.length,E))throw new te(E,p.length)}let u={affectedRows:p.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<p.length;R+=100){let m=await t.postRecords({app:e.appId,records:p.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...u}}if(e.type==="UPDATE"){let E=p.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...u}}let d=p.filter(E=>E.mode==="create"),c=p.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<d.length;E+=100){let R=await t.postRecords({app:e.appId,records:d.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<c.length;E+=100)await t.putRecords({app:e.appId,records:c.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:c.length,...u}}async function uh(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ph(e,n,r,i,o,s);let l,p,u,d,c;if(e.type==="INSERT"||e.type==="UPSERT")Ip(e,e.fields),c=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),zt(e,c),l=e.values.map(S=>S.map((N,w)=>N.type==="CASE_VALUE"?gt(N.expr,{},a.get(e.fields[w])?.fieldType):N));else{let S=await Ws.materialize(e,n,r,i,o,[...a.values()]),N=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!N&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(N&&new Set(S.columns).size!==S.columns.length)throw pe("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");Ip(e,S.columns),p=S.rows,u=S.importPresence,d=S.importRowErrors;let w=S.columnMeta;c=new Map(S.columns.map(_=>{let O=w?.get(_),v=O?.fieldType??(O?.semantics?.compareMode==="number"||O?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[_,v]})),zt(e,c),l=S.rows.map(_=>S.columns.map(O=>_[O]??""))}let f=l.map((S,N)=>({rowNumber:N+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,_)=>u&&!u[N]?.has(w)?[]:[[w,S[_]]])),preErrors:[...d?.[N]??[]],record:{},evaluationRow:p?.[N]??Object.fromEntries(e.fields.map((w,_)=>[w,Ge(S[_])])),evaluationFieldTypes:c}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,N])=>[S,N.fieldType])),R=f.map(S=>e.keyFields.map(N=>Ge(S.payload.get(N)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let N=jt(S,m);y.set(N,(y.get(N)??0)+1)}let h=No.has(e);if(h&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await Vr(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,N)=>{let w=R[N],_=Gr(g,w);S.mode=_===void 0?"create":"update",_!==void 0&&(S.targetId=_),e.keyFields.forEach((O,v)=>{w[v]===""&&S.preErrors.push({field:O,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${O} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(y.get(jt(w,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Vs(e){return e.checkGroups?gn(e.checkGroups):[]}function Ip(e,t){let n=new Set(t);for(let r of Vs(e)){if(r.tableAlias!==null)throw pe(`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 pe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var ch=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function zt(e,t){if(e.checkGroups)for(let n of Eu(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(ch.has(i??""))throw pe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function ph(e,t,n,r,i,o){if(e.from)return Rh(e,e.from,t,n,r,i,o);await pd(e.assignments,t,n,r);let a=await he(e.appId,t,r),s=ed(e,a);zt(e,bs(a,e.appId));let l,p=new Map,u=new Map;if(bi(e)){let d=fa(e),c=[...new Set([...d.fields,...s,...o??[]])],f=await Me(t.getRecords,d.app,d.query,c,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=yo(f.records),p=u,l=Ra(e,f.records,a).flatMap(E=>E.records)}else{let d=tr(e);if(s.length>0){let c=[...new Set(["$id",...s,...o??[]])],f=await Me(t.getRecords,d.app,d.query,c,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=yo(f.records),p=u,l=nr(e,[...p.keys()],a).flatMap(E=>E.records)}else if(o){let c=await Me(t.getRecords,d.app,d.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=yo(c.records),l=nr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let c=await Bi(t.getRecords,d.app,d.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=nr(e,c.ids,a).flatMap(f=>f.records)}}return l.sort((d,c)=>d.id-c.id).map((d,c)=>({rowNumber:c+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(d.id)],...e.assignments.map(f=>[f.field,d.record[f.field]?.value??""])]),preErrors:[],record:d.record,targetId:d.id,validationSnapshot:u.get(d.id),evaluationRow:Eh(p.get(d.id),e.appId),evaluationFieldTypes:bs(a,e.appId)}))}function yo(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 dh(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 fh(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of kn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let p=l.$id?.value,u=Number(p);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(u))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${u}.`);if(o.has(u))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${u}.`);o.set(u,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 ed(e,t){if(e.from)return[];let n=new Set;for(let r of Vs(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw pe(`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 pe(`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 Eh(e,t){if(!e)return{};let n=it(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function bs(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Rh(e,t,n,r,i,o,a){let s=await yd(e,t,n,i,o);zt(e,s.evaluationTypes);let l=await td(e,t,n,r,i,o,a),p=await he(e.appId,n,i),u=ya(e,l,p).flatMap(f=>f.records),d=new Map(l.map(f=>[Number(f.target.$id?.value),f])),c=a?yo(l.map(f=>f.target)):new Map;return u.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:c.get(f.id),evaluationRow:yg(d.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var mh=jp,yh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function td(e,t,n,r,i,o,a){let s=await hh(e,t,n,i),l=await yd(e,t,n,i,o),p=[...new Set(e.assignments.filter(N=>N.value.type==="SOURCE_FIELD").map(N=>N.value.type==="SOURCE_FIELD"?N.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...p])],d=await gh(t,u,p,n,r,i,o),c=new Map,f=new Map;for(let N of d){if(!Object.prototype.hasOwnProperty.call(N,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=wp(N[t.joinKeyField],s,"source");if(c.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);c.set(w,N),f.set(w,String(N[t.joinKeyField]).trim())}if(c.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...xh(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":tr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],h=new Set,g=0;for(let N of kn([...f.values()],mh)){let w=`${t.targetJoinField} in (${N.map(Io).join(",")})`,_=m?`(${w}) and (${m})`:w,O=await Me(n.getRecords,e.appId,_,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=O.records.length,g>E)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let v of O.records){let P=v.$id?.value;if(typeof P!="string"||P==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(P)||(h.add(P),y.push(v))}}let S=[];for(let N of y){let w=N[t.targetJoinField]?.value,_=wp(w,s,"target");if(_===null)continue;let O=c.get(_);O!==void 0&&S.push({target:N,source:O})}return S}async function hh(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await Q(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 gh(e,t,n,r,i,o,a){if(e.cteName!==null){let u=a?.get(e.cteName);if(!u)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let d of t)if(!u.columns.includes(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);return u.rows}let s=await he(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 u of n){if(u!=="$id"&&!s.has(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);let d=u==="$id"?"RECORD_NUMBER":s.get(u);if(yh.has(d??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${d} (${u}).`)}return(await Me(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>it(u,null))}function wp(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=Ne(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Wr(e,t,n,r,i){let o=await Gs(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let d=o.result.errors[0];throw new Error(`DmlValidationError: ${d.$err_code} ${d.$err_message} (row=${d.$err_row}, field=${d.$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 te(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let d=[];for(let c=0;c<a.length;c+=100){let f=await t.postRecords({app:e.appId,records:a.slice(c,c+100).map(E=>E.record)});d.push(f.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}if(e.type==="UPDATE"){let d=a.map(c=>({id:c.targetId,record:c.record}));for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPDATE",updatedCount:d.length}}let l=a.filter(d=>d.mode==="create"),p=a.filter(d=>d.mode==="update").map(d=>({id:d.targetId,record:d.record})),u=0;for(let d=0;d<l.length;d+=100){let c=await t.postRecords({app:e.appId,records:l.slice(d,d+100).map(f=>f.record)});u+=c.ids.length}for(let d=0;d<p.length;d+=100)await t.putRecords({app:e.appId,records:p.slice(d,d+100)});return{type:"UPSERT",insertedCount:u,updatedCount:p.length}}async function Ah(e,t,n,r){if(e.applyBlocks?.length)return oh(e,t,n,r);if(e.checkGroups?.length)return Wr(e,t,n,r);if(e.subtableCode)return $h(e,t,n,r);let i=await $e(e.appId,e.fields,t,r),o=await lt(e.appId,e.fields,i,t,r),a=await he(e.appId,t,r),s=wi(e,a);qt(s.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of s){let u=await t.postRecords(p);l.push(u.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Sh(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:ct},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Th(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=jc(e.source.sourceName,n.importSource);if(e.targets?.some(d=>d.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 D=new Set(e.targets.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!D.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter(W=>W.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=e.targets,c=await Q(e.appId,t,r),f=d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=c.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await Je(e.appId,t,r):void 0,R=await uo(o,new Map),m=e.source.kind==="JSON"?Qc(e.source,R,d,n.maxRecords??1e4):Zc(e.source,R,d,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=rp(m,d,c,E,y);if(e.source.kind==="CSV")return Ih(e,m,h,c,t,n,i);cs(h,e.rejectLimit);let g=[...new Set(d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],S=ds(h.errors,g),N=[...g,...ps],w=h.invalidParentRows.size,_={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-w,invalid:w,mutationCandidates:h.parents.filter(D=>D.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},O={type:"VALIDATION",operation:y,validatedRows:h.parents.length,validRows:h.parents.length-w,invalidRows:w,errorCount:S.length,columns:N,errors:S,importDetail:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&It(i,e.validationErrorTable,N,S,n.tempTableMaxRows??Tt,new Map),e.validateOnly)return O;if(op(m),h.errors.length>0&&!e.onErrorSkip){let D=h.errors[0];throw new Error(`DmlValidationError: ${D.code} ${D.message} (row=${D.parentRow}, field=${D.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");It(i,e.errorTable,N,S,n.tempTableMaxRows??Tt,new Map)}let v=h.parents.filter(D=>D.valid),P=new Map(c.map(D=>[D.code,D.fieldType])),L=v.map(()=>{});if(e.keyFields){for(let ae of e.keyFields)if(!e.fields.includes(ae))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${ae}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let D=e.keyFields.map(ae=>P.get(ae)==="NUMBER"),M=new Set,W=v.map(ae=>e.keyFields.map(Zt=>String(ae.top[Zt]?.value??"")));for(let ae of W){let Zt=jt(ae,D);if(M.has(Zt))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");M.add(Zt)}let se=await Vr(e.appId,e.keyFields,W,t,n,P);W.forEach((ae,Zt)=>{L[Zt]=Gr(se,ae)})}let U=d.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),A=new Map,b=L.filter(D=>D!==void 0);for(let D of kn([...new Set(b)],100)){let M=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let W of M.records){let se=Number(W.$id?.value),ae=Number(W.$revision?.value);Number.isFinite(se)&&A.set(se,{id:se,...Number.isFinite(ae)?{revision:ae}:{},record:W})}}let C=ap(v,L,A),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:C.length,insertedParents:C.filter(D=>D.mode==="INSERT").length,updatedParents:C.filter(D=>D.mode==="UPDATE").length,hasDeletes:C.some(D=>D.tables.some(M=>M.deleteRows>0)),parents:C.map(D=>({parentRow:D.parentRow,mode:D.mode,...D.targetId===void 0?{}:{targetId:D.targetId},tables:D.tables}))};if(C.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(C.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new te(e.keyFields?"UPDATE":"INSERT",C.length)}let k=D=>new Map(Object.entries(D).map(([M,W])=>[M,W.value])),K=D=>ip(k(D.top),new Map([...D.subtables].map(([M,W])=>[M,W.map(se=>({values:k(se)}))]))),H=C.filter(D=>D.mode==="INSERT"),oe=C.filter(D=>D.mode==="UPDATE"),de=[];for(let D=0;D<H.length;D+=100){let M=await t.postRecords({app:e.appId,records:H.slice(D,D+100).map(K)});de.push(M.ids)}for(let D=0;D<oe.length;D+=100)await t.putRecords({app:e.appId,records:oe.slice(D,D+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:K(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:de.flat().length,updatedCount:oe.length,affectedRows:C.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:de,insertedCount:de.flat().length,affectedRows:C.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return wh(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Sh(),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};No.set(s,l);let p=d=>(l.audit&&Object.assign(d,{importAudit:l.audit}),d);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=await Zp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&It(i,s.validationErrorTable,d.columns,d.errors,n.tempTableMaxRows??Tt,vn.get(d)??new Map),p(d)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let d=await(s.type==="UPSERT_SELECT",Tp(s,t,n,r,i,1));return p(d)}let u=await(s.type==="UPSERT_SELECT"?sd(s,t,n,r,i):rd(s,t,n,r,i));return p(u)}async function Ih(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");sp(t.records);let s=t.records.map(A=>A.recordNumberSourceValue??""),l=Rs(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],u=[...new Set(r.filter(A=>!A.inSubtable&&A.fieldType==="SUBTABLE").map(A=>A.code))],d=await ge(i.getRecords,e.appId,"",["$id","$revision",...u],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),c=new Map,f=new Map;for(let A of d){let b=Number(A.$id?.value),C=Number(A.$revision?.value);if(Number.isFinite(b)){c.set(b,{id:b,...Number.isFinite(C)?{revision:C}:{},record:A});for(let I of u){let k=A[I]?.value;if(Array.isArray(k)){for(let K of k)if(K.id){let H=f.get(K.id)??[];H.push({parentId:b,table:I}),f.set(K.id,H)}}}}}let E=l.normalized.map(A=>A===null?void 0:Number(A)),R=n.parents.map((A,b)=>{let C=[...A.errors];for(let k of l.errors[b])C.push({operation:"UPDATE",parentRow:A.parentRow,field:k.field,code:k.code,message:k.message,sourceValues:t.records[b].top});let I=E[b];return I!==void 0&&!c.has(I)&&C.push({operation:"UPDATE",parentRow:A.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`,sourceValues:t.records[b].top}),{...A,valid:C.length===0,errors:C}}),m=lp(t.records,R,E,c,f),y=m.flatMap(A=>[...A.errors]),h=new Set(m.filter(A=>!A.valid).map(A=>A.parentRow)),g={...n,parents:R,errors:y,invalidParentRows:h};cs(g,e.rejectLimit);let S=m.filter(A=>A.valid),N=m.flatMap(A=>A.tables),w=(A,b)=>N.filter(C=>C.table===A).reduce((C,I)=>C+Number(I[b]),0),_=Object.fromEntries(p.map(A=>[A,{existingRows:w(A,"existingRows"),inputRows:w(A,"inputRows"),updateRows:w(A,"updateRows"),addRows:w(A,"addRows"),deleteRows:w(A,"deleteRows"),rowIdNotFound:w(A,"rowIdNotFound")}])),O={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(A=>A.tables.some(b=>b.deleteRows>0)),totalDeleteRows:S.flatMap(A=>A.tables).reduce((A,b)=>A+b.deleteRows,0),rowIdNotFound:S.flatMap(A=>A.tables).reduce((A,b)=>A+b.rowIdNotFound,0),invalidParents:h.size,parents:S.map(A=>({parentRow:A.parentRow,mode:"UPDATE",targetId:A.targetId,tables:A.tables}))},v=[...new Set(e.targets.flatMap(A=>A.kind==="FIELD"?[A.field]:A.children))],P=ds(y,v),L=[...v,...ps];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&It(a,e.validationErrorTable,L,P,o.tempTableMaxRows??Tt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:P.length,columns:L,errors:P,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:h.size,mutationCandidates:S.length},tables:_,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:O.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let A=y[0];throw new Error(`DmlValidationError: ${A.code} ${A.message} (row=${A.parentRow}, field=${A.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");It(a,e.errorTable,L,P,o.tempTableMaxRows??Tt,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:O}))throw new te("UPDATE",S.length)}let U=A=>new Map(Object.entries(A).map(([b,C])=>[b,C.value]));for(let A of S){let b=fs(U(A.top),new Map([...A.subtables].map(([C,I])=>[C,I.map(k=>({...k.rowId?{rowId:k.rowId}:{},values:U(k.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:A.targetId,...A.revision===void 0?{}:{revision:A.revision},record:b}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:O}}async function wh(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 $e(e.appId,e.fields,n,i),s=await lt(e.appId,e.fields,a,n,i),l=await uo(t,new Map),p=ss(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),u=p.recordNumberSourceValues;if(!u)throw new Error("InternalError: record-number source values were not materialized.");let d=Rs(u,e.recordNumberSourceHeader),c=new Set,f=[...new Set(d.normalized.filter(O=>O!==null))];for(let O=0;O<f.length;O+=100){let v=f.slice(O,O+100),P=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let L of P.records){let U=L.$id?.value;typeof U=="string"&&U!==""&&c.add(U.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(O=>[O.code,O])),R=new Map(e.fields.map(O=>[O,E.get(O)?.fieldType??"SINGLE_LINE_TEXT"])),m=p.rows.map((O,v)=>{let P=d.normalized[v],L=[...p.importRowErrors?.[v]??[],...d.errors[v]];return P!==null&&!c.has(P)&&L.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...P!==null&&c.has(P)?{targetId:Number(P)}:{},payload:new Map([[e.recordNumberSourceHeader,u[v]],...e.fields.map(U=>[U,O[U]??""])]),preErrors:L,record:{},evaluationRow:O,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],h=La(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),g=[...y,...Sn],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:g,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:p.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&It(o,e.validationErrorTable,g,h.errors,r.tempTableMaxRows??Tt,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let O=h.errors[0];throw new Error(`DmlValidationError: ${O.$err_code} ${O.$err_message} (row=${O.$err_row}, field=${O.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(It(o,e.errorTable,g,h.errors,r.tempTableMaxRows??Tt,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new wo(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let N=m.filter(O=>!h.invalidRowNumbers.has(O.rowNumber));if(r.confirm&&!await r.confirm(N.length,"UPDATE"))throw new te("UPDATE",N.length);let w=N.map(O=>({id:O.targetId,record:O.record}));for(let O=0;O<w.length;O+=100)await n.putRecords({app:e.appId,records:w.slice(O,O+100)});let _={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(_,{insertedCount:0,importAudit:p.importAudit}),_}async function bh(e,t,n,r,i,o){let a=No.get(e);if(!a){let R=i&&i.size>0?await Yt(e.select,t,n,i,r,!0):await wt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Se.get(R)}}let s=await uo(a.handle,a.cache),l=n.maxRecords??1e4,p=new Map((o??[]).map(R=>[R.code,R])),u=e.fields.map(R=>({code:R,fieldType:p.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),d=a.source.kind==="JSON"?as(a.source,s,u,l):ss(a.source,s,l,e.fields,o);if(a.audit=d.importAudit,a.source.kind==="JSON"||!a.source.projection)return d;let c=up(a.source.projection),f=new Map(i??[]);f.set(Es,d);let E=await Yt(c,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Se.get(E)}}var Ws={materialize:bh};function nd(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 rd(e,t,n,r,i){if(e.checkGroups?.length)return Wr(e,t,n,r,i);let o=await $e(e.appId,e.fields,t,r),a=await lt(e.appId,e.fields,o,t,r),s=await Ws.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(nd(s),p.length!==e.fields.length){let f=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new te("INSERT",l.length);let u=await he(e.appId,t,r),d=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let h=f[p[y]]??"";R[m]={value:Xp(h,u.get(m))}}),R});d.forEach(f=>qt([f],e.fields.filter(E=>E in f),o,a));let c=[];for(let f=0;f<d.length;f+=100){let E=d.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});c.push(R.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}async function bp(e,t,n,r,i){if(e.applyBlocks?.length)return id(e,t,n,r);if(e.checkGroups?.length&&st(e.where)){let E=await $e(e.appId,e.assignments.map(m=>m.field),t,r);await lt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await he(e.appId,t,r);return ed(e,R),zt(e,bs(R,e.appId)),await Ln(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Wr(e,t,n,r,i);if(e.subtableCode)return await Ln(e,t,r),Gh(e,t,n,r);let o=await $e(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await lt(e.appId,a,o,t,r);if(await Ln(e,t,r),st(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Fh(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await pd(e.assignments,t,n,r);let p=await he(e.appId,t,r);if(bi(e)){let E=fa(e),m=(await Me(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Ra(e,m,p);if(qt(y.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new te("UPDATE",m.length);for(let h of y)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let u=tr(e),c=(await Bi(t.getRecords,u.app,u.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=nr(e,c,p);if(qt(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new te("UPDATE",c.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:c.length}}async function id(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Ze(e.where))return Ph(e,t,n,r,i);let o=await Q(e.appId,t,r),a=nt(e,o),s=Ni(e,o),l=Ia(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(p.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(p.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let u=Number(p.records[0].$id?.value);if(u!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${u} does not match requested $id ${l}.`);_i(p.records[0]);let d=_u({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),c=Ve(o,e.assignments.map(N=>N.field)),f=Mt(d.postImage,c)?await Je(e.appId,t,r):void 0,E=Ft(d.postImage,c,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Ue(n.dmlMaxRows,"dmlMaxRows",ut),m=Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),y=d.parentRows>R||d.changedSubtableRows>m;if(e.validateOnly){let N=dr({plans:[d],records:ar(d).records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),w={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:xr(N.branches[0]),guards:Kr(N.branches[0]),deletedRows:{total:d.tables.reduce((_,O)=>_+O.deletedRows,0),parentRows:d.tables.some(_=>_.deletedRows>0)?1:0},diagnostic:N};return vn.set(w,vo(E.columns,o,e.appId)),w}if(d.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${d.parentRows}) exceed dmlMaxRows (${R}).`);if(d.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${d.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=Oi(d,E.normalizedRecord),g=ar(h),S=dr({plans:[h],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let N=Do(S,!1);if(!await n.confirm(d.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:N,applyDiagnostic:S}))throw new te("UPDATE",d.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:d.parentRows,diagnostic:_e(S,{successfulChunks:1,successfulParents:d.parentRows})}}async function Ph(e,t,n,r,i){let o=Ue(n.dmlMaxRows,"dmlMaxRows",ut),a=Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),s=await Q(e.appId,t,r),l=nt(e,s),p;if(bo(e))p=await Lh(e,t,n,s,r);else{let f=Ni(e,s),E=tr(e).query,R=o+1;p=await ge(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&p.length>o)throw new Error(`ArgumentError: APPLY parent rows (${p.length}) exceed dmlMaxRows (${o}).`);let u=await ki({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Je(e.appId,t,r)});if(e.validateOnly)return kh(e,u,s);Pl("phase15b",e);let d=dr(u);if(n.confirm){let f=Do(d);if(!await n.confirm(u.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:d}))throw new te("UPDATE",u.guards.parentRows)}let c=await Xu(u,t,d);return{...c,diagnostic:_e(d,c)}}function bo(e){return(e.applyBlocks?.length??0)>0&&!Ze(e.where)&&(pt(e.where)||ue(e.where))}function Nh(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&bo(t)&&ue(t.where)}var Ch=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
8
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&dt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&dt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in m){p+=m[R];continue}R!=="u"&&dt(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||dt("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(y,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&dt("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let w=0;w<4;w++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&dt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?dt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(h)}f||dt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),u=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"number",lexeme:u,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}dt(`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 wo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function bo(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=vp(Dp(e)),n=0,r=(d,u=t[n])=>{throw new K(`JSON ${d} (offset=${u.offset}, line=${u.line}, column=${u.column}).`)},i=(d,u)=>d.kind==="punct"&&d.value===u,o=d=>{let u=t[n];(u.kind!=="punct"||u.value!==d)&&r(`expected ${d}; found ${wo(u)}`,u),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let u=new Map;if(i(t[n],"}"))return n++,u;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${wo(c)}`,c);let p=c.value;u.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,c),o(":"),u.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return u}if(d.kind==="punct"&&d.value==="["){let u=[];if(i(t[n],"]"))return n++,u;for(;;){u.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return u}return r(`expected a value; found ${wo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${wo(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,u)=>{if(!(d instanceof Map))throw new K(`JSON record ${u+1} must be an object.`)}),l}var ih=new Set(["CHECK_BOX","MULTI_SELECT"]),Up=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function et(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function oh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function ah(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&et(n,t.code,"boolean is not accepted."),oh(e)){t.fieldType==="NUMBER"&&et(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&et(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)||et(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&et(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||et(n,t.code,"unsupported value type."),!ih.has(t.fieldType)&&!Up.has(t.fieldType)&&et(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&et(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&et(n,t.code,"array elements must not contain duplicates."),Up.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ds(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=bo(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||et(d+1,p,"unknown key (not declared in INTO).");let u={},c=new Set;for(let p of n)l.has(p.code)&&(c.add(p.code),u[p.code]=ah(l.get(p.code),p,d+1));a.push(u),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 vs(e,t,n,r,i,o){let a=Io(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,h)=>[y,h]));for(let y of r)if(!l.has(y))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],p=[],f=y=>a.rows.filter(h=>h[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,h]of a.columns.entries()){if(u.has(h)||h===o)continue;let g=d.get(h);if(g)c.push({column:h,reason:E(g),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let y of r){let h=d.get(y);if(!h)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let h=[],g={};for(let S of r){let w=y[l.get(S)];try{g[S]=_p(w,d.get(S)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof kr))throw b;g[S]=w,h.push({field:S,code:b.code,message:b.message})}}return R.push(h),g}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,u)=>[d,l[u]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Mr=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function kp(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=bo(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let u=d+1;for(let E of l.keys())a.has(E)||Mr(u,E,"unknown key (not declared in INTO).");let c=new Map,p=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Mr(u,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Mr(u,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),h=m.map((g,S)=>{g instanceof Map||Mr(u,R,`childRow=${S+1} must be an object.`);let w=g;for(let b of w.keys())y.has(b)||Mr(u,b,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:w}});p.set(R,h)}return{rowNumber:u,top:c,subtables:p,replacementTables:f}})}}function Mp(e,t,n,r,i,o){let a=Io(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),d=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let u=[],c;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:u.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(d.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},u.push(c)}else if(c){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==c.top.get(m.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of d){let y=p[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(S=>[S,p[s.get(S)]]));if(y===""&&[...h.values()].every(S=>S===""))continue;let g=c.subtables.get(m.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:h})}}),u.length===0)throw new K("CSV has no parent rows.");return{records:u}}var sh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),lh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ms(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Bp(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)Fp(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)Fp(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),u=e.records.map(p=>uh(p,s,l,o,a,r,i,d)),c=u.flatMap(p=>[...p.errors]);return{parents:u,errors:c,invalidParentRows:new Set(u.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function uh(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&ks(e.top.get(p.field),r.get(p.field),o,d,p.field,l,Us(e,a,p.field));let u={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||xp(p,o,u,l,Us(e,a,p.code));let c=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},h=i.get(p.subtableCode);for(let g of p.children){let S=h.get(g),w=Us(e,a,g,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?ks(R.values.get(g),S,o,y,g,l,w):xp(S,o,y,l,w)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function Fp(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&lh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function xp(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;ks(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function ks(e,t,n,r,i,o,a,s=!1){let l=ch(e),d=we(l,t,n);d.ok?r[i]={value:ph(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function ch(e){return Kp(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Kp(t)?t.lexeme:t):e}function Kp(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function ph(e,t){return sh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Us(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 Fs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function xs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":dh(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 dh(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 Ks(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 $p(e,t){return Ks(e,t,"DROP")}function Gp(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 Vp(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let u=a?.record[l]?.value,c=Array.isArray(u)?u.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function fh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Wp(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 Hp(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),u=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:u};let c=new Map,p=[];for(let f of o.replacementTables){let E=fh(d.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],h=0,g=0,S=0,w=m.map((b,O)=>{let P=y[O]??{};return b.rowId&&R.has(b.rowId)?(h++,{rowId:b.rowId,record:P}):(b.rowId&&((i.get(b.rowId)??[]).some(I=>I.parentId!==l||I.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),S++),g++,{record:P})});c.set(f,w),p.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:h,addRows:g,deleteRows:E.length-h,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:u.length===0,top:o.top,subtables:c,tables:p,errors:u}})}var Bs="#__import_source";function Yp(e){return{...e,from:{appId:0,alias:null,cteName:Bs}}}function Eh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function $s(e,t){let n=e.map(Eh),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var Rh="\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",xn=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"}},Ee=new WeakMap;function md(e){return Ee.get(e)}var ln=new WeakMap,$o=new WeakMap,jp=new WeakMap,mh=1;function yd(e,t){if(t)return t;let n=jp.get(e);return n||(n=`client:${mh++}`,jp.set(e,n)),n}async function rl(e,t,n={}){let r=Date.now(),i=yd(t,n.cacheContext),o=eA(e,n.enableImport===!0),a=hd(),s=gd(t,a),l={aborted:!1},d=il(s,l,!hh(o)||ss(o)),u=await js(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...Ad(u,l),metrics:a};if(u.type==="SELECT"){let p=Ee.get(u);p&&Ee.set(c,p)}return c}function hd(){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,elapsedMs:0}}function gd(e,t){return{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 qp=Symbol("searchAbortFailClosed");function il(e,t,n){return n&&e[qp]?e:{...e,...n?{[qp]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new xn;return i}}}function yh(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 hh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Ad(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Rh),{...e,warnings:[...n]}}async function zp(e,t,n){let r=await Go(e,t,n);return Ls(r),r}async function Go(e,t,n){return Op(e,{select:r=>Vr(r,t,n),dml:r=>Nd(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return _s(r,i)},joinServerFunctionPlan:async r=>{let i=await Ho(r,t,n),o=Wo(r,i);return o===null?null:(Un(o.joinPlan)&&pl.set(r,o),o.joinPlan)}})}async function js(e,t,n,r){let i=await Go(e,t,r);e.type!=="EXPLAIN"&&Ls(i);let o=qs(e);if(o!==null&&!Dg(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(yn("phase15b",e),mi("phase15b",e),je(e),e.type!=="EXPLAIN"&&await _h(e,t,r),e.type==="IMPORT")return jd(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return tl(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return gl(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 gh(e,t,n,r);case"SELECT":return vt(e,t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Fd(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return ml(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Pg(e,t,n,r);case"INSERT_SELECT":return Il(e,t,n,r);case"UPSERT":return Hg(e,t,n,r);case"UPSERT_SELECT":return Pl(e,t,n,r);case"UPDATE":return tl(e,t,n,r);case"DELETE":return Wg(e,t,n,r);case"REORDER":return Xg(e,t,n,r);case"SHOW_APPS":return Qd(t);case"DESCRIBE":return Zd(e,t,r);case"EXPLAIN":return oA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Fe(n.dmlMaxRows,"dmlMaxRows",yt):yt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne):Ne,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return wd(e,t,n,r)}}var ol=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],al=["$id","$err_subtable","$err_field","$err_code","$err_count"];function sl(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 Sd(e=!1){let t=e?al:ol;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function gh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Td(e,t,n,r)}async function Td(e,t,n,r){let i=await Z(e.appId,t,r),o=new Map(i.filter(N=>!N.inSubtable).map(N=>[N.code,N])),a=new Set(i.filter(N=>N.inSubtable).map(N=>N.code)),s=ts(e,i),l=new Set(s.flatMap(N=>Za(N.field))),d={present:Qa.filter(N=>l.has(N)),absent:Qa.filter(N=>!l.has(N))},u=e.checkGroups??[],c=Pn(u);for(let N of c){if(N.field!=="$id"&&!o.has(N.field)&&!a.has(N.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!o.has(N.field)&&a.has(N.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([N,F])=>[N,F.fieldType]));p.set("$id","RECORD_NUMBER"),sn(e,p);let f=sl(e.where),E=[...new Set(["$id",...s.map(N=>N.subtableCode??N.field.code),...f,...c.map(N=>N.field)])];for(let N of f){if(N!=="$id"&&!o.has(N)&&!a.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${e.appId}.`);if(N!=="$id"&&!o.has(N)&&a.has(N))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(N=>N.field.fieldType==="NUMBER")?await it(e.appId,t,r):void 0,m=N=>N.field==="$id"?J({fieldType:"__ID__"}):o.get(N.field)?.semantics??(o.has(N.field)?J(o.get(N.field)):void 0),y=be(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(y)}).`);let h=new Map([...o].map(([N,F])=>[N,F.fieldType])),g=new Map([...o.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),S=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:g,allowKlike:!1}),w=S===null?"":G(S),O=(await Te(t.getRecords,e.appId,w,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(N=>({id:String(N.$id?.value??""),record:N,flat:pt(N,null)})).filter(N=>e.where===null||Q(e.where,N.flat,F=>p.get(F.field))),P=[],U=new Map,I=new Map,_=new Set,k=0,L=N=>{if(_.add(N.id),k+=1,e.summary){let j=JSON.stringify([N.id,N.subtable??"",N.field,N.code]),D=I.get(j);D?D.$err_count=String(Number(D.$err_count)+1):I.set(j,{$id:N.id,$err_subtable:N.subtable??"",$err_field:N.field,$err_code:N.code,$err_count:"1"});return}let F=JSON.stringify([N.id,N.subtable??"",N.field,N.code,N.message]),Y=U.get(F);Y?(Y.$err_count=String(Number(Y.$err_count)+1),N.subrow!==void 0&&(Y.$err_subrow=`${Y.$err_subrow},${N.subrow}`,Y.$err_subrow_id=`${Y.$err_subrow_id},${N.subrowId??""}`)):U.set(F,{$id:N.id,$err_field:N.field,$err_code:N.code,$err_message:N.message,$err_value:N.value,$err_subtable:N.subtable??"",$err_subrow:N.subrow===void 0?"":String(N.subrow),$err_subrow_id:N.subrowId??"",$err_count:"1"})},v=s.filter(N=>!N.subtableCode),A=new Map;for(let N of s){if(!N.subtableCode)continue;let F=A.get(N.subtableCode)??[];F.push(N),A.set(N.subtableCode,F)}for(let N of O){for(let F of v){let Y=N.record[F.field.code]?.value,j=we(Y,F.field,R);j.ok||L({id:N.id,field:F.field.code,code:j.code,message:j.message,value:yr(Y,F.field.fieldType)})}for(let[F,Y]of A){let j=N.record[F]?.value;if(Array.isArray(j))for(let D=0;D<j.length;D++){let x=j[D];for(let W of Y){let ue=x.value?.[W.field.code]?.value,ee=we(ue,W.field,R);if(!ee.ok){let ht=Yi(F,D,x);L({id:N.id,field:W.field.code,code:ee.code,message:ee.message,value:yr(ue,W.field.fieldType),...ht})}}}}for(let F of Ui(u,N.flat,Y=>p.get(Y.field)))L({id:N.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...I.values());else for(let N of U.values()){let F=Number(N.$err_count);N.$err_subtable!==""&&F>=2&&(N.$err_message=`${N.$err_message}\uFF08${F}\u884C: ${N.$err_subrow}\uFF09`),P.push(N)}let M={type:"SELECT",columns:[...e.summary?al:ol],rows:P,rowCount:P.length,validateStats:{errorRecords:_.size,errorCount:k,constraintMetadata:d}};return Ee.set(M,Sd(e.summary===!0)),M}var Ve=1e4;function nt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!Ah(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 Ah(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Ci(i.semantics,r.semantics))return!1}return!0}var Mn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Id(e,t,n={}){let r=Nh(e,n.enableImport===!0),i=Uu(r);if(r.forEach(y=>mi("phase15b",y)),n.allowApplyMutation!==!0&&r.some(y=>fa(y)||y.type==="UPSERT"&&Sh(y)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Kc(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let y of i.statements){if(!y.isDml||y.tempTablesReferenced.length===0||y.statementType==="INSERT_SELECT"||y.statementType==="UPSERT_SELECT")continue;let h=r[y.index];if(!(h?.type==="UPDATE"&&h.from?.cteName!=null))throw new te(`ArgumentError: temp table references in ${y.statementType} are not supported yet.`,y.index)}let s=hd(),l=gd(t,s),d=Date.now(),u=n.timeoutMs!=null?d+n.timeoutMs:null,c=yd(t,n.cacheContext),p=new Map,f=new Map,E=[],R=new Set,m=null;for(let y=0;y<r.length;y++){let h=i.statements[y],g={index:y,type:h.statementType};if(m){E.push({...g,status:"skipped",skippedReason:m}),R.add(y);continue}let S=h.dependsOn.find(w=>R.has(w));if(S!==void 0){let w=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${w}`}),R.add(y);continue}if(u!==null&&Date.now()>=u){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(y),m="timeout";continue}try{let w=u!==null?u-Date.now():null,b=a.confirm,O=b?{...a,confirm:(k,L,v)=>b(k,L,{statementIndex:y,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,...v?.importDetail?{importDetail:v.importDetail}:{},...v?.applyDetail?{applyDetail:v.applyDetail}:{},...v?.applyDiagnostic?{applyDiagnostic:v.applyDiagnostic}:{}})}:a,P={aborted:!1},U=il(l,P,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||ss(r[y])),I=yh(U),_=await wh(Th(r[y],h,I.client,O,c,p,f),w,I.closeActive);_.result&&(_.result=Ad(_.result,P)),E.push({...g,status:"success",..._})}catch(w){E.push({...g,status:"error",error:bh(w),...w instanceof Yr?{result:w.diagnostic}:{}}),R.add(y),w instanceof Mn?m="timeout":w instanceof Kn?m="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(y=>y.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}function Sh(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 Th(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=Do(e,a);if(je(l),await zp(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await bd(l.expr.query,n,r,i,o),u=l.expr.query.columns[0],c=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"){let f=(await Fo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let p=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(p)?{type:"number",value:p,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof en?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Jp(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=Jp(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=Do(e,a);if(yn("phase15b",s),mi("phase15b",s),je(s),await zp(s,n,i),s.type==="VALIDATE"){let l=await Td(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&nt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Ve,Ee.get(l)??Sd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await jd(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await gl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&nt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Ve,ln.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await Zs(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Ve,onLimitReached:"error"},d=await Ih(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Ee.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await js(s,n,r,i)};if(s.type==="ASSERT")return await wd(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await Rt(s,n,r,o,i)};if(s.type==="WITH")return{result:await ml(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await Il(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Pl(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await tl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await js(s,n,r,i)}}async function Ih(e,t,n,r,i){return e.type==="WITH"?ml(e,t,n,r,i,!0):Rt(e,t,n,i,r,!0)}async function wh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Mn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Mn)})()},t)})])}catch(a){throw a instanceof Mn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function bh(e){let t;if(e instanceof Xe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Gs(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:Ph(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Gs(r),message:r}}else{let n=String(e);t={code:Gs(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Gs(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function Ph(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Nh(e,t=!1){let n=new gt(e).tokenize();return new At(n,{import:t}).parseStatements()}function Jp(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:V(e)};case"KINTONE_FUNC":return{type:"string",value:Qu(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function Do(e,t){if(Array.isArray(e))return e.map(n=>Do(n,t));if(e!==null&&typeof e=="object"){let n=e;if(n.type==="VARIABLE"&&typeof n.name=="string"){let o=t.get(n.name);if(o===void 0)throw new Error(`ParseError: variable @${n.name} is not defined in this batch.`);if(o.type==="array")throw new Error(`ParseError: array variable @${n.name} can only be used as IN @${n.name}.`);return o.type==="number"?{type:"NUMBER",value:o.value,raw:o.raw??String(o.value)}:{type:"STRING",value:o.value}}if(n.type==="VARIABLE_COL"&&typeof n.name=="string"&&typeof n.alias=="string"){let o=t.get(n.name);if(o===void 0)throw new Error(`ParseError: variable @${n.name} is not defined in this batch.`);if(o.type==="array")throw new Error(`ParseError: array variable @${n.name} cannot be used as a SELECT column.`);return o.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:o.value,raw:o.raw??String(o.value)},alias:n.alias}:{type:"LITERAL_COL",value:o.value,alias:n.alias}}if(n.type==="VARIABLE_IN_LIST")return n;let r=Object.fromEntries(Object.entries(n).map(([o,a])=>[o,Do(a,t)]));if(r.type==="BINARY"){let o=r.right;if(o?.type==="VARIABLE_IN_LIST"&&typeof o.name=="string"){let a=t.get(o.name);if(a===void 0)throw new Error(`ParseError: variable @${o.name} is not defined in this batch.`);if(a.type!=="array")throw new Error(`ParseError: scalar variable @${o.name} cannot be used as IN @${o.name}; use IN (@${o.name}) instead.`);if(a.elements.length===0)return{type:"BOOLEAN",value:r.op==="NOT_IN"};r.right={type:"IN_LIST",values:a.elements.map(s=>({type:"STRING",value:s.value}))}}}let i=Ch(r);if(i.type==="SELECT"&&Me(i.where,!0)&&(i.where=null),(i.type==="UPDATE"||i.type==="DELETE"||i.type==="REORDER")&&Me(i.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return i}return e}function Me(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Ch(e){if(e.type==="NOT"&&Me(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Me(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Me(t,!1)||Me(n,!1))return{type:"BOOLEAN",value:!1};if(Me(t,!0))return n;if(Me(n,!0))return t}else if(e.op==="OR"){if(Me(t,!0)||Me(n,!0))return{type:"BOOLEAN",value:!0};if(Me(t,!1))return n;if(Me(n,!1))return t}}return e}function qs(e){if(Array.isArray(e)){for(let t of e){let n=qs(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=qs(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},en=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function wd(e,t,n,r,i){let o=await Po(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Po(e.low,t,n,r,i),d=await Po(e.high,t,n,r,i);if(!Wt(">=",o,l,a)||!Wt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Po(e.right,t,n,r,i);if(!Wt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Po(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return V(e);case"STRING":return e.value;case"ARITH":return String(zs(e));case"SCALAR_SUBQUERY":try{return await bd(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Kn(o.message):o}}}async function bd(e,t,n,r,i){let{query:o,probed:a}=Oh(e),s=await $r(o,t,n,r,i);if(s.columns.length!==1)throw new en(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new en("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new en(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Oh(e){return re(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function zs(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=zs(e.left),n=zs(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Qe(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await Z(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=p=>{if(Array.isArray(p)){p.forEach(d);return}if(p===null||typeof p!="object")return;let f=p;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let p of e.columns)p.type==="CASE_COL"&&d(p.expr);let u=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await hl(p,t,n);R&&u.set(p,R)}));let c=(p,f,E)=>{if(f==="$id")return bn(J({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(p.appId)?.get(Ae(p,f));if(!R)return;let m=R.semantics??J(R),y=R.fieldType==="STATUS"&&u.has(p.appId)?{...m,optionOrder:u.get(p.appId)}:m;return bn(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,p.field,!1);let E=o.find(R=>Pe(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:c(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Oo(E,p.field)!==void 0))return f.length>1?B("string"):void 0}}function ll(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=>Qe(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Pd(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(We(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=El(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=rn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function Vr(e,t,n,r){if(e.where===null)return be(null,()=>{});let i=await $n(e,t,n,r);return be(e.where,i)}function tn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function vo(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Nd(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Qe(e.where)?await Z(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?be(null,()=>{}):be(e.where,o=>{if(o.field==="$id")return J({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?J(a):void 0)})}async function Fn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Nd(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new X(`WHERE predicate cannot be represented by kintone REST (${tn(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await Vo(e,t,r,i),Uh(e))return s=Fh(e),o&&Ee.set(s,await Fo(e,s.columns,t,r,i,a)),s;let l=await ul(e,t,r,i);await ef(e,t,n,r,i);let d=await Vr(e,t,r,i);if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(d)}).`);let u=_e(e),c,p;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=_s(e,g);S.eligible&&Os(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=G(e.where)}catch{g=null}p=gi({select:e,selectMode:u,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ce(e.where)})??void 0,p&&(c=p.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?u:"FULL_SCAN",E=await Hr(e,t,r,i),R=vo(e)?(e.orderMode==="KINTONE_NATIVE"?Or:Cr)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:pe(e.where)}):null;await Kh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Cd(e,n,R),h=p!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?il(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await xh(e,h,m.effectiveOptions,r,R,E):s=await Xh(e,h,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){Od(m,g)}return o&&Ee.set(s,await Fo(e,s.columns,t,r,i,a)),s}async function ul(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let u=await Z(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)};let c=u.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:u.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=sp(e,(d,u)=>o[u]),s=e.groupBy,l=lp(s,e.columns,a);return Lh(e,s,l),l}function Lh(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let u=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${u}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var Wr=new WeakMap;async function _h(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await Vo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Dh(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let c=await Z(u,t,n);return[u,new Map(c.map(p=>[p.code,p]))]}))),s=(u,c)=>{if(c==="$id")return"$id";let p=Ae(u,c);return a.get(u.appId)?.has(p)?p:null},l=(u,c)=>{if(u.cteName===null)return!1;let p=r?.get(u.cteName);return p?p.columns.includes(c):!0},d=(u,c,p,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,p.field)!==null).length,R=i.some(y=>l(y,p.field)),m=Pe(u);return{canonicalId:`source:${c}:APP${u.appId}:${f}`,directKey:p.tableAlias&&m?`${p.tableAlias}.${p.field}`:p.field,unqualifiedBridgeKey:E===1&&!R?p.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let f=i.findIndex(m=>Pe(m)===u.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,u.field);if(R===null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${E.appId}.`);return d(E,f,u,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,u.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),p=i.filter(f=>l(f,u.field));if(c.length+p.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(c.length===1&&p.length===0){let f=c[0];return d(f.table,f.tableIndex,u,f.code)}throw p.length===1?new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Vo(e,t,n,r){Wr.delete(e);let i=re(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Dh(e,t,n,r),s=Du(e,a,_u);s&&Wr.set(e,s)}function vh(e){let t=[...e].join(", ");return`${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.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"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 Cd(e,t,n){let r=n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR"?St({...e,orderBy:[]}):St(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Od(e,t){throw e.reasons.size>0&&t instanceof Oe?new Oe(vh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function Xp(e,t){try{return await t()}catch(n){Od(e,n)}}function Et(e){return e?.type==="BOOLEAN"&&e.value===!1}function Uh(e){return e.from.appId===0&&e.from.cteName===Ye}function Uo(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Uo(e.left)||Uo(e.right):e.type==="STRING_FUNC"?cl(e):!1}function kh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Fr(e)}function Fr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?cl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Fr(e.left)||Fr(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"?Uo(n):Fr(n))):!1}function cl(e){return e.args.some(t=>kh(t))}function Mh(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(Uo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(cl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Fr(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 Fh(e){if(e.joins.length>0||e.where||re(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");Mh(e);let t=Ss([{}],e.columns),{rows:n,columns:r}=Ro(t,e.columns),i=Eo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function xh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Ud(e):e,s=yi(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await fl(e,t,r),u=Rl(e,d),c=e.columns.some(O=>O.type==="CASE_COL")?await $n(e,t,r,void 0,ll(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&y!==null&&y<=p&&!pe(e.where)?y:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let O=await op({client:t,app:s.app,fields:s.fields,query:fs(e),offset:e.offset??0,limit:e.limit});g=O.records,O.cleanupWarning&&f.add(O.cleanupWarning)}else if(m)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let O=e.where?G(e.where):"";g=await Te(t.getRecords,s.app,O,l,{parallel:R,maxRecords:p,stopAfter:h,onLimit:E,onTruncate:P=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${P} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${P} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=g.map(O=>pt(O,null));m||(S=gs(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,As(e.columns,void 0,u.row,c)),S=Eo(S,e.limit,e.offset));let{rows:w,columns:b}=Ro(S,e.columns,void 0,u.row,void 0,c);return{type:"SELECT",rows:w,columns:b,rowCount:w.length,warnings:[...f]}}async function Kh(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let d of s)l.add(d)};if(t==="SIMPLE"){let a=yi(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,$t(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(p=>!Es(p));if(l.length===0)continue;let d=await Z(a,n,r);if(d.length===0)continue;let u=new Set(d.map(p=>p.code)),c=l.filter(p=>!u.has(p));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Qp(e){return e.cteName??`APP${e.appId}`}function Bh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function $h(e,t){return Es(t)||e.validCodes.has(t)}function Vs(e,t){return e.table.cteName!==null?e.validCodes.has(t):$h(e,t)}function Gh(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 Vh(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=new Map,a=new Set;for(let u of i){let c=Pe(u);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let u of i){if(u.cteName===null||u.cteName===Ye)continue;let c=n.get(u.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${u.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${u.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 ${u.cteName}.`);o.set(u,c)}let s=new Map;await Promise.all(i.map(async u=>{let c=o.get(u);if(c){s.set(u,{table:u,label:Qp(u),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(u.cteName===Ye)return;let p=await Z(u.appId,t,r);s.set(u,{table:u,label:Qp(u),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let u of s.values())for(let c of Bh(u.table))l.set(c,u);for(let u of e.joins)for(let c of[u.on.left,u.on.right]){if(!c.tableAlias)continue;let p=l.get(c.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Vs(p,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=hu(e);for(let[u,c]of d.bySource){let p=s.get(u);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...c].filter(E=>!Vs(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let u of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Vs(f,u))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${u} (${p})`)}}async function Co(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Co(e.left,t,n,r,i),await Co(e.right,t,n,r,i);return}await Vh(e,t,n,r);for(let o of Gh(e))await Co(o,t,n,r,i)}}function Ld(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?nr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?nr(e.where,{tableAlias:e.from.alias}):null}var pl=new WeakMap;function Wo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=Xc(e.where,r),o=Qc(i,r),a=new Map,s=new Map;for(let[c,p]of o.fetchQueriesByAlias)s.set(c,p);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,vn(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,u=new Map(a);return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ho(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,Ld(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=nr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,u]=await Promise.all([Se(s,t,n),ng(s,t,n)]),c=Wh(l).filter(p=>d.get(p)==="STATUS");if(c.length>0){let p=await yl(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of c)u.set(E,f)}}return[s,d,u]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Wh(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 ft(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"&&ko(e.left.expr,t),e.right.type==="CASE_VALUE"&&ko(e.right.expr,t);return;case"LOGICAL":ft(e.left,t),ft(e.right,t);return;case"NOT":case"GROUP":ft(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function ko(e,t){for(let n of e.branches)ft(n.condition,t)}function Hh(e){let t=[];ft(e.where,t),ft(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&ko(n.expr,t);return t}function Pe(e){return e.alias??e.cteName}function _d(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Pe(n)===t)}function dl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function fl(e,t,n){let r=Hh(e);if(r.length===0)return new Map;let i=new Set,o=dl(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=_d(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 Se(s,t,n)]));return new Map(a)}function We(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 Dd(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Xt(t,n)}function Xt(e,t){if(e.type==="FIELD_REF"){t.push(We(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Xt(e.left,t),Xt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Xt(e.left,t),Xt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Xt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&Xt(n,t)}function Mo(e,t){if(e.type==="AGG_REF"){Dd(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Mo(e.left,t),Mo(e.right,t))}function Js(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Mo(n,t):xr(n,t)}function xr(e,t){if(e.type==="STRING_FUNC"){Js(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){xr(e.left,t),xr(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"?Js(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&xr(r,t)}}function Yh(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Dd(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Mo(n.expr,t):n.type==="STRFUNC_COL"?Js(n.expr,t):n.type==="SCALAR_VALUE_COL"&&xr(n.expr,t);return t}var jh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function qh(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":jh.has(e.fieldType)?"string":void 0}async function vd(e,t,n,r){let i=Yh(e.columns);if(i.length===0)return;let o=new Set,a=dl(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=_d(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Z(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await hl(f,t,n);R&&l.set(f,R)}));let u=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??J(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=u.find(y=>Pe(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(m.appId)?.get(Ae(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(Ae(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let g=r?.get(y.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let h=s.get(y.appId)?.get(Ae(y,f.field));return h?[c(h,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?u.find(m=>Pe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function Ae(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Oo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function tt(e,t){let n=e.semantics??J(e);return{sortKind:qh(e),fieldType:e.fieldType,semantics:t===void 0?n:bn(n,t,e.code)}}function Ud(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function q(e){return{sortKind:e,semantics:B(e)}}function rt(){return{semantics:B("string","KSQL_UNKNOWN")}}function kd(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Qt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:J({fieldType:"__ID__"})};if(e==="_rid")return q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return q("number")}var zh=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function rn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?q("number"):q("string")}return zh.has(e.func)?q("number"):q("string")}function Bn(e,t){return e.type==="STRING"?q("string"):e.type==="ARRAY"?kd():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?q("number"):e.type==="STRING_FUNC"?rn(e):e.type==="FIELD_REF"?t(We(e.field))??rt():e.type==="FIELD"?t(e)??rt():rt()}function Yo(e){if(e.length===0)return rt();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&&Ci(n(r.semantics),n(t.semantics)))?e.every(i=>Ci(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?kd("KSQL_MIXED_UNSUPPORTED"):rt()}function El(e,t){if(e.type==="FIELD_REF")return t(We(e.field))??rt();if(e.type==="FIELD")return t(e)??rt();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 rn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),Yo(n)}function Jh(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Fo(e,t,n,r,i,o=!1){let a=new Map;Jh(e)&&await Promise.all(dl(e).map(async R=>{if(a.has(R.appId))return;let m=await Z(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?tt(g,e.from.appId):void 0}let y=s.find(g=>Pe(g)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let h=a.get(y.appId)?.get(Ae(y,R.field));return h?tt(h,y.appId):Qt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(Ae(e.from,R.field));return y?tt(y,e.from.appId):Qt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(y.appId)?.get(Ae(y,R.field)),g=h?tt(h,y.appId):Qt(R.field);return g?[g]:[]});return m.length===1?m[0]:void 0},u=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Pe(y)!==R.tableAlias)return!1;let h=Ae(y,R.field);return a.get(y.appId)?.has(h)===!0||Qt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let y=u(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=We(R),y=c(d(m),m);y&&p.set(R,y)}return p}if(f)for(let R of t){let m=We(R),y=c(d(m),m);y&&p.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let h;if(R.type==="FIELD"){let g=We(R.field);h=c(d(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?h=q("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?h=q("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(h=El(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")h=q("number");else if(R.type==="GROUPING_COL")h=q("number");else if(R.type==="LITERAL_COL")h=q("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?h=rn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?h=q("number"):g.type==="FIELD"?h=d(g):h=q("string")}else if(R.type==="STRFUNC_COL")h=rn(R.expr);else if(R.type==="WINDOW_COL")h=q("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&g.push(Bn(R.expr.elseResult,d)),h=Yo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=rt());h&&p.set(y,h)}),p}function Md(e,t){let n=Ee.get(e),r=Ee.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let u=Yo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:p,...f}=u;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,rt())}),i}function Rl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(u=>Pe(u)===s.tableAlias);return!d||d.cteName!==null?void 0:Oo(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Oo(e.from,s.field)??t.get(e.from.appId)?.get(Ae(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let u=Oo(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field));return u?[u]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function Xh(e,t,n,r,i,o=!0,a,s,l){let d=n.maxRecords??1e4,u=new Set,c=n.fetchParallel??1;await Promise.all([zr(e.where,t,n,r,i),zr(e.having,t,n,r,i)]);let[p,f,E]=await Promise.all([Ho(e,t,r),fl(e,t,r),vd(e,t,r,i)]),R=Rl(e,f),m=await $n(e,t,r,i,Qe(e.having)||ll(e)),y=Pd(e,m),h=pl.get(e);if(h&&!Un(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let g=h??Wo(e,p)??Tn(e,p);Aa(g);let S="joinPlan"in g?g:null,w=S&&Un(S.joinPlan)?S:null,b=t,O=g.mainCondition,P=g.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let U=s?s.prefilterWhere:w?null:O,I=w?.queriesByAlias.get(e.from.alias)??"",_=await nf(e.columns,t,n,r,i),k=Et(e.where),L=k?Promise.resolve([]):Kr(e,e.from,b,d,c,!0,n.onLimitReached??"error",u,U,w?!1:o,l,I),v=[],A=[];for(let W of e.joins){if(k){v.push({join:W,promise:Promise.resolve([])});continue}let ue=W.table.alias?w?.queriesByAlias.get(W.table.alias)??"":"",ee=w?null:W.table.alias?P.get(W.table.alias)??null:null;ee!==null||ue!==""?v.push({join:W,promise:Kr(e,W.table,b,d,c,!1,n.onLimitReached??"error",u,ee,!0,l,ue)}):A.push(W)}let C=a?Promise.resolve(a):Hr(e,t,r,i);C.catch(()=>{});let M=await L,N=new Map;N.set(e.from.alias,M);for(let{join:W,promise:ue}of v)N.set(W.table.alias,await ue);await Promise.all(A.map(async W=>{let ee=await Gd(e,W,N,b,d,c,n.onLimitReached??"error",u,null,l,"")??await Kr(e,W.table,b,d,c,!1,n.onLimitReached??"error",u,null,!0,l,"");N.set(W.table.alias,ee)}));let{optionOrders:F,sortKinds:Y,semantics:j}=await C,{rows:D,columns:x}=ws({tables:N,stmt:e,scalarCache:_,optionOrders:F,sortKinds:Y,orderSemantics:j,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??g.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:Wr.get(e),plainGroupByPlan:l});return{type:"SELECT",rows:D,columns:x,rowCount:D.length,warnings:[...u]}}async function Fd(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Fd(e.left,t,n,r,i,o):vt(e.left,t,n,r,void 0,i,o),vt(e.right,t,n,r,void 0,i,o)]),l=a.columns,d=s.columns,u=s.rows.map(E=>{let R={};return l.forEach((m,y)=>{R[m]=E[d[y]??m]??""}),R}),c=[...a.rows,...u],p=e.all?c:xd(c,l),f={type:"SELECT",rows:p,columns:l,rowCount:p.length};return i&&Ee.set(f,Md(a,s)),f}function xd(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function ml(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&bt(e))return vt(Pt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await Qd(t):s.query.type==="DESCRIBE"?l=await Zd(s.query,t,r):l=await Rt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Ee.get(l)})}return Rt(e.query,t,n,a,r,o)}async function Rt(e,t,n,r,i,o=!1,a=!1){if(a||await Co(e,t,r,i),e.type==="UNION"){let[d,u]=await Promise.all([Rt(e.left,t,n,r,i,o,!0),Rt(e.right,t,n,r,i,o,!0)]),c=d.columns,p=u.columns,f=u.rows.map(y=>{let h={};return c.forEach((g,S)=>{h[g]=y[p[S]??g]??""}),h}),E=[...d.rows,...f],R=e.all?E:xd(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Ee.set(m,Md(d,u)),m}if(!(e.from.cteName!=null&&e.from.cteName!==Ye||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await Qh(e,t,n,r,i);return o&&Ee.set(l,await Fo(e,l.columns,t,i,r)),l}async function Qh(e,t,n,r,i){await Vo(e,t,i,r);let o=Wr.get(e),a=await ul(e,t,i,r),s=new Set,l=D=>{if(D.alias!==null||D.cteName===null)return D;let x=Pe(D);return s.add(x),{...D,alias:x}};e={...e,from:l(e.from),joins:e.joins.map(D=>({...D,table:l(D.table)}))};let d=new Set;for(let D of[e.from,...e.joins.map(x=>x.table)]){let x=Pe(D);if(x!==null){if(d.has(x))throw new Error(`ArgumentError: effective alias ${x} is used by multiple tables.`);d.add(x)}}let u=D=>{let x=r.get(D);if(!x)throw new Error(`ArgumentError: materialized source ${D} is not available.`);return x};for(let D of[e.from,...e.joins.map(x=>x.table)])D.cteName!==null&&u(D.cteName);let c=n.maxRecords??1e4,p=new Set,f=n.fetchParallel??1;await Promise.all([zr(e.where,t,n,i,r),zr(e.having,t,n,i,r),ef(e,t,n,i,r)]);let E=await Vr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(E)}).`);let R=await Hr(e,t,i,r),m=vo(e)?(e.orderMode==="KINTONE_NATIVE"?Or:Cr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:pe(e.where)}):null,y=Cd(e,n,m),h=y.effectiveOptions,[g,S,w]=await Promise.all([Ho(e,t,i),fl(e,t,i),vd(e,t,i,r)]),b=Rl(e,S),O=await $n(e,t,i,r,Qe(e.having)||ll(e)),P=Pd(e,O),U=Wo(e,g)??Tn(e,g);Aa(U);let I=t,_=await nf(e.columns,t,h,i,r),k=Promise.resolve(R);k.catch(()=>{});let L=new Map,v=new Map;if(e.from.cteName!=null){let D=u(e.from.cteName);L.set(e.from.alias,D.rows.map(Zp)),v.set(e.from.alias,D.columns)}else{let D=await Xp(y,()=>Kr(e,e.from,I,c,f,!0,h.onLimitReached??"error",p,U.mainCondition,E.capability==="EXACT_PUSHDOWN",a));L.set(e.from.alias,D)}let A=e.joins.map(D=>Xp(y,async()=>{if(D.table.cteName!=null){let x=u(D.table.cteName);L.set(D.table.alias,x.rows.map(Zp)),v.set(D.table.alias,x.columns)}else{let x=D.table.alias?U.joinConditions.get(D.table.alias)??null:null,ue=await Gd(e,D,L,I,c,f,h.onLimitReached??"error",p,x,a)??await Kr(e,D.table,I,c,f,!1,h.onLimitReached??"error",p,x,!0,a);L.set(D.table.alias,ue)}}));await Promise.all(A);let{optionOrders:C,sortKinds:M,semantics:N}=await k,F=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:Y,columns:j}=ws({tables:L,stmt:e,scalarCache:_,optionOrders:C,sortKinds:M,orderSemantics:N,fieldTypeResolver:b.row,fieldSemanticsResolver:O,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:P,aggregateSortKindResolver:w,appliedKlikes:U.appliedKlikes,sourceColumns:F,tableColumns:v,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a});return{type:"SELECT",rows:Y,columns:j,rowCount:Y.length,warnings:[...p]}}function Zp(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Kr(e,t,n,r,i,o,a,s,l=null,d=!0,u,c=""){let p=$t(e,t,u),f=y=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let y=o&&d?mu(e,t.appId).query:"",h=[l!==null?G(l):"",c].filter(b=>b!==""),g=h.length>1?h.map(b=>`(${b})`).join(" and "):h[0]??"",S=y&&g?`(${y}) and (${g})`:y||g;return(await Ke(n.getRecords,t.appId,S,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Ke(n.getRecords,t.appId,"",p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Tp(m,t.subtableCode)}var Kd=50;function Zh(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function Xs(e){return JSON.stringify(e)}function on(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Zh(n):n))}function Xr(e,t){let n=e.raw.get(Xs(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(on(t,e.numericKey))}async function Qr(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},u=(m,y,h)=>{let g=m.get(y);(g===void 0||h>g)&&m.set(y,h)},c=(m,y)=>{u(d.raw,Xs(m),y),l.some(Boolean)&&u(d.normalized,on(m,l),y)},p=new Set,f=[],E=new Set;for(let m of n){let y=Xs(m);E.has(y)||(E.add(y),m.some(h=>h==="")?f.push(m):p.add(m[0]))}let R=["$id",...t];for(let m of Gn([...p],Kd)){let y=`${t[0]} in (${m.map(xo).join(",")})`,h=await Te(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(w=>Bd(g[w]?.value)),S)}}for(let m of f){let y=t.map((g,S)=>`${g} = ${xo(m[S])}`).join(" and "),h=await Te(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(m,eg(h))}return d}function eg(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 Bd(e){return typeof e=="string"?e:e==null?"":String(e)}function xo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var $d=50,tg=6,ed=$d*tg;async function Gd(e,t,n,r,i,o,a,s,l=null,d,u=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!c||!p)return null;let f,E,R;if(c===t.table.alias&&p!==t.table.alias)f=p,E=t.on.right.field,R=t.on.left.field;else if(p===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let y=new Set;for(let P of m){let U=P[E]?.value,I=Bd(U).trim();I.length>0&&y.add(I)}let h=[...y];if(h.length===0)return[];if(h.length>ed)return s.add(`JOIN\u30AD\u30FC\u304C ${h.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${ed} \u4EF6\uFF09\u3002`),null;let g=$t(e,t.table,d),S=P=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${P} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${P} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},w=Gn(h,$d),b=[],O=new Set;for(let P of w){let U=`${R} in (${P.map(xo).join(",")})`,_=[l!==null?G(l):"",u].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,U),k=await Ke(r.getRecords,t.table.appId,_,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let L of k.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;O.has(v)||(O.add(v),b.push(L))}}return b}var td=new Map,nd=new Map,rd=new Map,id=new Map,od=new Map,ad=new Map;function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function Z(e,t,n){let r=Vn(id,n,e);if(r)return r;let i=t.getFields(e);return Wn(id,n,e,i),i}async function it(e,t,n){let r=Vn(ad,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(ad,n,e,i),i}async function yl(e,t,n){let r=Vn(od,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(od,n,e,i),i}async function hl(e,t,n){let r=await yl(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Se(e,t,n){let r=Vn(td,n,e);if(r)return r;let i=await Z(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(td,n,e,o),o}async function Qs(e,t,n){let r=Vn(nd,n,e);if(r)return r;let i=await Z(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(nd,n,e,o),o}async function ng(e,t,n){let r=await Qs(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function sd(e,t,n){let r=Vn(rd,n,e);if(r)return r;let i=await Z(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(rd,n,e,o),o}function rg(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 ig(e,t,n,r){let i=rg(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 p=await Z(c,t,n);return[c,new Map(p.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?tt(R,e.from.appId):void 0}let f=o.find(R=>Pe(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(Ae(f,c.field));return E?tt(E,f.appId):Qt(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(Ae(e.from,c.field));return f?tt(f,e.from.appId):Qt(c.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(Ae(f,c.field)),R=E?tt(E,f.appId):Qt(c.field);return R?[R]:[]});return p.length>1&&a.add(c.field),p.length===1?p[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let p;if(c.type==="FIELD")p=l(We(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")p=q("number");else if(c.type==="GROUPING_COL")p=q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")p=q("string");else if(c.type==="STRFUNC_COL")p=rn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")p=rt();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),p=Yo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(p=El(c.arg,l)):p=c.func==="GROUP_CONCAT"?q("string"):q("number"));p?.semantics&&d.set(c.alias,p.semantics)}let u=new Map;for(let c of i){let p=d.get(c)??l(We(c))?.semantics;if(!p){let E=We(c);E.tableAlias===null&&a.has(E.field)&&u.set(c,J({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await yl(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}u.set(c,f)}return u}async function Hr(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([og(e,t,n),ag(e,t,n),ig(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function og(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 Qs(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Qs(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function ag(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 sd(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await sd(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Vd(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 sg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function lg(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||sg.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function He(e,t,n,r){let i=await Z(e,n,r);return lg(e,t,i),i}async function mt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?it(e,r,i):void 0}function an(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",u=we(d,l,r);if(!u.ok)throw new Error(`DmlValidationError: ${u.code} ${u.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:c?d:u.value}}})}async function ug(e,t,n,r,i){let o=await He(e.appId,e.fields,t,r),a=await gr({statement:e,fieldInfos:o,dmlMaxRows:Fe(n.dmlMaxRows,"dmlMaxRows",yt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>it(e.appId,t,r)});return Kg(e,a,o)}async function cg(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Wd(e,t,n,r,i);return $g(e,a,o)}async function Wd(e,t,n,r,i){let o=await He(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=Jd(e),l=new Set;for(let m of s){let y=on(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let d=await Qr(e.appId,e.keyFields,s,t,n,a),u=s.map(m=>Xr(d,m)),c=new Map,p=[...new Set(u.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Gn(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of y.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,h)}}let E=u.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await Dc({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Fe(n.dmlMaxRows,"dmlMaxRows",yt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),statementNumber:i,loadNumberPrecision:()=>it(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function pg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await He(e.appId,e.fields,t,r),o=await gr({statement:e,fieldInfos:i,dmlMaxRows:Fe(n.dmlMaxRows,"dmlMaxRows",yt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),loadNumberPrecision:()=>it(e.appId,t,r)}),a=os(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:jo(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await Fc(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function dg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Wd(e,t,n,r,1),o=as(i);if(n.confirm){let s=jo(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await xc(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function fg(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 jo(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=fg(n?No(n):[],r?No(r):[]),a=Eg(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),d=o.reduce((p,f)=>p+f.appendRows,0),u=o.reduce((p,f)=>p+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:u,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=No(n),f=No(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,R)=>E+R.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function No(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 Eg(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 gl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return ug(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return cg(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await zd(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Al(e,t,n,r,i,o)).result}var Yr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Al(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(v=>v.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let u=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,c=await He(e.appId,u,t,r);e.type==="UPDATE"&&await Fn(e,t,r);let p=new Map(c.map(v=>[v.code,v])),f=await mt(e.appId,u,c,t,r),E=ze(c,d),R=Ip(E),m=(await Rg(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,A)=>v.rowNumber-A.rowNumber),y=m.filter(v=>v.mode==="update"),h=e.type==="UPDATE"?hg:e.type.startsWith("UPSERT")?v=>gg(v,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=y.length>0&&g!==void 0,w=new Map;if(S){Ja(y,u,c);let v=await g({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let C of y){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let M=v.get(C.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let N=wp(M,C.record??{});A.set(C.rowNumber,N)}f===void 0&&[...A.values()].some(C=>jt(C,E))&&(f=await it(e.appId,t,r));for(let C of y){let M=A.get(C.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);w.set(C.rowNumber,qt(M,E,f,o,C.rowNumber,l))}}let b=Xa(m,l,d,u,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:O,invalidRows:P,invalidRowNumbers:U}=b;if(S){let v=new Map(b.candidateResults.map(A=>[A.rowNumber,A]));O=[],U=new Set;for(let A of m){let C=v.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];O.push(...F),F.length>0&&U.add(A.rowNumber);continue}let M=w.get(A.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let N=bp({rowNumber:A.rowNumber,setFields:u,normalizedPostImage:M.normalizedRecord,preErrors:C.preErrors,postImageErrors:M.errors,checkErrors:C.checkErrors});A.record=N.writeRecord,O.push(...N.errors);for(let F of N.invalidRowNumbers)U.add(F)}P=U.size}let I=[...d,...Cn],_={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-P,invalidRows:P,errorCount:O.length,columns:I,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let v of d){if(v==="$id"){k.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:J({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(v);A&&k.set(v,tt(A,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of Cn)k.set(v,q(L.has(v)?"number":"string"));return ln.set(_,k),{result:_,candidates:m,invalidRowNumbers:U,columnMeta:k}}async function Zs(e,t,n,r,i,o){let a=await Al(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");nt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Ve,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Yr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new le(E,d.length)}let u={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let m=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...u}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...u}}let c=d.filter(E=>E.mode==="create"),p=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...u}}async function Rg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return yg(e,n,r,i,o,s);let l,d,u,c,p;if(e.type==="INSERT"||e.type==="UPSERT")ld(e,e.fields),p=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),sn(e,p),l=e.values.map(S=>S.map((w,b)=>w.type==="CASE_VALUE"?Lt(w.expr,{},a.get(e.fields[b])?.fieldType):w));else{let S=await Tl.materialize(e,n,r,i,o,[...a.values()]),w=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!w&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(w&&new Set(S.columns).size!==S.columns.length)throw fe("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");ld(e,S.columns),d=S.rows,u=S.importPresence,c=S.importRowErrors;let b=S.columnMeta;p=new Map(S.columns.map(O=>{let P=b?.get(O),U=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[O,U]})),sn(e,p),l=S.rows.map(O=>S.columns.map(P=>O[P]??""))}let f=l.map((S,w)=>({rowNumber:w+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,O)=>u&&!u[w]?.has(b)?[]:[[b,S[O]]])),preErrors:[...c?.[w]??[]],record:{},evaluationRow:d?.[w]??Object.fromEntries(e.fields.map((b,O)=>[b,qe(S[O])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,w])=>[S,w.fieldType])),R=f.map(S=>e.keyFields.map(w=>qe(S.payload.get(w)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let w=on(S,m);y.set(w,(y.get(w)??0)+1)}let h=$o.has(e);if(h&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await Qr(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,w)=>{let b=R[w],O=Xr(g,b);S.mode=O===void 0?"create":"update",O!==void 0&&(S.targetId=O),e.keyFields.forEach((P,U)=>{b[U]===""&&S.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(y.get(on(b,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Sl(e){return e.checkGroups?Pn(e.checkGroups):[]}function ld(e,t){let n=new Set(t);for(let r of Sl(e)){if(r.tableAlias!==null)throw fe(`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 fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var mg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function sn(e,t){if(e.checkGroups)for(let n of Zu(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(mg.has(i??""))throw fe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function yg(e,t,n,r,i,o){if(e.from)return Sg(e,e.from,t,n,r,i,o);await tf(e.assignments,t,n,r);let a=await Se(e.appId,t,r),s=Hd(e,a);sn(e,el(a,e.appId));let l,d=new Map,u=new Map;if(Fi(e)){let c=Ua(e),p=[...new Set([...c.fields,...s,...o??[]])],f=await Ke(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Lo(f.records),d=u,l=Ma(e,f.records,a).flatMap(E=>E.records)}else{let c=cr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await Ke(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Lo(f.records),d=u,l=pr(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await Ke(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Lo(p.records),l=pr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let p=await Qi(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=pr(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((c,p)=>c.id-p.id).map((c,p)=>({rowNumber:p+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:u.get(c.id),evaluationRow:Ag(d.get(c.id),e.appId),evaluationFieldTypes:el(a,e.appId)}))}function Lo(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 hg(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 gg(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 Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,u=Number(d);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(u))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${u}.`);if(o.has(u))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${u}.`);o.set(u,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 Hd(e,t){if(e.from)return[];let n=new Set;for(let r of Sl(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw fe(`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 fe(`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 Ag(e,t){if(!e)return{};let n=pt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function el(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Sg(e,t,n,r,i,o,a){let s=await lf(e,t,n,i,o);sn(e,s.evaluationTypes);let l=await Yd(e,t,n,r,i,o,a),d=await Se(e.appId,n,i),u=xa(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?Lo(l.map(f=>f.target)):new Map;return u.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:TA(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Tg=Kd,Ig=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Yd(e,t,n,r,i,o,a){let s=await wg(e,t,n,i),l=await lf(e,t,n,i,o),d=[...new Set(e.assignments.filter(w=>w.value.type==="SOURCE_FIELD").map(w=>w.value.type==="SOURCE_FIELD"?w.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...d])],c=await bg(t,u,d,n,r,i,o),p=new Map,f=new Map;for(let w of c){if(!Object.prototype.hasOwnProperty.call(w,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=ud(w[t.joinKeyField],s,"source");if(p.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);p.set(b,w),f.set(b,String(w[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...Vg(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":cr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],h=new Set,g=0;for(let w of Gn([...f.values()],Tg)){let b=`${t.targetJoinField} in (${w.map(xo).join(",")})`,O=m?`(${b}) and (${m})`:b,P=await Ke(n.getRecords,e.appId,O,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=P.records.length,g>E)throw new Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let U of P.records){let I=U.$id?.value;if(typeof I!="string"||I==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(I)||(h.add(I),y.push(U))}}let S=[];for(let w of y){let b=w[t.targetJoinField]?.value,O=ud(b,s,"target");if(O===null)continue;let P=p.get(O);P!==void 0&&S.push({target:w,source:P})}return S}async function wg(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await Z(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 bg(e,t,n,r,i,o,a){if(e.cteName!==null){let u=a?.get(e.cteName);if(!u)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!u.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return u.rows}let s=await Se(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 u of n){if(u!=="$id"&&!s.has(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);let c=u==="$id"?"RECORD_NUMBER":s.get(u);if(Ig.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${u}).`)}return(await Ke(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>pt(u,null))}function ud(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Zr(e,t,n,r,i){let o=await Al(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<c.length;p+=100)await t.putRecords({app:e.appId,records:c.slice(p,p+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),u=0;for(let c=0;c<l.length;c+=100){let p=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});u+=p.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:u,updatedCount:d.length}}async function Pg(e,t,n,r){if(e.applyBlocks?.length)return pg(e,t,n,r);if(e.checkGroups?.length)return Zr(e,t,n,r);if(e.subtableCode)return Yg(e,t,n,r);let i=await He(e.appId,e.fields,t,r),o=await mt(e.appId,e.fields,i,t,r),a=await Se(e.appId,t,r),s=Mi(e,a);an(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let u=await t.postRecords(d);l.push(u.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Ng(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ye},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function jd(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Lp(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 D=new Set(e.targets.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode));if(e.replaceSubtables.some(x=>!D.has(x)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let x of e.targets.filter(W=>W.kind==="SUBTABLE"))if(!x.rowIdSourceHeader||!e.replaceSubtables.includes(x.subtableCode))throw new Error(`ArgumentError: CSV subtable ${x.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,p=await Z(e.appId,t,r),f=c.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=p.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await it(e.appId,t,r):void 0,R=await To(o,new Map),m=e.source.kind==="JSON"?kp(e.source,R,c,n.maxRecords??1e4):Mp(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=Bp(m,c,p,E,y);if(e.source.kind==="CSV")return Cg(e,m,h,p,t,n,i);Ms(h,e.rejectLimit);let g=[...new Set(c.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],S=xs(h.errors,g),w=[...g,...Fs],b=h.invalidParentRows.size,O={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-b,invalid:b,mutationCandidates:h.parents.filter(D=>D.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:h.parents.length,validRows:h.parents.length-b,invalidRows:b,errorCount:S.length,columns:w,errors:S,importDetail:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&nt(i,e.validationErrorTable,w,S,n.tempTableMaxRows??Ve,new Map),e.validateOnly)return P;if(Gp(m),h.errors.length>0&&!e.onErrorSkip){let D=h.errors[0];throw new Error(`DmlValidationError: ${D.code} ${D.message} (row=${D.parentRow}, field=${D.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");nt(i,e.errorTable,w,S,n.tempTableMaxRows??Ve,new Map)}let U=h.parents.filter(D=>D.valid),I=new Map(p.map(D=>[D.code,D.fieldType])),_=U.map(()=>{});if(e.keyFields){for(let ee of e.keyFields)if(!e.fields.includes(ee))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${ee}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let D=e.keyFields.map(ee=>I.get(ee)==="NUMBER"),x=new Set,W=U.map(ee=>e.keyFields.map(ht=>String(ee.top[ht]?.value??"")));for(let ee of W){let ht=on(ee,D);if(x.has(ht))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");x.add(ht)}let ue=await Qr(e.appId,e.keyFields,W,t,n,I);W.forEach((ee,ht)=>{_[ht]=Xr(ue,ee)})}let k=c.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),L=new Map,v=_.filter(D=>D!==void 0);for(let D of Gn([...new Set(v)],100)){let x=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let W of x.records){let ue=Number(W.$id?.value),ee=Number(W.$revision?.value);Number.isFinite(ue)&&L.set(ue,{id:ue,...Number.isFinite(ee)?{revision:ee}:{},record:W})}}let A=Vp(U,_,L),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(D=>D.mode==="INSERT").length,updatedParents:A.filter(D=>D.mode==="UPDATE").length,hasDeletes:A.some(D=>D.tables.some(x=>x.deleteRows>0)),parents:A.map(D=>({parentRow:D.parentRow,mode:D.mode,...D.targetId===void 0?{}:{targetId:D.targetId},tables:D.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new le(e.keyFields?"UPDATE":"INSERT",A.length)}let M=D=>new Map(Object.entries(D).map(([x,W])=>[x,W.value])),N=D=>$p(M(D.top),new Map([...D.subtables].map(([x,W])=>[x,W.map(ue=>({values:M(ue)}))]))),F=A.filter(D=>D.mode==="INSERT"),Y=A.filter(D=>D.mode==="UPDATE"),j=[];for(let D=0;D<F.length;D+=100){let x=await t.postRecords({app:e.appId,records:F.slice(D,D+100).map(N)});j.push(x.ids)}for(let D=0;D<Y.length;D+=100)await t.putRecords({app:e.appId,records:Y.slice(D,D+100).map(x=>({id:x.targetId,...x.revision===void 0?{}:{revision:x.revision},record:N(x)}))});return e.keyFields?{type:"UPSERT",insertedCount:j.flat().length,updatedCount:Y.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:j,insertedCount:j.flat().length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Og(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Ng(),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};$o.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await gl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&nt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Ve,ln.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",Zs(s,t,n,r,i,1));return d(c)}let u=await(s.type==="UPSERT_SELECT"?Pl(s,t,n,r,i):Il(s,t,n,r,i));return d(u)}async function Cg(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Wp(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=$s(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],u=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],c=await Te(i.getRecords,e.appId,"",["$id","$revision",...u],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of c){let v=Number(L.$id?.value),A=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(A)?{revision:A}:{},record:L});for(let C of u){let M=L[C]?.value;if(Array.isArray(M)){for(let N of M)if(N.id){let F=f.get(N.id)??[];F.push({parentId:v,table:C}),f.set(N.id,F)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let A=[...L.errors];for(let M of l.errors[v])A.push({operation:"UPDATE",parentRow:L.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[v].top});let C=E[v];return C!==void 0&&!p.has(C)&&A.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:A.length===0,errors:A}}),m=Hp(t.records,R,E,p,f),y=m.flatMap(L=>[...L.errors]),h=new Set(m.filter(L=>!L.valid).map(L=>L.parentRow)),g={...n,parents:R,errors:y,invalidParentRows:h};Ms(g,e.rejectLimit);let S=m.filter(L=>L.valid),w=m.flatMap(L=>L.tables),b=(L,v)=>w.filter(A=>A.table===L).reduce((A,C)=>A+Number(C[v]),0),O=Object.fromEntries(d.map(L=>[L,{existingRows:b(L,"existingRows"),inputRows:b(L,"inputRows"),updateRows:b(L,"updateRows"),addRows:b(L,"addRows"),deleteRows:b(L,"deleteRows"),rowIdNotFound:b(L,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:h.size,parents:S.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},U=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],I=xs(y,U),_=[...U,...Fs];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&nt(a,e.validationErrorTable,_,I,o.tempTableMaxRows??Ve,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:I.length,columns:_,errors:I,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:h.size,mutationCandidates:S.length},tables:O,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");nt(a,e.errorTable,_,I,o.tempTableMaxRows??Ve,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new le("UPDATE",S.length)}let k=L=>new Map(Object.entries(L).map(([v,A])=>[v,A.value]));for(let L of S){let v=Ks(k(L.top),new Map([...L.subtables].map(([A,C])=>[A,C.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:k(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:L.targetId,...L.revision===void 0?{}:{revision:L.revision},record:v}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function Og(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 He(e.appId,e.fields,n,i),s=await mt(e.appId,e.fields,a,n,i),l=await To(t,new Map),d=vs(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),u=d.recordNumberSourceValues;if(!u)throw new Error("InternalError: record-number source values were not materialized.");let c=$s(u,e.recordNumberSourceHeader),p=new Set,f=[...new Set(c.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let U=f.slice(P,P+100),I=await n.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id"]});for(let _ of I.records){let k=_.$id?.value;typeof k=="string"&&k!==""&&p.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(P=>[P.code,P])),R=new Map(e.fields.map(P=>[P,E.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),m=d.rows.map((P,U)=>{let I=c.normalized[U],_=[...d.importRowErrors?.[U]??[],...c.errors[U]];return I!==null&&!p.has(I)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`}),{rowNumber:U+1,operation:"UPDATE",mode:"update",...I!==null&&p.has(I)?{targetId:Number(I)}:{},payload:new Map([[e.recordNumberSourceHeader,u[U]],...e.fields.map(k=>[k,P[k]??""])]),preErrors:_,record:{},evaluationRow:P,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],h=Xa(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),g=[...y,...Cn],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:g,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&nt(o,e.validationErrorTable,g,h.errors,r.tempTableMaxRows??Ve,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let P=h.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(nt(o,e.errorTable,g,h.errors,r.tempTableMaxRows??Ve,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new Yr(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let w=m.filter(P=>!h.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(w.length,"UPDATE"))throw new le("UPDATE",w.length);let b=w.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<b.length;P+=100)await n.putRecords({app:e.appId,records:b.slice(P,P+100)});let O={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(O,{insertedCount:0,importAudit:d.importAudit}),O}async function Lg(e,t,n,r,i,o){let a=$o.get(e);if(!a){let R=i&&i.size>0?await Rt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Ee.get(R)}}let s=await To(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),u=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Ds(a.source,s,u,l):vs(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=Yp(a.source.projection),f=new Map(i??[]);f.set(Bs,c);let E=await Rt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Ee.get(E)}}var Tl={materialize:Lg};function qd(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 Il(e,t,n,r,i){if(e.checkGroups?.length)return Zr(e,t,n,r,i);let o=await He(e.appId,e.fields,t,r),a=await mt(e.appId,e.fields,o,t,r),s=await Tl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(qd(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new le("INSERT",l.length);let u=await Se(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let h=f[d[y]]??"";R[m]={value:Vd(h,u.get(m))}}),R});c.forEach(f=>an([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});p.push(R.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function tl(e,t,n,r,i){if(e.applyBlocks?.length)return zd(e,t,n,r);if(e.checkGroups?.length&&Et(e.where)){let E=await He(e.appId,e.assignments.map(m=>m.field),t,r);await mt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Se(e.appId,t,r);return Hd(e,R),sn(e,el(R,e.appId)),await Fn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Zr(e,t,n,r,i);if(e.subtableCode)return await Fn(e,t,r),jg(e,t,n,r);let o=await He(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await mt(e.appId,a,o,t,r);if(await Fn(e,t,r),Et(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Gg(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await tf(e.assignments,t,n,r);let d=await Se(e.appId,t,r);if(Fi(e)){let E=Ua(e),m=(await Ke(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Ma(e,m,d);if(an(y.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new le("UPDATE",m.length);for(let h of y)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let u=cr(e),p=(await Qi(t.getRecords,u.app,u.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=pr(e,p,d);if(an(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new le("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function zd(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return _g(e,t,n,r,i);let o=await Z(e.appId,t,r),a=ct(e,o),s=Ki(e,o),l=Wa(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let u=Number(d.records[0].$id?.value);if(u!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${u} does not match requested $id ${l}.`);Vi(d.records[0]);let c=mc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=ze(o,e.assignments.map(w=>w.field)),f=jt(c.postImage,p)?await it(e.appId,t,r):void 0,E=qt(c.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Fe(n.dmlMaxRows,"dmlMaxRows",yt),m=Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),y=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let w=Sr({plans:[c],records:Rr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:jr(w.branches[0]),guards:qr(w.branches[0]),deletedRows:{total:c.tables.reduce((O,P)=>O+P.deletedRows,0),parentRows:c.tables.some(O=>O.deletedRows>0)?1:0},diagnostic:w};return ln.set(b,qo(E.columns,o,e.appId)),b}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=$i(c,E.normalizedRecord),g=Rr(h),S=Sr({plans:[h],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let w=jo(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:w,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function _g(e,t,n,r,i){let o=Fe(n.dmlMaxRows,"dmlMaxRows",yt),a=Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ne),s=await Z(e.appId,t,r),l=ct(e,s),d;if(Ko(e))d=await kg(e,t,n,s,r);else{let f=Ki(e,s),E=cr(e).query,R=o+1;d=await Te(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let u=await ji({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>it(e.appId,t,r)});if(e.validateOnly)return Bg(e,u,s);su("phase15b",e);let c=Sr(u);if(n.confirm){let f=jo(c);if(!await n.confirm(u.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",u.guards.parentRows)}let p=await Mc(u,t,c);return{...p,diagnostic:Ue(c,p)}}function Ko(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(Tt(e.where)||pe(e.where))}function Dg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ko(t)&&pe(t.where)}var vg=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
10
10
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
11
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Oh(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Ch}`)}async function Lh(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),p=Ga(e.where,{fieldTypes:s,fieldOptions:l});Oh(p);let u=p.prefilter===null?"":$(p.prefilter),d=new Set(Ni(e,r));for(let E of _h(e.where))d.add(E);let c=await Dh(e.appId,e.where,a,t,i);return(await ge(t.getRecords,e.appId,u,[...d],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:it(E,null)})).filter(({row:E})=>J(e.where,E,c.fieldTypeResolver,p.appliedKlikes,c.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function _h(e){return _s(e)}async function Dh(e,t,n,r,i){let s=[...vh(t)].some(u=>n.get(u)?.fieldType==="STATUS")?await $s(e,r,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":n.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return hn(q({fieldType:"__ID__"}),e,"$id");let d=n.get(u.field);if(!d)return;let c=d.semantics??q(d),f=d.fieldType==="STATUS"&&s?{...c,optionOrder:s}:c;return hn(f,e,d.code)}}}function vh(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 Uh(e,t,n){let r=t.validations.flatMap(u=>u.errors),i=t.validations.reduce((u,d)=>u+(d.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ve(n,e.fields).payloadFields,...ur],a=t.guards.parentRows,s=Ma(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:xr(l),guards:Kr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return vn.set(p,vo(o,n,e.appId)),p}function kh(e,t,n){let r=t.validations,i=r.flatMap(p=>p.errors),o=r.reduce((p,u)=>p+(u.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ve(n,e.assignments.map(p=>p.field)).payloadFields,...ur],s=dr(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:xr(s.branches[0]),guards:Kr(s.branches[0]),deletedRows:{total:t.plans.reduce((p,u)=>p+u.tables.reduce((d,c)=>d+c.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(u=>u.deletedRows>0)).length},diagnostic:s};return vn.set(l,vo(a,n,e.appId)),l}function Mh(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Ve(n,e.fields).payloadFields,...ur],l=Fa(t),p=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),d=xr(p),c=xr(u),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:[...d,...c],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:d,guards:Kr(p)},update:{apply:c,guards:Kr(u)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return vn.set(f,vo([...s],n,e.appId)),f}function xr(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:Wt(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Wt(t,"ADD"),removedValues:Wt(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Kr(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 ut=100,be=500;function Ue(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 vo(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:q({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,qe(s,n));continue}o.set(a,Y(i.has(a)?"number":"string"))}return o}async function Fh(e,t,n,r,i,o){let a=await td(e,t,n,r,i,o),s=await he(e.appId,n,i),l=ya(e,a,s),p=e.assignments.map(c=>c.field),u=await Q(e.appId,n,i),d=await lt(e.appId,p,u,n,i);if(qt(l.flatMap(c=>c.records.map(f=>f.record)),p,u,d),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new te("UPDATE",a.length);for(let c of l)await n.putRecords(c);return{type:"UPDATE",updatedCount:a.length}}function xh(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 Kh(e,t,n,r){if(await Ln(e,t,r),st(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Vh(e,t,n,r);let i=Iu(e),a=(await Bi(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 te("DELETE",a.length);let s=wu(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function Bh(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ah(e,t,n,r);if(e.checkGroups?.length)return Wr(e,t,n,r);let i=await $e(e.appId,e.fields,t,r),o=await lt(e.appId,e.fields,i,t,r),a=[],s=[],l=await he(e.appId,t,r),p=od(e),u=await Vr(e.appId,e.keyFields,p,t,n,l);if(e.values.forEach((c,f)=>{let E={};e.fields.forEach((m,y)=>{let h=c[y];h.type==="CASE_VALUE"?E[m]={value:gt(h.expr,{},l.get(m))}:E[m]={value:tt(h,l.get(m))}});let R=Gr(u,p[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),qt([...a,...s.map(c=>c.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let c=a.length+s.length;if(!await n.confirm(c,"UPDATE"))throw new te("UPDATE",c)}let d=[];for(let c=0;c<a.length;c+=100){let f=await t.postRecords({app:e.appId,records:a.slice(c,c+100)});d.push(f.ids)}for(let c=0;c<s.length;c+=100)await t.putRecords({app:e.appId,records:s.slice(c,c+100)});return{type:"UPSERT",insertedCount:d.flat().length,updatedCount:s.length}}function od(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"?G(i):i.type==="CASE_VALUE"?Le(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Hs(e,t,n,r){if(t.length===0)return;let i=await he(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 $h(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 ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Uo(a),l=new Map;for(let u of e.values){let d=Pp(u[o]);if(!s.get(d))throw new Error(`_pid=${d} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Pp(u[m])}}});let E=l.get(d);E?E.push(f):l.set(d,[f])}let p=[];for(let[u,d]of l.entries()){let c=s.get(u),E=[...Hr(c,i),...d];p.push(ad(e.appId,u,Yr(c),i,E))}for(let u of p)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function Gh(e,t,n,r){let i=e.subtableCode;if(!_r(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];at(e.where,o);for(let c of e.assignments)c.value.type==="CASE_VALUE"&&So(c.value.expr,o);let a=await Hs(e.appId,o,t,r),s=await ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Ys(s,i).filter(c=>J(e.where,c.flat,a));if(n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new te("UPDATE",p.length);let u=new Map;for(let c of p){if(!c.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=u.get(c.parentId);f||(f=new Map,u.set(c.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:Pi(R.value,c.flat,a)}}f.set(c.rowId,E)}let d=Uo(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let m=Hr(E,i).map(y=>{let h=y.id??"";if(!h)return y;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(Wh(e.appId,c,Yr(E),i,m))}return{type:"UPDATE",updatedCount:p.length}}async function Vh(e,t,n,r){let i=e.subtableCode;if(!_r(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];at(e.where,o);let a=await Hs(e.appId,o,t,r),s=await ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Ys(s,i).filter(c=>J(e.where,c.flat,a));if(n.confirm&&!await n.confirm(p.length,"DELETE"))throw new te("DELETE",p.length);let u=new Map;for(let c of p){let f=u.get(c.parentId);f?f.push(c.rowIndex):u.set(c.parentId,[c.rowIndex])}let d=Uo(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let R=Hr(E,i),m=new Set(f),y=R.filter((h,g)=>!m.has(g));await t.putRecords(ad(e.appId,c,Yr(E),i,y))}return{type:"DELETE",deletedCount:p.length}}function Uo(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Ys(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Yr(r),a=Hr(r,t);for(let s=0;s<a.length;s++){let l=a[s],p={...Ci(l,s),_pid:i};for(let[u,d]of Object.entries(r))u!==t&&(p[`_p.${u}`]=Ps(d?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return n}function Hr(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Yr(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function ad(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Wh(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Hh(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 Pp(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?G(e):e.type==="CASE_VALUE"?Le(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Ps(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 _r(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return _r(e.left)||_r(e.right);case"NOT":case"GROUP":return _r(e.expr);default:return!1}}async function Yh(e,t,n,r){let i=[];at(e.where,i);let o=await Hs(e.appId,i,t,r),a=await Q(e.appId,t,r);if(st(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??q(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return x("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??x("string")},p=await ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Ys(p,e.subtableCode),d=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(u.filter(f=>e.where&&J(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(d.size,"UPDATE"))throw new te("UPDATE",d.size);let c=Uo(p);for(let f of d){let E=c.get(f);if(!E)continue;let m=Hr(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:jh(E,e.subtableCode,h,g)}));m.sort((h,g)=>qh(h.flat,g.flat,e.by,l));let y=m.map(h=>h.row.id??"");await t.putRecords(Hh(e.appId,f,Yr(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:d.size}}function jh(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}`]=Ps(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Ps(a?.value);return i}function qh(e,t,n,r){for(let i of n){let o=Np(i.key,e),a=Np(i.key,t),s=i.key.type==="FIELD_NAME"?r(Be(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?Ht(i.key.expr).semantics??x("string"):x("number"),l=Dt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Np(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 ie(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function sd(e,t,n,r,i){if(e.checkGroups?.length)return Wr(e,t,n,r,i);let o=await $e(e.appId,e.fields,t,r),a=await lt(e.appId,e.fields,o,t,r),s=await Ws.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(nd(s),p.length!==e.fields.length){let y=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],d=[],c=await he(e.appId,t,r),f=l.map((y,h)=>{let g={};return e.fields.forEach((S,N)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let w=y[p[N]]??"";g[S]={value:Xp(w,c.get(S))}}),g});f.forEach(y=>qt([y],e.fields.filter(h=>h in y),o,a));let E=f.map(y=>e.keyFields.map(h=>String(y[h]?.value??"")));if(No.has(e)){let y=e.keyFields.map(g=>c.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=jt(g,y);if(h.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");h.add(S)}}let R=await Vr(e.appId,e.keyFields,E,t,n,c);if(f.forEach((y,h)=>{let g=Gr(R,E[h]);g!==void 0?d.push({id:g,record:y}):u.push(y)}),n.confirm&&u.length+d.length>0){let y=u.length+d.length;if(!await n.confirm(y,"UPDATE"))throw new te("UPDATE",y)}let m=[];for(let y=0;y<u.length;y+=100){let h=await t.postRecords({app:e.appId,records:u.slice(y,y+100)});m.push(h.ids)}for(let y=0;y<d.length;y+=100)await t.putRecords({app:e.appId,records:d.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:d.length}}async function ld(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function ud(e,t,n){let r=await Q(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function zh(e,t=!1){try{let n=new tn(e).tokenize(),r=new on(n,{import:t}).parse();return oi("phase15b",r),mn(r),r}catch(n){throw n instanceof fe||n instanceof T,n}}async function Br(e,t,n,r,i){let o=[];ho(e,t,n,r,o,i),await Promise.all(o)}async function cd(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Br(s.condition,t,n,r,i));await Promise.all(o)}function Dr(e,t,n,r,i){return i!==void 0&&i.size>0?Yt(e,t,n,i,r):wt(e,t,n,r)}function ho(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Dr(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(p=>p[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Dr(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":ho(e.left,t,n,r,i,o),ho(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":ho(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Dr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function pd(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await wt(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 dd(e,t,n,r,i){let o=new Map,a=[];for(let p=0;p<e.length;p++){let u=e[p];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(u.query),c=o.get(d);c||(c=Dr(u.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(d,c)),a.push([p,c])}let s=await Promise.all(a.map(([,p])=>p)),l=new Map;return a.forEach(([p],u)=>l.set(p,s[u])),l}var fd=new WeakMap,Ed=new WeakMap,Rd=new WeakMap;async function Jh(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},p=new Map,u=new Map,d=new Map,c=new Set,f=i??await Cs(e,l,n),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||c.has(m))return;if(c.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let h=m;await Co(h,l,n);let g=[h.from,...h.joins.map(P=>P.table)].some(P=>P.cteName!==null);if(Z(h).type==="PLAIN"&&!g){let P=await vs(h,l,n);P&&d.set(h,P)}let S=[h.from,...h.joins.map(P=>P.table)].filter(P=>P.cteName===null).map(P=>P.appId);(He(h.where)||h.orderBy.length>0||h.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0))&&S.forEach(P=>o.add(P));let w=await kr(h,l,n),_=E(h);if(w.capability==="UNSUPPORTED"&&!_)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(w)}).`);p.set(h,w);let v=ks.get(h)??Oo(h,await Lo(h,l,n));if(v&&fd.set(h,v),h.orderBy.length>0||h.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0)){let P=await Fr(h,l,n);if(h.orderMode!=="KINTONE_NATIVE")for(let L of P.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(go(h)&&!g&&_?.allowed!==!1){let L=w.capability==="EXACT_PUSHDOWN"?Ce(h):"FULL_SCAN";u.set(h,(h.orderMode==="KINTONE_NATIVE"?Ar:gr)({stmt:h,staticMode:L,whereCapability:w.capability,whereReasons:w.reasons,orderSemantics:P.semantics,maxRecords:r,hasKlike:ue(h.where)}))}}}else if(y.type==="VALIDATE"){let h=m;o.add(h.appId);let g=await Q(h.appId,l,n),S=new Map(g.filter(C=>!C.inSubtable).map(C=>[C.code,C])),N=new Set(g.filter(C=>C.inSubtable).map(C=>C.code)),w=Da(h,g),_=gn(h.checkGroups??[]),O=_s(h.where);for(let C of _){if(C.field!=="$id"&&!S.has(C.field)&&!N.has(C.field))throw pe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${C.field} \u306F APP${h.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(C.field!=="$id"&&!S.has(C.field)&&N.has(C.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${C.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let C of O){if(C!=="$id"&&!S.has(C)&&!N.has(C))throw new Error(`ArgumentError: WHERE field ${C} does not exist in APP${h.appId}.`);if(C!=="$id"&&!S.has(C)&&N.has(C))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${C} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let v=new Map([...S].map(([C,I])=>[C,I.fieldType]));v.set("$id","RECORD_NUMBER"),zt(h,v);let P=we(h.where,C=>C.field==="$id"?q({fieldType:"__ID__"}):S.get(C.field)?.semantics??(S.has(C.field)?q(S.get(C.field)):void 0));if(P.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(P)}).`);let L=new Map([...S].map(([C,I])=>[C,I.fieldType])),U=new Map([...S.values()].flatMap(C=>C.optionOrder?[[C.code,new Set(Object.keys(C.optionOrder))]]:[])),A=h.where===null?null:P.capability==="EXACT_PUSHDOWN"?h.where:dn(h.where,{allowUnqualifiedFields:!0,fieldTypes:L,fieldOptions:U,allowKlike:!1}),b=w.some(C=>C.field.fieldType==="NUMBER");b&&(s.add(h.appId),await Je(h.appId,l,n)),Ed.set(h,{targetFields:w.map(C=>C.subtableCode?`${C.subtableCode}(${C.field.code})`:C.field.code),fetchFields:[...new Set(["$id",...w.map(C=>C.subtableCode??C.field.code),...O,..._.map(C=>C.field)])],subtables:new Map([...new Set(w.flatMap(C=>C.subtableCode?[C.subtableCode]:[]))].map(C=>[C,w.filter(I=>I.subtableCode===C).length])),capability:P,prefilter:A,numberPrecision:b})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let g=m,S=await Q(g.appId,l,n);if(nt(g,S),bo(g)){let N=S.filter(_=>!_.inSubtable),w=Ga(g.where,{fieldTypes:new Map(N.map(_=>[_.code,_.fieldType])),fieldOptions:new Map(N.flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[]))});Rd.set(g,w)}}let h=m;(h.type!=="UPDATE"||!bo(h))&&E(h)?.allowed!==!1&&await Ln(h,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Et(e)){let m=Rt(e),y=await kr(m,l,n),h=E(m);if(y.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(y)}).`);if(p.set(m,y),go(m)&&h?.allowed!==!1){let g=await Fr(m,l,n);u.set(m,(m.orderMode==="KINTONE_NATIVE"?Ar:gr)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?Ce(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:ue(m.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Cp(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 Xh(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 Op(e){return e==="<>"?"!=":e}function xe(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(xe).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return xe(t.expr);case"GROUPING_FIELD":return`GROUPING(${xe(t.ref)})`;case"GROUPING_REF":return xe(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${xe(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${xe(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(xe).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(xe).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Gt(e){try{let t=e;switch(t.type){case"BINARY":return`${xe(t.left)} ${Xh(t.op)} ${xe(t.right)}`;case"NULL_CHECK":return`${xe(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Gt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Gt(t.right)})`;case"NOT":return`NOT (${Gt(t.expr)})`;case"GROUP":return`(${Gt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Qh(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=j(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Zh(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let p=ys(l),u=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ms(p)}: ${p}`,` ${hs(p)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${u}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Gt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(j)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!j(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=ys(s),p=s.left.type==="FIELD"?s.left.field:void 0,u=Op(s.op),d=n.capability?.reasons.find(c=>c.functionName===l&&(p===void 0||c.field===p)&&c.operator===u);t.push(` ${ms(l)}: ${l}`,` ${hs(l)}: kintone server whole-WHERE exact`,` field: ${d?.field??p??"(unknown)"} (${d?.fieldType??"unknown"})`,` operator: ${d?.operator??u}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Lp(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=ys(s),p=s.left.type==="FIELD"?s.left.field:void 0,u=Op(s.op),d=n.capability?.reasons.find(c=>c.functionName===l&&(p===void 0||c.field===p)&&c.operator===u);t.push(` ${ms(l)}: ${l}`,` ${hs(l)}: kintone server exact prefilter`,` field: ${d?.field??p??"(unknown)"} (${d?.fieldType??"unknown"})`,` operator: ${d?.operator??u}`)}let a=$(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Gt(o.residualWhere)}`,` ${Lp(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!j(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Zh(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,p=l?.type==="KINTONE_FUNC"&&l.name===t,u=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(d=>d!==null&&typeof d=="object"&&d.type==="KINTONE_FUNC"&&d.name===t);if((p||u)&&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 ms(e){return j(e)?"relative date function":"kintone function"}function ys(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 hs(e){return j(e)?"relative date evaluation":"kintone function evaluation"}function Lp(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&j(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function eg(e,t,n,r,i,o=100,a=be,s){let l=s??await Cs(e.query,t,n),p=await Jh(e.query,t,n,r,l),u=Qh(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...Cp(p),...u]:[...Cp(p),...u,...tg(md(e.query,void 0,p.capabilities,p.orderPlans,o,a,r,p.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:d.map(c=>({plan:c})),rowCount:d.length}}function tg(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 md(e,t,n,r,i=100,o=be,a=1e4,s){if(e.type==="UNION")return rg(e,n,r,s);if(e.type==="WITH")return ig(e,n,r,s);if(e.type==="INSERT")return sg(e,t,i,o);if(e.type==="INSERT_SELECT")return lg(e,t,n,r,s);if(e.type==="UPSERT")return dg(e,t,i,o);if(e.type==="UPSERT_SELECT")return fg(e,t,n,r,s);if(e.type==="UPDATE")return ug(e,t,n,r,i,o,a);if(e.type==="DELETE")return pg(e,t);if(e.type==="REORDER")return Eg(e,t);if(e.type==="VALIDATE")return ng(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let u=e.targets?.filter(d=>d.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",...u.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",p=e.targets?.some(u=>u.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...p?[" 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&&p?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...p?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return Ke(e,t,n,r,s)}function ng(e,t){let n=Ed.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)":$(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?Ls:Os).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 Ke(e,t,n,r,i){let o=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ce(e),p=og(e);o&&o.capability!=="EXACT_PUSHDOWN"&&p.push(...o.reasons.map(m=>m.code));let u=[],d=tc(e,Mr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${l}`),d&&(u.push(` grouping source: ${d.source}`),u.push(` grouping sets: ${d.expandedSetCount} (limit: ${d.setLimit})`),u.push(` grouping items: ${d.groupingItemCount} (limit: ${d.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${d.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let c=Z(e);if(c.type==="PLAIN"){let m=c.allItems;if(s)s.items.forEach((y,h)=>{let g=m[h];g?.type==="FIELD_NAME"&&y.kind==="PHYSICAL"&&u.push(` group key ${g.name}: PHYSICAL (source=${y.sourceIndex}, field=${y.fieldCode})`)});else if([e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null))for(let y of m)y.type==="FIELD_NAME"&&u.push(` group key ${y.name}: DEFERRED (materialized schema unavailable)`)}a?(u.push(` order plan: ${a.kind}`),a.reasonCodes.length>0&&u.push(` order reason: ${a.reasonCodes.join(", ")}`),a.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):a.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${a.scanRows}`))):d&&u.push(" order plan: CANONICAL_LOCAL");let f=a&&!a.requiresCompleteInput?{...e,orderBy:[]}:e,E=Ot(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=st(e.where);if(E.size>0&&(!R||d!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...E].join(", ")}`),u.push(" onLimit=truncate: disabled")),R)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(l==="FULL_SCAN"&&p.length>0&&u.push(` reason: ${p.join(", ")}`),l==="SIMPLE"){let m=ai(a?.kind==="CANONICAL_REST_TOP_N"?Gp(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?Va(e):m.query;u.push(` kintone query: ${y||"(\u306A\u3057)"}`),u.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=fd.get(e),y=m??En(e);if(e.joins.length>0)if(m){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),m.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${m.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${m.joinPlan.residualWhere===null?"(none)":Gt(m.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${m.joinPlan.allKlikes.length-m.joinPlan.appliedKlikes.size}`),m.joinPlan.residualWhere!==null)for(let L of m.joinPlan.rejections)u.push(` join pushdown not applied: ${L.reason}`)}else{let L=e.joins.some(U=>U.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(U=>U.table)].some(U=>U.cteName!==null||!!U.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${L}`)}let h=Lt(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",S=y.mainCondition,N=xp(e),w=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ft(e.where)?$(e.where):"",_=e.from.alias?m?.queriesByAlias.get(e.from.alias):void 0,O=_||(S!==null?$(S):w||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${O}`);let v=m?.joinPlan.items.find(L=>L.targetAlias===e.from.alias),P=m?.joinPlan.serverFunctionConsumptions.find(L=>L.targetAlias===e.from.alias);v||P?(u.push(` pushdown applied: ${_}`),u.push(` relation: ${v?.relation??"exact"}`)):!m&&N!==null&&u.push(` pushdown candidate: ${$(N)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${h.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.join(", ")}`);for(let L of e.joins){let U=Lt(e,L.table,s),A=L.table.alias?` AS ${L.table.alias}`:"",b=L.type==="INNER"?"JOIN":`${L.type} JOIN`,C=L.table.alias?y.joinConditions.get(L.table.alias)??null:null,I=L.table.alias&&!L.table.subtableCode&&L.table.cteName===null&&e.where?qn(e.where,{tableAlias:L.table.alias}):null,k=L.table.alias?m?.queriesByAlias.get(L.table.alias):void 0,K=k||(C!==null?$(C):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${b}: APP${L.table.appId}${A} (${L.table.appId})`),u.push(` kintone query: ${K}`);let H=m?.joinPlan.items.find(de=>de.targetAlias===L.table.alias),oe=m?.joinPlan.serverFunctionConsumptions.find(de=>de.targetAlias===L.table.alias);H||oe?(u.push(` pushdown applied: ${k}`),u.push(` relation: ${H?.relation??"exact"}`)):!m&&I!==null&&u.push(` pushdown candidate: ${$(I)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${U.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":U.join(", ")}`)}}return u.push(...ag(e,n,r,i)),u}function rg(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...Ke(s,`[union:${l+1}]`,t,n,r))}),a}function ig(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...Ke(o.query,`[cte: ${o.name}]`,t,n,r)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...md(e.query,"[main]",t,n,100,be,1e4,r)),Et(e)){i.push("");let o=Rt(e);i.push(...Ke(o,"[effective: inlined CTE]",t,n,r))}return i}function og(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=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"),ft(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),pt(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 ag(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...Ke(s.right.query,`[subquery:${o++}]`,t,n,r))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...Ke(s.right.query,`[subquery:${o++}]`,t,n,r)));break;case"EXISTS":i.push(""),i.push(...Ke(s.query,`[subquery:${o++}]`,t,n,r));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...Ke(s.query,`[subquery:${o++}]`,t,n,r)));return e.having&&a(e.having),i}function sg(e,t,n=ut,r=be){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,...js(xi(e,n,r))]:a}function lg(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(...Ke(e.select,"[source SELECT]",n,r,i)),o}function ug(e,t,n,r,i=100,o=be,a=1e4){if(e.applyBlocks?.length)return cg(e,t,i,o,a);let s=gu(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=bi(e),u=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),d=[];if(t&&d.push(t),d.push(e.from?" [UPDATE FROM]":" [UPDATE]"),d.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;d.push(` source: ${f} AS ${e.from.alias}`),d.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),d.push(` target filter: ${e.from.targetFilter?$r(e.from.targetFilter):"(none)"}`)}else d.push(` kintone query: ${$r(e.where)}`);e.subtableCode||(d.push(" selection: exact native pushdown; JS residual none"),d.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),d.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 c=[];if(s&&c.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&c.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),u&&c.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!u&&c.push("\u5358\u7D14 SET"),d.push(` set type: ${c.join(", ")}`),p){let f=mg(e);f.length>0&&d.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}d.push(" set fields:");for(let f of e.assignments)d.push(` ${hg(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(d.push(""),d.push(...Ke(f.value.query,`[subquery: ${f.field}]`,n,r)));return d}function cg(e,t,n,r,i){let o=xi(e,n,r),a=o.branches[0],p=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),u=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],d=u.includes("REMOVE"),c=Rd.get(e),f=c?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${c.prefilter===null?"(none; empty query)":$(c.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${c.appliedKlikes.size}`,`unapplied KLIKE: ${c.unappliedKlikes.length}${c.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: ${$r(e.where)}`,`parent cardinality: ${Ze(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${u.join(" | ")}`,`selector: ${p.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${d?"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: ${d?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...js(o)]}function pg(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${$r(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 dg(e,t,n=ut,r=be){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,...js(xi(e,n,r))]:a}function js(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 fg(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(...Ke(e.select,"[source SELECT]",n,r,i)),o}function Eg(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(Rg).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: ${$r(e.where)}`),o}function Rg(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function $r(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return $(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function mg(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Po(n,t),n.type==="STRING_FUNC"&&Po(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&vr(n,t);return[...t]}function Po(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Po(e.left,t),Po(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&vr(n,t)}async function yd(e,t,n,r,i){let o=Vs(e),a=await he(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(c=>[c,i?.get(s)?.columnMeta?.get(c)?.fieldType??(i?.get(s)?.columnMeta?.get(c)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await he(t.appId,n,r),p=new Set,u=new Set;for(let c of o){if(c.tableAlias!==null){if(c.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(c.field!=="$id"&&!a.has(c.field))throw pe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(c.field)}else if(c.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(c.field!=="$id"&&!l.has(c.field))throw pe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(c.field)}else throw pe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${c.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=c.field==="$id"||a.has(c.field),E=c.field==="$id"||l.has(c.field);if(!f)throw pe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${c.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw pe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(c.field)}let d=new Map;for(let[c,f]of a)d.set(c,f),d.set(`APP${e.appId}.${c}`,f);d.set("$id","RECORD_NUMBER"),d.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[c,f]of l)d.set(`${t.alias}.${c}`,f);return{targetFields:[...p],sourceFields:[...u],evaluationTypes:d}}function yg(e,t,n){if(!e)return{};let r=it(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 vr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&vr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(vr(e.left,t),vr(e.right,t))}function hg(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} = ${hd(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 hd(e){return`${_p(e.left)} ${e.op} ${_p(e.right)}`}function _p(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?G(e):e.type==="ARITH"?`(${hd(e)})`:"..."}var te=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 Te=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 Jt(e){return new Te("READ_ONLY_VIOLATION",e)}function ko(e,t){return new Te("PARSE_ERROR",e,t)}function gd(){let e=new _n;return new Te("SEARCH_ABORTED",e.message,e)}function jr(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function gg(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 qr(e){return e instanceof Te?e:e instanceof fe||e instanceof T?new Te("PARSE_ERROR",jr(e),e):e instanceof _n||e?.name==="SearchAbortedError"?new Te("SEARCH_ABORTED",jr(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Te("FETCH_LIMIT_EXCEEDED",jr(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Te("CLIENT_ERROR",e.message,e.cause):gg(e)?new Te("CLIENT_ERROR",jr(e),e):new Te("EXECUTION_ERROR",jr(e),e)}var Ag=2,Mo=5,Sg=3e4,Tg=10*6e4+3e4,Fo=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??Ag;if(!Number.isSafeInteger(r)||r<1||r>Mo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Mo}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??Sg,this.quarantineMs=n.quarantineMs??Tg}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 zi(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>Mo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Mo}.`)}};function Ig(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function wg(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Ig){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 bg(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 Ad(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let p=await t.get();return p.next||(n=!0,t.onReleased?.()),p});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await bg(wg(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Sd(e){return Td(e,Ng(e))}function Td(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=Cg(o.options),s=Og(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:xo(o.minValue),maxValue:xo(o.maxValue),minLength:xo(o.minLength),maxLength:xo(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!Pg.has(o.type)};l.semantics=q(l),i.push(l),o.fields&&i.push(...Td(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Pg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Ng(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 xo(e){return e==null||e===""?void 0:e}function Cg(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 Og(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Id(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 Lg="Filter aborted because of too many search results";function wd(e){return e?.includes(Lg)===!0}var bd="/k/v1/records.json",Ko="/k/v1/records/cursor.json",_g=4096,Dg=2,qs=e=>kintone.api.url(e,!0);function vg(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},r=kintone.api.urlForGet(bd,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=_g?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:qs(bd),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 zr(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
12
- `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function Ug(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return zr({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}),zr(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}),zr(n)}}function kg(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Xt(e,t,n){try{return await kintone.api(qs(e),t,n)}catch(r){throw zr(r)}}function Mg(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Pd(e={}){let t=e.cursorMaxActive??Dg;Mg(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=vg(a),l=await fetch(s.url,s.init);if(!l.ok)throw await Ug(l);let p=await l.json();return wd(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(s){throw zr(s)}},async openCursor(a){let s=qs(Ko),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??=new Fo(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let p=await n.acquire(),u;try{u=await n.runCreate(()=>Xt(Ko,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(p.release(),R):(p.quarantine(),new Ji(R))}let d=u.id,c=Ad(Number(u.totalCount),{get:()=>Xt(Ko,"GET",{id:d}),delete:()=>Xt(Ko,"DELETE",{id:d}),isAlreadyReleasedError:kg,onReleased:()=>p.release(),onReleaseUnknown:()=>p.quarantine()}),f=null,E={totalCount:c.totalCount,async nextPage(){let R=await c.nextPage();return R.next||i.delete(E),R},close(){return f||(f=c.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let p=await Xt("/k/v1/apps.json","GET",{limit:100,offset:l});for(let u of p.apps)s.push({appId:Number(u.appId),name:u.name,description:u.description});if(p.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Xt("/k/v1/app/form/fields.json","GET",{app:a});return Sd(s.properties)},async getNumberPrecision(a){let s=await Xt("/k/v1/app/settings.json","GET",{app:a});return xu(s)},async getProcessStatuses(a){let s=await Xt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Id(s.states)}}}}var Nd=new Set(["postRecords","putRecords","deleteRecords"]),Jr=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 bt(e){try{return await e()}catch(t){throw new Jr(t)}}function Fg(e){return()=>{throw Jt(`${String(e)} is blocked by the readonly client`)}}function zs(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let p=await bt(()=>t(l));if(p.searchAborted===!0)throw gd();return p},openCursor:async l=>{let p=await bt(()=>n(l)),u=p.nextPage.bind(p),d=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>bt(()=>u()),close:()=>bt(()=>d())}},getApps:()=>bt(()=>r()),getFields:l=>bt(()=>i(l)),getNumberPrecision:l=>bt(()=>o(l)),getProcessStatuses:l=>bt(()=>a(l))});return new Proxy(s,{get(l,p,u){return Nd.has(p)?Fg(p):Reflect.get(l,p,u)},has(l,p){return Nd.has(p)?!1:Reflect.has(l,p)}})}function xg(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 Jr(o.reason)})(),n)}}}async function Js(e,t){let n=xg(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 Cd=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Kg=new Set([...Cd,"onLimitReached"]);function Bg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Xs(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function $g(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 Qs(e,t){Bg(e);let n=t==="run"?Kg:Cd;for(let i of Reflect.ownKeys(e))if(typeof i!="string"||!n.has(i))throw new TypeError(`Unknown ${t==="run"?"runQuery":"explainQuery"} option: ${String(i)}`);if($g(e.client),e.maxRecords!==void 0&&Xs(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Xs(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Xs(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");let r=e;if(t==="run"&&r.onLimitReached!==void 0&&r.onLimitReached!=="error"&&r.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{client:e.client,executeOptions:{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...t==="run"&&r.onLimitReached!==void 0?{onLimitReached:r.onLimitReached}:{}}}}function Od(e,t={}){let n=new tn(e).tokenize(),r=new on(n,t).parse();return mn(r),r}function Gg(e){if(e instanceof ne)return ko(e.message,e);let t=qr(e);return t.code==="PARSE_ERROR"?t:ko("SQL statement could not be parsed",e)}function Ld(e){if(e.trim()==="")throw ko("SQL statement is empty");try{return Od(e,{import:!0})}catch(t){throw Gg(t)}}function Vg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw Jt("Unclassifiable statement branch is not allowed");return e.type}function Qt(e,t){let n=Vg(e);switch(n){case"SELECT":return;case"SHOW_APPS":case"DESCRIBE":if(t==="run")return;break;case"WITH":{let r=e;if(!Array.isArray(r.ctes))throw Jt("WITH contains an unclassifiable CTE list");for(let i of r.ctes){if(i===null||typeof i!="object"||!("query"in i))throw Jt("WITH contains an unclassifiable CTE body");Qt(i.query,t)}Qt(r.query,t);return}case"UNION":{let r=e;Qt(r.left,t),Qt(r.right,t);return}default:break}throw Jt(`${n} statements are not allowed in ${t} queries`)}function Wg(e){Qt(e,"run")}function _d(e){Wg(Ld(e))}function Dd(e){let t=e.trim(),n=Ld(t);return n.type==="EXPLAIN"?(Qt(n.query,"explain"),t):(Qt(n,"explain"),`EXPLAIN ${t}`)}function vd(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function Ud(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function Hg(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function Yg(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}async function kd(e,t){try{let n=Qs(t,"run");_d(e);let r=await Js(n.client,o=>Ns(e,zs(o),{...n.executeOptions,captureColumnMeta:!0}));Ud(r);let i=Dp(r);return{type:"query",rows:r.rows.map(Hg),columns:r.columns.map(o=>Yg(o,i)),rowCount:r.rowCount,warnings:[...r.warnings??[]],metrics:vd(r.metrics)}}catch(n){throw qr(n)}}async function Md(e,t){try{let n=Qs(t,"explain"),r=await Js(n.client,o=>Ns(Dd(e),zs(o),n.executeOptions));Ud(r);let i=r.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
- `),metrics:vd(r.metrics)}}catch(n){throw qr(n)}}var jg="3.28.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runQuery,version});
11
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Ug(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${vg}`)}async function kg(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),d=ds(e.where,{fieldTypes:s,fieldOptions:l});Ug(d);let u=d.prefilter===null?"":G(d.prefilter),c=new Set(Ki(e,r));for(let E of Mg(e.where))c.add(E);let p=await Fg(e.appId,e.where,a,t,i);return(await Te(t.getRecords,e.appId,u,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:pt(E,null)})).filter(({row:E})=>Q(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function Mg(e){return sl(e)}async function Fg(e,t,n,r,i){let s=[...xg(t)].some(u=>n.get(u)?.fieldType==="STATUS")?await hl(e,r,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":n.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return bn(J({fieldType:"__ID__"}),e,"$id");let c=n.get(u.field);if(!c)return;let p=c.semantics??J(c),f=c.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return bn(f,e,c.code)}}}function xg(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 Kg(e,t,n){let r=t.validations.flatMap(u=>u.errors),i=t.validations.reduce((u,c)=>u+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...ze(n,e.fields).payloadFields,...hr],a=t.guards.parentRows,s=os(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:jr(l),guards:qr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return ln.set(d,qo(o,n,e.appId)),d}function Bg(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...ze(n,e.assignments.map(d=>d.field)).payloadFields,...hr],s=Sr(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:jr(s.branches[0]),guards:qr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,u)=>d+u.tables.reduce((c,p)=>c+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(u=>u.deletedRows>0)).length},diagnostic:s};return ln.set(l,qo(a,n,e.appId)),l}function $g(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...ze(n,e.fields).payloadFields,...hr],l=as(t),d=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),c=jr(d),p=jr(u),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,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:qr(d)},update:{apply:p,guards:qr(u)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return ln.set(f,qo([...s],n,e.appId)),f}function jr(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 qr(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 yt=100,Ne=500;function Fe(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 qo(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:J({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,tt(s,n));continue}o.set(a,q(i.has(a)?"number":"string"))}return o}async function Gg(e,t,n,r,i,o){let a=await Yd(e,t,n,r,i,o),s=await Se(e.appId,n,i),l=xa(e,a,s),d=e.assignments.map(p=>p.field),u=await Z(e.appId,n,i),c=await mt(e.appId,d,u,n,i);if(an(l.flatMap(p=>p.records.map(f=>f.record)),d,u,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Vg(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 Wg(e,t,n,r){if(await Fn(e,t,r),Et(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return qg(e,t,n,r);let i=lc(e),a=(await Qi(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new le("DELETE",a.length);let s=uc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function Hg(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return dg(e,t,n,r);if(e.checkGroups?.length)return Zr(e,t,n,r);let i=await He(e.appId,e.fields,t,r),o=await mt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Se(e.appId,t,r),d=Jd(e),u=await Qr(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((m,y)=>{let h=p[y];h.type==="CASE_VALUE"?E[m]={value:Lt(h.expr,{},l.get(m))}:E[m]={value:ut(h,l.get(m))}});let R=Xr(u,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),an([...a,...s.map(p=>p.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let p=a.length+s.length;if(!await n.confirm(p,"UPDATE"))throw new le("UPDATE",p)}let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});c.push(f.ids)}for(let p=0;p<s.length;p+=100)await t.putRecords({app:e.appId,records:s.slice(p,p+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function Jd(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"?V(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function wl(e,t,n,r){if(t.length===0)return;let i=await Se(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 Yg(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 Te(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=zo(a),l=new Map;for(let u of e.values){let c=cd(u[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:cd(u[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[u,c]of l.entries()){let p=s.get(u),E=[...ei(p,i),...c];d.push(Xd(e.appId,u,ti(p),i,E))}for(let u of d)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function jg(e,t,n,r){let i=e.subtableCode;if(!Br(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];ft(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&ko(p.value.expr,o);let a=await wl(e.appId,o,t,r),s=await Te(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=bl(s,i).filter(p=>Q(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let u=new Map;for(let p of d){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=u.get(p.parentId);f||(f=new Map,u.set(p.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:xi(R.value,p.flat,a)}}f.set(p.rowId,E)}let c=zo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let m=ei(E,i).map(y=>{let h=y.id??"";if(!h)return y;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(zg(e.appId,p,ti(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function qg(e,t,n,r){let i=e.subtableCode;if(!Br(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];ft(e.where,o);let a=await wl(e.appId,o,t,r),s=await Te(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=bl(s,i).filter(p=>Q(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let u=new Map;for(let p of d){let f=u.get(p.parentId);f?f.push(p.rowIndex):u.set(p.parentId,[p.rowIndex])}let c=zo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let R=ei(E,i),m=new Set(f),y=R.filter((h,g)=>!m.has(g));await t.putRecords(Xd(e.appId,p,ti(E),i,y))}return{type:"DELETE",deletedCount:d.length}}function zo(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function bl(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=ti(r),a=ei(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...Bi(l,s),_pid:i};for(let[u,c]of Object.entries(r))u!==t&&(d[`_p.${u}`]=nl(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ei(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function ti(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Xd(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function zg(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Jg(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 cd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?V(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function nl(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 Br(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Br(e.left)||Br(e.right);case"NOT":case"GROUP":return Br(e.expr);default:return!1}}async function Xg(e,t,n,r){let i=[];ft(e.where,i);let o=await wl(e.appId,i,t,r),a=await Z(e.appId,t,r);if(Et(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??J(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Te(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=bl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(u.filter(f=>e.where&&Q(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let p=zo(d);for(let f of c){let E=p.get(f);if(!E)continue;let m=ei(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:Qg(E,e.subtableCode,h,g)}));m.sort((h,g)=>Zg(h.flat,g.flat,e.by,l));let y=m.map(h=>h.row.id??"");await t.putRecords(Jg(e.appId,f,ti(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function Qg(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}`]=nl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=nl(a?.value);return i}function Zg(e,t,n,r){for(let i of n){let o=pd(i.key,e),a=pd(i.key,t),s=i.key.type==="FIELD_NAME"?r(We(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?rn(i.key.expr).semantics??B("string"):B("number"),l=Vt(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function pd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Pl(e,t,n,r,i){if(e.checkGroups?.length)return Zr(e,t,n,r,i);let o=await He(e.appId,e.fields,t,r),a=await mt(e.appId,e.fields,o,t,r),s=await Tl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(qd(s),d.length!==e.fields.length){let y=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],c=[],p=await Se(e.appId,t,r),f=l.map((y,h)=>{let g={};return e.fields.forEach((S,w)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let b=y[d[w]]??"";g[S]={value:Vd(b,p.get(S))}}),g});f.forEach(y=>an([y],e.fields.filter(h=>h in y),o,a));let E=f.map(y=>e.keyFields.map(h=>String(y[h]?.value??"")));if($o.has(e)){let y=e.keyFields.map(g=>p.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=on(g,y);if(h.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");h.add(S)}}let R=await Qr(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,h)=>{let g=Xr(R,E[h]);g!==void 0?c.push({id:g,record:y}):u.push(y)}),n.confirm&&u.length+c.length>0){let y=u.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new le("UPDATE",y)}let m=[];for(let y=0;y<u.length;y+=100){let h=await t.postRecords({app:e.appId,records:u.slice(y,y+100)});m.push(h.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function Qd(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Zd(e,t,n){let r=await Z(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function eA(e,t=!1){try{let n=new gt(e).tokenize(),r=new At(n,{import:t}).parse();return yn("phase15b",r),je(r),r}catch(n){throw n instanceof me||n instanceof T,n}}async function zr(e,t,n,r,i){let o=[];_o(e,t,n,r,o,i),await Promise.all(o)}async function ef(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(zr(s.condition,t,n,r,i));await Promise.all(o)}function $r(e,t,n,r,i){return i!==void 0&&i.size>0?Rt(e,t,n,i,r):vt(e,t,n,r)}function _o(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push($r(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push($r(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":_o(e.left,t,n,r,i,o),_o(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":_o(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push($r(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function tf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function nf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(u.query),p=o.get(c);p||(p=$r(u.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],u)=>l.set(d,s[u])),l}var rf=new WeakMap,of=new WeakMap,af=new WeakMap;async function tA(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},d=new Map,u=new Map,c=new Map,p=new Set,f=i??await Go(e,l,n),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||p.has(m))return;if(p.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let h=m;await Vo(h,l,n);let g=[h.from,...h.joins.map(I=>I.table)].some(I=>I.cteName!==null);if(re(h).type==="PLAIN"&&!g){let I=await ul(h,l,n);I&&c.set(h,I)}let S=[h.from,...h.joins.map(I=>I.table)].filter(I=>I.cteName===null).map(I=>I.appId);(Qe(h.where)||h.orderBy.length>0||h.columns.some(I=>I.type==="WINDOW_COL"&&I.orderBy.length>0))&&S.forEach(I=>o.add(I));let b=await Vr(h,l,n),O=E(h);if(b.capability==="UNSUPPORTED"&&!O)throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(b)}).`);d.set(h,b);let U=pl.get(h)??Wo(h,await Ho(h,l,n));if(U&&rf.set(h,U),h.orderBy.length>0||h.columns.some(I=>I.type==="WINDOW_COL"&&I.orderBy.length>0)){let I=await Hr(h,l,n);if(h.orderMode!=="KINTONE_NATIVE")for(let _ of I.semantics.values())_.fieldType==="STATUS"&&_.source&&a.add(_.source.appId);if(vo(h)&&!g&&O?.allowed!==!1){let _=b.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN";u.set(h,(h.orderMode==="KINTONE_NATIVE"?Or:Cr)({stmt:h,staticMode:_,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:pe(h.where)}))}}}else if(y.type==="VALIDATE"){let h=m;o.add(h.appId);let g=await Z(h.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),w=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),b=ts(h,g),O=Pn(h.checkGroups??[]),P=sl(h.where);for(let A of O){if(A.field!=="$id"&&!S.has(A.field)&&!w.has(A.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${h.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&w.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of P){if(A!=="$id"&&!S.has(A)&&!w.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${h.appId}.`);if(A!=="$id"&&!S.has(A)&&w.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let U=new Map([...S].map(([A,C])=>[A,C.fieldType]));U.set("$id","RECORD_NUMBER"),sn(h,U);let I=be(h.where,A=>A.field==="$id"?J({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?J(S.get(A.field)):void 0));if(I.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(I)}).`);let _=new Map([...S].map(([A,C])=>[A,C.fieldType])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),L=h.where===null?null:I.capability==="EXACT_PUSHDOWN"?h.where:An(h.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:k,allowKlike:!1}),v=b.some(A=>A.field.fieldType==="NUMBER");v&&(s.add(h.appId),await it(h.appId,l,n)),of.set(h,{targetFields:b.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...b.map(A=>A.subtableCode??A.field.code),...P,...O.map(A=>A.field)])],subtables:new Map([...new Set(b.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,b.filter(C=>C.subtableCode===A).length])),capability:I,prefilter:L,numberPrecision:v})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let g=m,S=await Z(g.appId,l,n);if(ct(g,S),Ko(g)){let w=S.filter(O=>!O.inSubtable),b=ds(g.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});af.set(g,b)}}let h=m;(h.type!=="UPDATE"||!Ko(h))&&E(h)?.allowed!==!1&&await Fn(h,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&bt(e)){let m=Pt(e),y=await Vr(m,l,n),h=E(m);if(y.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${tn(y)}).`);if(d.set(m,y),vo(m)&&h?.allowed!==!1){let g=await Hr(m,l,n);u.set(m,(m.orderMode==="KINTONE_NATIVE"?Or:Cr)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:pe(m.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function dd(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 nA(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 fd(e){return e==="<>"?"!=":e}function $e(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($e).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return $e(t.expr);case"GROUPING_FIELD":return`GROUPING(${$e(t.ref)})`;case"GROUPING_REF":return $e(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${$e(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${$e(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($e).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map($e).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Zt(e){try{let t=e;switch(t.type){case"BINARY":return`${$e(t.left)} ${nA(t.op)} ${$e(t.right)}`;case"NULL_CHECK":return`${$e(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Zt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Zt(t.right)})`;case"NOT":return`NOT (${Zt(t.expr)})`;case"GROUP":return`(${Zt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function rA(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=z(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?iA(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let d=Hs(l),u=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Ws(d)}: ${d}`,` ${Ys(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${u}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Zt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(z)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!z(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=Hs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=fd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Ws(l)}: ${l}`,` ${Ys(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Ed(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=Hs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=fd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Ws(l)}: ${l}`,` ${Ys(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Zt(o.residualWhere)}`,` ${Ed(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!z(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 iA(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,u=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||u)&&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 Ws(e){return z(e)?"relative date function":"kintone function"}function Hs(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 Ys(e){return z(e)?"relative date evaluation":"kintone function evaluation"}function Ed(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&z(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function oA(e,t,n,r,i,o=100,a=Ne,s){let l=s??await Go(e.query,t,n),d=await tA(e.query,t,n,r,l),u=rA(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...dd(d),...u]:[...dd(d),...u,...aA(sf(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(p=>({plan:p})),rowCount:c.length}}function aA(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 sf(e,t,n,r,i=100,o=Ne,a=1e4,s){if(e.type==="UNION")return lA(e,n,r,s);if(e.type==="WITH")return uA(e,n,r,s);if(e.type==="INSERT")return dA(e,t,i,o);if(e.type==="INSERT_SELECT")return fA(e,t,n,r,s);if(e.type==="UPSERT")return yA(e,t,i,o);if(e.type==="UPSERT_SELECT")return hA(e,t,n,r,s);if(e.type==="UPDATE")return EA(e,t,n,r,i,o,a);if(e.type==="DELETE")return mA(e,t);if(e.type==="REORDER")return gA(e,t);if(e.type==="VALIDATE")return sA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let u=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...u.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(u=>u.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return Ge(e,t,n,r,s)}function sA(e,t){let n=of.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":G(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?al:ol).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 Ge(e,t,n,r,i){let o=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),d=cA(e);o&&o.capability!=="EXACT_PUSHDOWN"&&d.push(...o.reasons.map(m=>m.code));let u=[],c=Bc(e,Wr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${l}`),c&&(u.push(` grouping source: ${c.source}`),u.push(` grouping sets: ${c.expandedSetCount} (limit: ${c.setLimit})`),u.push(` grouping items: ${c.groupingItemCount} (limit: ${c.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${c.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let p=re(e);if(p.type==="PLAIN"){let m=p.allItems;if(s)s.items.forEach((y,h)=>{let g=m[h];g?.type==="FIELD_NAME"&&y.kind==="PHYSICAL"&&u.push(` group key ${g.name}: PHYSICAL (source=${y.sourceIndex}, field=${y.fieldCode})`)});else if([e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null))for(let y of m)y.type==="FIELD_NAME"&&u.push(` group key ${y.name}: DEFERRED (materialized schema unavailable)`)}a?(u.push(` order plan: ${a.kind}`),a.reasonCodes.length>0&&u.push(` order reason: ${a.reasonCodes.join(", ")}`),a.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):a.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${a.scanRows}`))):c&&u.push(" order plan: CANONICAL_LOCAL");let f=a&&!a.requiresCompleteInput?{...e,orderBy:[]}:e,E=St(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=Et(e.where);if(E.size>0&&(!R||c!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...E].join(", ")}`),u.push(" onLimit=truncate: disabled")),R)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(l==="FULL_SCAN"&&d.length>0&&u.push(` reason: ${d.join(", ")}`),l==="SIMPLE"){let m=yi(a?.kind==="CANONICAL_REST_TOP_N"?Ud(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?fs(e):m.query;u.push(` kintone query: ${y||"(\u306A\u3057)"}`),u.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=rf.get(e),y=m??Tn(e);if(e.joins.length>0)if(m){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),m.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${m.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${m.joinPlan.residualWhere===null?"(none)":Zt(m.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${m.joinPlan.allKlikes.length-m.joinPlan.appliedKlikes.size}`),m.joinPlan.residualWhere!==null)for(let _ of m.joinPlan.rejections)u.push(` join pushdown not applied: ${_.reason}`)}else{let _=e.joins.some(k=>k.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${_}`)}let h=$t(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",S=y.mainCondition,w=Ld(e),b=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!wt(e.where)?G(e.where):"",O=e.from.alias?m?.queriesByAlias.get(e.from.alias):void 0,P=O||(S!==null?G(S):b||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${P}`);let U=m?.joinPlan.items.find(_=>_.targetAlias===e.from.alias),I=m?.joinPlan.serverFunctionConsumptions.find(_=>_.targetAlias===e.from.alias);U||I?(u.push(` pushdown applied: ${O}`),u.push(` relation: ${U?.relation??"exact"}`)):!m&&w!==null&&u.push(` pushdown candidate: ${G(w)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${h.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.join(", ")}`);for(let _ of e.joins){let k=$t(e,_.table,s),L=_.table.alias?` AS ${_.table.alias}`:"",v=_.type==="INNER"?"JOIN":`${_.type} JOIN`,A=_.table.alias?y.joinConditions.get(_.table.alias)??null:null,C=_.table.alias&&!_.table.subtableCode&&_.table.cteName===null&&e.where?nr(e.where,{tableAlias:_.table.alias}):null,M=_.table.alias?m?.queriesByAlias.get(_.table.alias):void 0,N=M||(A!==null?G(A):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${v}: APP${_.table.appId}${L} (${_.table.appId})`),u.push(` kintone query: ${N}`);let F=m?.joinPlan.items.find(j=>j.targetAlias===_.table.alias),Y=m?.joinPlan.serverFunctionConsumptions.find(j=>j.targetAlias===_.table.alias);F||Y?(u.push(` pushdown applied: ${M}`),u.push(` relation: ${F?.relation??"exact"}`)):!m&&C!==null&&u.push(` pushdown candidate: ${G(C)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return u.push(...pA(e,n,r,i)),u}function lA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...Ge(s,`[union:${l+1}]`,t,n,r))}),a}function uA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...Ge(o.query,`[cte: ${o.name}]`,t,n,r)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...sf(e.query,"[main]",t,n,100,Ne,1e4,r)),bt(e)){i.push("");let o=Pt(e);i.push(...Ge(o,"[effective: inlined CTE]",t,n,r))}return i}function cA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=re(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),wt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Tt(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function pA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...Ge(s.right.query,`[subquery:${o++}]`,t,n,r))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...Ge(s.right.query,`[subquery:${o++}]`,t,n,r)));break;case"EXISTS":i.push(""),i.push(...Ge(s.query,`[subquery:${o++}]`,t,n,r));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...Ge(s.query,`[subquery:${o++}]`,t,n,r)));return e.having&&a(e.having),i}function dA(e,t,n=yt,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,...Nl(Ji(e,n,r))]:a}function fA(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(...Ge(e.select,"[source SELECT]",n,r,i)),o}function EA(e,t,n,r,i=100,o=Ne,a=1e4){if(e.applyBlocks?.length)return RA(e,t,i,o,a);let s=ic(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Fi(e),u=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?Jr(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${Jr(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(Et(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),u&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!u&&p.push("\u5358\u7D14 SET"),c.push(` set type: ${p.join(", ")}`),d){let f=SA(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(` ${IA(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...Ge(f.value.query,`[subquery: ${f.field}]`,n,r)));return c}function RA(e,t,n,r,i){let o=Ji(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),u=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=u.includes("REMOVE"),p=af.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":G(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Jr(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${u.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Nl(o)]}function mA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Jr(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(Et(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function yA(e,t,n=yt,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,...Nl(Ji(e,n,r))]:a}function Nl(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 hA(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(...Ge(e.select,"[source SELECT]",n,r,i)),o}function gA(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(AA).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Et(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: ${Jr(e.where)}`),o}function AA(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Jr(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function SA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Bo(n,t),n.type==="STRING_FUNC"&&Bo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Gr(n,t);return[...t]}function Bo(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Bo(e.left,t),Bo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Gr(n,t)}async function lf(e,t,n,r,i){let o=Sl(e),a=await Se(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Se(t.appId,n,r),d=new Set,u=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw fe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(p.field)}else throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw fe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw fe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let c=new Map;for(let[p,f]of a)c.set(p,f),c.set(`APP${e.appId}.${p}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)c.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...u],evaluationTypes:c}}function TA(e,t,n){if(!e)return{};let r=pt(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 Gr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Gr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Gr(e.left,t),Gr(e.right,t))}function IA(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} = ${uf(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 uf(e){return`${Rd(e.left)} ${e.op} ${Rd(e.right)}`}function Rd(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?V(e):e.type==="ARITH"?`(${uf(e)})`:"..."}var le=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var Re=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 cf(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 Ce(e){return new Re("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new Re("PARSE_ERROR",e,t)}function pf(){let e=new xn;return new Re("SEARCH_ABORTED",e.message,e)}function ni(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function wA(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 Ut(e){return e instanceof Re?e:e instanceof me||e instanceof T?new Re("PARSE_ERROR",ni(e),e):e instanceof xn||e?.name==="SearchAbortedError"?new Re("SEARCH_ABORTED",ni(e),e):e instanceof Oe||e?.name==="FetchAllLimitError"?new Re("FETCH_LIMIT_EXCEEDED",ni(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Re("CLIENT_ERROR",e.message,e.cause):wA(e)?new Re("CLIENT_ERROR",ni(e),e):new Re("EXECUTION_ERROR",ni(e),e)}var bA=2,Jo=5,PA=3e4,NA=10*6e4+3e4,Xo=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??bA;if(!Number.isSafeInteger(r)||r<1||r>Jo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Jo}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??PA,this.quarantineMs=n.quarantineMs??NA}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 so(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>Jo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Jo}.`)}};function CA(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function OA(e,t=r=>new Promise(i=>setTimeout(i,r)),n=CA){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 LA(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 df(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await LA(OA(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function ff(e){return Ef(e,DA(e))}function Ef(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=vA(o.options),s=UA(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Qo(o.minValue),maxValue:Qo(o.maxValue),minLength:Qo(o.minLength),maxLength:Qo(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!_A.has(o.type)};l.semantics=J(l),i.push(l),o.fields&&i.push(...Ef(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var _A=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function DA(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 Qo(e){return e==null||e===""?void 0:e}function vA(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 UA(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Rf(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 kA="Filter aborted because of too many search results";function mf(e){return e?.includes(kA)===!0}var yf="/k/v1/records.json",Zo="/k/v1/records/cursor.json",MA=4096,FA=2,Cl=e=>kintone.api.url(e,!0);function xA(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},r=kintone.api.urlForGet(yf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=MA?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Cl(yf),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 ri(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
12
+ `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function KA(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return ri({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}),ri(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}),ri(n)}}function BA(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(Cl(e),t,n)}catch(r){throw ri(r)}}function $A(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function hf(e={}){let t=e.cursorMaxActive??FA;$A(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=xA(a),l=await fetch(s.url,s.init);if(!l.ok)throw await KA(l);let d=await l.json();return mf(l.headers.get("X-Cybozu-Warning"))?{records:d.records,searchAborted:!0}:{records:d.records}}catch(s){throw ri(s)}},async openCursor(a){let s=Cl(Zo),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??=new Xo(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),u;try{u=await n.runCreate(()=>un(Zo,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(d.release(),R):(d.quarantine(),new lo(R))}let c=u.id,p=df(Number(u.totalCount),{get:()=>un(Zo,"GET",{id:c}),delete:()=>un(Zo,"DELETE",{id:c}),isAlreadyReleasedError:BA,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:p.totalCount,async nextPage(){let R=await p.nextPage();return R.next||i.delete(E),R},close(){return f||(f=p.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let u of d.apps)s.push({appId:Number(u.appId),name:u.name,description:u.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return ff(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return Ic(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Rf(s.states)}}}}var gf=new Set(["postRecords","putRecords","deleteRecords"]),ii=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 kt(e){try{return await e()}catch(t){throw new ii(t)}}function GA(e){return()=>{throw Ce(`${String(e)} is blocked by the readonly client`)}}function oi(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await kt(()=>t(l));if(d.searchAborted===!0)throw pf();return d},openCursor:async l=>{let d=await kt(()=>n(l)),u=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>kt(()=>u()),close:()=>kt(()=>c())}},getApps:()=>kt(()=>r()),getFields:l=>kt(()=>i(l)),getNumberPrecision:l=>kt(()=>o(l)),getProcessStatuses:l=>kt(()=>a(l))});return new Proxy(s,{get(l,d,u){return gf.has(d)?GA(d):Reflect.get(l,d,u)},has(l,d){return gf.has(d)?!1:Reflect.has(l,d)}})}function VA(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 ii(o.reason)})(),n)}}}async function ai(e,t){let n=VA(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 Af=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Sf=new Set([...Af,"onLimitReached"]),WA=new Set([...Sf,"variables","tempTableMaxRows"]);function Tf(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function ea(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function If(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 HA(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 wf(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);if(e.maxRecords!==void 0&&ea(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&ea(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(ea(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Ol(e,t){Tf(e);let n=t==="run"?Sf:Af;If(e.client);let r=wf(e,n,t==="run"?"runQuery":"explainQuery");return{client:e.client,executeOptions:r}}function bf(e){Tf(e),If(e.client),e.variables!==void 0&&HA(e.variables),e.tempTableMaxRows!==void 0&&ea(e.tempTableMaxRows,"tempTableMaxRows");let t=wf(e,WA,"runBatch");return{client:e.client,executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function Ll(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function YA(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function jA(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function ta(e,t=e.metrics){let n=md(e);return{type:"query",rows:e.rows.map(YA),columns:e.columns.map(r=>jA(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ll(t)}}function Pf(e,t={}){let n=new gt(e).tokenize(),r=new At(n,t).parse();return je(r),r}function Nf(e,t={}){let n=new gt(e).tokenize(),r=new At(n,t).parseStatements();return r.forEach(je),r}function _l(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 Cf(e){if(e instanceof oe)return Hn(e.message,e);let t=Ut(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function Of(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return Pf(e,{import:!0})}catch(t){let n=Cf(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function Lf(e){if(Ei(e)==="UNKNOWN")throw Ce("Unclassifiable statement is not allowed");return e}function qA(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return Nf(e,{import:!0})}catch(t){throw Cf(t)}}function zA(e){let t=Lf(e),n=t.type;if(n==="IMPORT")throw Ce("IMPORT is disabled by default in engine library queries");if(!Bt(t))throw Ce(`${n} statements are not read-only`);if(_l(t))throw Ce("APPLY statements are not allowed in engine library queries");if(!Jl(t))throw Ce(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function JA(e){let t=Lf(e);if((t.type==="EXPLAIN"?t.query:t).type==="IMPORT")throw Ce("IMPORT is disabled by default in engine library batches");if(!Bt(t))throw Ce(`${t.type} statements are not read-only`);if(_l(t))throw Ce("APPLY statements are not allowed in engine library batches");if(Kt(t.type))throw Ce("DML VALIDATE ONLY statements are not supported by runBatch")}function _f(e){let t=Of(e);return zA(t),t}function Df(e){qA(e).forEach(JA)}function vf(e){let t=e.trim(),n=Of(t),r=n.type==="EXPLAIN"?n.query:n;if(!Xl(r))throw Ce(`${r.type} statements are not allowed in explain queries`);return n.type==="EXPLAIN"?t:`EXPLAIN ${t}`}function XA(e){let t=e.error,n=t?.cause!==void 0?Ut(t.cause):new Re("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return cf(n,e.index,e.type)}async function Uf(e,t){try{let n=bf(t);Df(e);let r=await ai(n.client,s=>Id(e,oi(s),{...n.executeOptions,captureColumnMeta:!0})),i=r.statements.find(s=>s.status==="error");if(i!==void 0)throw XA(i);let o=[],a=r.statements.map(s=>{let l={index:s.index,type:s.type,status:s.status};return s.tempTable!==void 0&&(l.tempTable=s.tempTable),s.rowCount!==void 0&&(l.rowCount=s.rowCount),s.error!==void 0&&(l.error={code:s.error.code,message:s.error.message}),s.skippedReason!==void 0&&(l.skippedReason=s.skippedReason),s.status==="success"&&s.result?.type==="SELECT"&&(l.resultIndex=o.length,o.push(ta(s.result,r.metrics))),l});return{type:"batch",batch:!0,statementCount:r.statementCount,statements:a,results:o,warnings:[]}}catch(n){throw Ut(n)}}function kf(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Mf(e,t){try{let n=Ol(t,"run"),i=_f(e).type==="VALIDATE"?{...n.executeOptions,onLimitReached:"error"}:n.executeOptions,o=await ai(n.client,a=>rl(e,oi(a),{...i,captureColumnMeta:!0}));return kf(o),ta(o)}catch(n){throw Ut(n)}}async function Ff(e,t){try{let n=Ol(t,"explain"),r=await ai(n.client,o=>rl(vf(e),oi(o),n.executeOptions));kf(r);let i=r.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
+ `),metrics:Ll(r.metrics)}}catch(n){throw Ut(n)}}var QA="3.30.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});