@rex0220/kintone-sql-tools 3.27.0 → 3.28.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";(()=>{async function ye(e,t,r,n,i={}){let o=i.pageSize??Nd,a=Math.max(1,i.parallel??Cd),s=i.maxRecords??Od,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=n.length>0&&!n.includes("$id")?[...n,"$id"]:n,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=Hs(r,R),h=await Ws(e,t,y,d,o,m);if(Vs(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 Ie(E)}if(h.records.length<o)return c;for(m+=o,m>=Co&&(R=Ys(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 Ie(E)}let g=u-c.length,S=Math.ceil(g/o),O=Math.max(1,Math.min(a,S)),P=[];for(let I=0;I<O;I++){let v=m+I*o;if(v>=Co)break;P.push(v)}let _=Hs(r,R),N=await Promise.all(P.map(I=>Ws(e,t,_,d,o,I)));for(let I of N)Vs(I,i);let L=!1;for(let I of N){if(c.push(...I.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 Ie(E)}if(I.records.length<o){L=!0;break}}if(L)break;if(m+=o*P.length,m>=Co){let I=N[N.length-1];R=Ys(I.records),m=0}}return c}function Vs(e,t){e.searchAborted&&t.onSearchAborted?.()}function js(e){return e.map(t=>{let r=t.$id?.value;if(r===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 n=Number(r);if(!Number.isFinite(n))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${r}`);return n})}var Nd=500,Cd=1,Od=1e4,Co=1e4;async function Ws(e,t,r,n,i,o){let a=Ld(r,i,o);return e({app:t,query:a,fields:n})}function Hs(e,t){let r=e.trimEnd();if(t<=0)return r?`${r} order by $id asc`:"order by $id asc";let n=`$id > ${t} order by $id asc`;return r?`(${r}) and ${n}`:n}function Ld(e,t,r){let n=e.trimEnd(),i=`limit ${t} offset ${r}`;return n?`${n} ${i}`:i}function Ys(e){let r=e[e.length-1]?.$id?.value;if(r===void 0)return 0;let n=Number(r);return Number.isFinite(n)?n:0}var Ie=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var Hn=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 ce=class extends Error{constructor(r,n,i,o=!1){let a=i.slice(Math.max(0,n-10),n+10);super(`${r}\uFF08\u4F4D\u7F6E ${n}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=n;this.input=i;this.unterminated=o;this.name="LexError"}},Jt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let r=this.nextToken();if(t.push(r),r.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,r=this.input[this.pos];if(r==="'")return this.readString(t);if(r==="`")return this.readBacktickIdent(t);if(Xt(r))return this.readNumber(t);let n=this.tryReadOperator(t);if(n)return n;if(Oo(r))return this.readIdentOrKeyword(t);if(r==="#")return this.readHashIdent(t);if(r==="@")return this.readVariable(t);throw new ce(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${r}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let r="";for(;this.pos<this.input.length;){let n=this.input[this.pos];if(n==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")r+="'",this.pos++;else return this.makeToken("STRING",r,t);else r+=n,this.pos++}throw new ce("\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 r="";for(;this.pos<this.input.length;){let n=this.input[this.pos];if(n==="`")return this.pos++,this.makeToken("BIDENT",r,t);r+=n,this.pos++}throw new ce("\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&&Xt(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Xt(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Xt(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||!Xt(this.input[this.pos]))throw new ce("\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&&Xt(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let r=this.input[this.pos],n=this.input[this.pos+1]??"";if(r==="!"&&n==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(r==="<"&&n===">")return this.pos+=2,this.makeToken("<>","<>",t);if(r===">"&&n==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(r==="<"&&n==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(r==="|"&&n==="|")return this.pos+=2,this.makeToken("||","||",t);switch(r){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&&qs(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos),n=r.toUpperCase(),i=Hn.get(n)??"IDENT",o=i==="IDENT"?r:n;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let r=this.input[this.pos]??"";if(!Oo(r))throw new ce("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&qs(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ce(`@profile is not allowed on temp table ${n}.`,this.pos,this.input);return this.makeToken("IDENT",n,t)}readVariable(t){this.pos++;let r=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(r))throw new ce("\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 ce("\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";(()=>{async function Ae(e,t,n,r,i={}){let o=i.pageSize??Kd,a=Math.max(1,i.parallel??Bd),s=i.maxRecords??$d,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,y=0,m=il(n,R),h=await rl(e,t,m,d,o,y);if(nl(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(y+=o,y>=Bo&&(R=ol(h.records),y=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=y+P*o;if(L>=Bo)break;w.push(L)}let _=il(n,R),O=await Promise.all(w.map(P=>rl(e,t,_,d,o,P)));for(let P of O)nl(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(y+=o*w.length,y>=Bo){let P=O[O.length-1];R=ol(P.records),y=0}}return c}function nl(e,t){e.searchAborted&&t.onSearchAborted?.()}function al(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 Kd=500,Bd=1,$d=1e4,Bo=1e4;async function rl(e,t,n,r,i,o){let a=Gd(n,i,o);return e({app:t,query:a,fields:r})}function il(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 Gd(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function ol(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($o(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&&sl(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(!$o(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&&sl(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===`
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 r=this.pos;this.pos+=2;let n=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,n=!0;break}this.pos++}if(!n)throw new ce("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",r,this.input,!0);continue}break}}makeToken(t,r,n){return{kind:t,value:r,pos:n}}};function Oo(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||_d(t)}function qs(e){let t=e.codePointAt(0);return Oo(e)||t>=48&&t<=57}function Xt(e){let t=e.codePointAt(0);return t>=48&&t<=57}function _d(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Dd=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function vd(e,t){if(t===void 0)return 0;let r=0;for(let n of t)if(r=r*10+(n.charCodeAt(0)-48),!Number.isSafeInteger(r))return null;return e==="-"?-r:r}function we(e){let t=Dd.exec(e.trim());if(t===null)return null;let r=vd(t[5],t[6]);if(r===null)return null;let n=t[3]??t[4]??"",i=`${t[2]??""}${n}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=n.length-r;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 Ud(e){if(e.sign===0)return"0";let t=e.coefficient,r;if(e.scale<=0)r=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let n=t.length-e.scale;r=`${t.slice(0,n)}.${t.slice(n)}`}else r=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${r}`:r}function Xs(e){let t=we(e);return t===null?null:Ud(t)}function kd(e,t){let r=e.coefficient.length-e.scale,n=t.coefficient.length-t.scale;if(!Number.isSafeInteger(r)||!Number.isSafeInteger(n))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(r!==n)return r<n?-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 Yn(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let r=kd(e,t);return e.sign===-1?r===0?0:r===-1?1:-1:r}function jn(e,t){let r=we(e),n=we(t);if(r===null||n===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Yn(r,n)}var ut="__NO_FROM__";function pe(e){return{type:"NUMBER",value:Number(e),raw:e}}function G(e){let t=e.raw??String(e.value);return Xs(t)??t}function Js(e){let t=1;for(let n 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 r=[{items:[]}];for(let n of e)r=r.flatMap(i=>[{items:[...i.items,n]},{items:[...i.items]}]);return r}function Md(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,r=[];for(let i of e.grouping.sets)for(let o of i.items){let a=Md(o);t.has(a)||(t.add(a),r.push(o))}let n=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:r,sets:n}}function Qs(e){return Z(e).type!=="NONE"}function Zs(e,t){let r=Z(e);if(r.type!=="GROUPING_SETS")return null;let n=new Map,i=s=>{let l=t(s),p=n.get(l.canonicalId);if(p)return p;let u={...l,field:s};return n.set(u.canonicalId,u),u},o=r.allItems.map(i).filter((s,l,p)=>p.findIndex(u=>u.canonicalId===s.canonicalId)===l),a=r.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:r.source,allItems:o,sets:a}}function qn(e){return`'${e.replace(/'/g,"''")}'`}function Qt(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return G(e);if(e.type==="STRING_FUNC")return _o(e);let r=`${Qt(e.left)}${e.op}${Qt(e.right)}`;return t?r:`(${r})`}function el(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return _o(e.expr);if(e.type==="ARITH_FIELD")return Qt(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Lo(e.expr)}function rl(e){switch(e.type){case"STRING":return qn(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=>qn(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(rl).join(",")})`;case"ARITH_VALUE":return Qt(e.expr);case"CASE_VALUE":return Lo(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Dr(e){switch(e.type){case"BINARY":return`${el(e.left)} ${e.op.replace("_"," ")} ${rl(e.right)}`;case"NULL_CHECK":return`${el(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Dr(e.left)} ${e.op} ${Dr(e.right)})`;case"NOT":return`NOT (${Dr(e.expr)})`;case"GROUP":return`(${Dr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function tl(e){return e.type==="ARRAY"?`[${e.elements.map(t=>qn(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?Qt(e):bt(e)}function Lo(e){let t=e.branches.map(n=>`WHEN ${Dr(n.condition)} THEN ${tl(n.result)}`).join(" "),r=e.elseResult===null?"":` ELSE ${tl(e.elseResult)}`;return`CASE ${t}${r} END`}function xd(e){return e.type==="AGG_REF"?he(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?vr(e):bt(e)}function _o(e){return`${e.func}(${e.args.map(xd).join(",")})`}function bt(e){switch(e.type){case"STRING":return qn(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 _o(e);case"CASE_WHEN":return Lo(e);case"SCALAR_ARITH":return`(${bt(e.left)}${e.op}${bt(e.right)})`;case"CONCAT_OP":return`(${bt(e.left)}||${bt(e.right)})`}}function Fd(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Qt(e,!0):bt(e)}function he(e,t,r){let n=Fd(r);return t?`${e}(DISTINCT ${n})`:`${e}(${n})`}function vr(e){return e.type==="NUMBER"?G(e):e.type==="AGG_REF"?he(e.func,e.distinct,e.arg):`${vr(e.left)}${e.op}${vr(e.right)}`}var zn=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Pt=new Set(["TODAY","NOW","LOGINUSER"]),Do=new Set([...Pt,...zn]),Nt="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Xe="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function z(e){return zn.has(e)}function Zt(e){return Pt.has(e)}function Ue(e){return Do.has(e)}var nl=20,vo=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"}),ol=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Uo=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"}),jg=Object.freeze(Object.values(Uo).filter(e=>e!==void 0)),Kd=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Bd=new Set(Kd);function $d(e){return Bd.has(e)}var al=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Xn=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function il(e){return Xn[e]!==void 0}var Gd=Object.freeze([...zn]),Vd=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Wd=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Hd(e){return Vd.has(e)}function Yd(e){return Wd.has(e)}function jd(e){return Number.isInteger(e)&&e>=1&&e<=31}var qg=Object.freeze(Array.from(new Set([...Object.keys(vo),...ol,...Object.keys(Uo),...Object.keys(al),...Object.keys(Xn),...Gd,"IF"]))),qd=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 zd(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!qd.has(e.kind):!0}var T=class extends Error{constructor(r,n){super(`${r}\uFF08\u4F4D\u7F6E ${n.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${n.value}\u300D\uFF09`);this.token=n;this.name="ParseError"}},er=class{constructor(t,r={}){this.tokens=t;this.capabilities=r;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 r=this.tempTableRefs[0];throw new T(`temp table ${r.value} is not defined in this batch.`,r)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>nl)throw new T(`batch exceeds ${nl} statements.`,r);let n=this.peek();if(n.kind!==";"&&n.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",n)}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 r=t.value.toUpperCase();if(r==="CREATE")return this.parseCreateTempTable();if(r==="DROP")return this.parseDropTempTable();if(r==="DECLARE")return this.parseDeclareVariable();if(r==="VALIDATE")return this.parseValidate();if(r==="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 r=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:r}}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 r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseScalarExpr(t,r){let n=this.peek();if(n.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,n);if(n.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(n.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!r)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",n);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.",n);return{type:"SCALAR_SUBQUERY",query:a}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};let i=Xn[n.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`,n);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,n,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`,n)}rejectNonScalarExpr(t,r,n){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(`${n} \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`,r);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,r,n),this.rejectNonScalarExpr(t.right,r,n);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,r,n);return}throw new T(`${n} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r)}}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 r=this.peek(),n;if(r.kind==="WITH")n=this.parseWith();else if(r.kind==="SELECT")n=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return{type:"CREATE_TEMP_TABLE",name:t,query:n}}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,r){let n=this.peek();if(n.kind==="IDENT"&&n.value.toUpperCase()===t){this.advance();return}throw new T(r,n)}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:r,subtableCode:n}=Je(t,this.prev());if(n)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:r}}parseExplain(){this.advance();let t=this.peek(),r;if(t.kind==="WITH"){let n=this.parseWith();if(n.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);r=n}else if(t.kind==="SELECT"){let n=this.parseSelect(!0);r=this.tryParseUnionChain(n)}else if(t.kind==="INSERT")r=this.parseInsert();else if(t.kind==="UPSERT")r=this.parseUpsert();else if(t.kind==="UPDATE")r=this.parseUpdate();else if(t.kind==="DELETE")r=this.parseDelete();else if(t.kind==="REORDER")r=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")r=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);r=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:r}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let r=this.parseIdentifier(),{appId:n,subtableCode:i}=Je(r,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 P=this.parseIdentifier();if(s.has(P))throw new T(`IMPORT target ${P} is declared more than once.`,this.prev());if(s.add(P),this.peek().kind==="("){this.advance();let _=this.parseIdentList();if(this.expect(")"),new Set(_).size!==_.length)throw new T(`IMPORT subtable ${P} contains duplicate child declarations.`,this.prev());let N;if(this.isSoftKeyword("ROW")){this.advance();for(let L of["ID","SOURCE"]){if(!this.isSoftKeyword(L))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}N=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:P,children:_,...N?{rowIdSourceHeader:N}:{}})}else a.push(P),o.push({kind:"FIELD",field:P});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new 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 P=this.parseIdentifier().toUpperCase();if(P!=="UTF8"&&P!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());u=P==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new 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!==ut||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(P=>P.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 P of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(P))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(P=>P.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(P=>P.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 P=new Set(h);for(let _ of g){if(!_.rowIdSourceHeader)throw new T(`CSV subtable ${_.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!P.has(_.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${_.subtableCode}.`,this.prev())}for(let _ of P)if(!g.some(N=>N.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(),O=this.parseDmlControlSuffix();return{type:"IMPORT",appId:n,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,...O}}validateImportProjectionScope(t,r){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,r));return}if(t===null||typeof t!="object")return;let n=t;if(n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",r);if(typeof n.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",r);Object.values(n).forEach(i=>this.validateImportProjectionScope(i,r))}parseValidate(){let t=this.advance(),r=this.parseIdentifier(),{appId:n,subtableCode:i}=Je(r,this.prev());if(i)throw new T(`VALIDATE APP${n}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${n} (${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:n,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(u,t),u}assertValidateExpressions(t,r){let n=i=>{if(Array.isArray(i)){i.forEach(n);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",r);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",r);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",r);Object.values(o).forEach(n)};n(t.where),n(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,r=this.parseAssertOperand(),n=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:r,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",n);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:r,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 r=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(!r.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&r.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:r}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let r=this.parseArithAddSub();return this.rejectNonLiteralArith(r,t),r.type==="NUMBER",r}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,r){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}`,r);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",r);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,r),this.rejectNonLiteralArith(t.right,r))}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,r){let n="";for(let i=t;i<r;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,n.length>0&&zd(this.tokens[i-1],o)&&(n+=" "),n+=a}return n}parseSelect(t=!1){this.expect("SELECT");let r=this.consume("DISTINCT"),n=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:ut},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=n.some(y=>y.type==="WINDOW_COL"),m=n.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:r,columns:n,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 n=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:n,query:i}),this.cteNames.add(n)}while(this.consume(","));let r=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let r=this.consume("ALL"),n=this.parseSelect(),i={type:"UNION",all:r,left:t,right:n};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 r=this.tryAggregateFunc();if(r!==null){let o=this.parseAggregateRef(r);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 n=this.parseColumnFieldRef();if(n==="_p.*")return{type:"PARENT_WILDCARD"};if(n==="_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:n},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:n,alias:i}}tryWindowFunc(){return al[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 r=[];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();r.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let n=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:r,orderBy:n,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(r=>this.stringFuncArgHasAggregate(r)):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(r=>this.stringFuncArgHasAggregate(r)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(n=>n.result),...t.elseResult?[t.elseResult]:[]].some(n=>n.type==="ARRAY"||n.type==="FIELD_REF"||n.type==="ARITH"?!1:this.scalarValueHasAggregate(n)):!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 r=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:r,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let r=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:r,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let r=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),r}if(this.peek().kind==="-"){this.advance();let r=this.parseAggPrimary();return r.type==="NUMBER"?pe(`-${G(r)}`):{type:"AGG_ARITH",left:pe("0"),op:"-",right:r}}if(this.peek().kind==="NUMBER"){let r=this.advance();return pe(r.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 r=this.scalarAllowsAggregateArgs,n=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=r,this.scalarAllowsCase=n}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 r=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let n=this.advance(),i=this.parseScalarMulDiv(t);r=n.kind==="||"?{type:"CONCAT_OP",left:r,right:i}:{type:"SCALAR_ARITH",left:r,op:n.kind==="+"?"+":"-",right:i}}return r}parseScalarMulDiv(t){let r=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.advance(),i=n.kind==="*"?"*":n.kind==="/"?"/":"%";r={type:"SCALAR_ARITH",left:r,op:i,right:this.parseScalarPrimary(t)}}return r}parseScalarPrimary(t){let r=this.peek();if(r.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",r);this.advance();let n=this.parseScalarAddSubConcat(t);return this.expect(")"),n}if(r.kind==="+"||r.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.parseScalarPrimary(t);if(n.type==="NUMBER")return pe(`${r.kind==="-"?"-":"+"}${G(n)}`);if(r.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",r);return{type:"SCALAR_ARITH",left:pe("0"),op:"-",right:n}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};if(r.kind==="NUMBER")return this.advance(),pe(r.value);if(r.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:r.value.slice(1).toLowerCase()};if(r.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",r);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",r);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(r.kind==="IDENT"||r.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:r.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:r.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",r)}hasTopLevelTokenBeforeValueEnd(t){let r=0;for(let n=this.pos;n<this.tokens.length;n++){let i=this.tokens[n].kind;if(i==="("||i==="[")r++;else if(i===")"||i==="]"){if(r===0)break;r--}if(i===t)return!0;if(r===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 r=this.parseArithOp(),n=this.parseArithPrimary();t={type:"ARITH",left:t,op:r,right:n}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let r=this.parseArithOp(),n=this.parseArithMulDiv();t={type:"ARITH",left:t,op:r,right:n}}return t}parseArithPrimary(){if(this.consume("(")){let r=this.parseArithAddSub();return this.expect(")"),r}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return pe(`+${r.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 r=this.parseArithPrimary();return r.type==="NUMBER"?pe(`-${G(r)}`):{type:"ARITH",left:pe("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),pe(t.value);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let r=t.value;if(this.peek().kind==="."){this.advance();let n=this.advance();r=`${r}.${n.value}`}return{type:"FIELD_REF",field:r}}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 r=this.parseCaseCondition(t);this.expect(",");let n=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:r,result:n}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let r=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();r.push({condition:i,result:o})}if(r.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=null;return this.consume("ELSE")&&(n=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:r,elseResult:n}}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 r=vo[this.peek().kind];if(r==="LEFT"||r==="RIGHT")return r}let t=vo[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let r=this.peek().value.toUpperCase();if(ol.includes(r)&&this.peekAt(1).kind==="(")return r}return null}parseStringFuncExpr(){let t=this.peek().kind,r=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 n=[];if(this.peek().kind!==")")do n.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:r,args:n}}parseCastType(){let t=this.peek(),r;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),r=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 n=Xd(r);if(n===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${r}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:n}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let r=this.parseAggPrimary(),n=this.continueAggArith(r);if(this.hasAggregateOperand(n))return n}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 Uo[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let r=this.consume("DISTINCT"),n=r?this.prev():null;if(t==="MODE"&&n)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);let i;if(this.consume("*")){if(!$d(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:r,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let r=this.parseArithAddSub();if(this.isAggregateArgEnd())return r}catch{}this.pos=t,this.insideAggregateArg++;try{let r;try{r=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(n){if(n instanceof T){if(n.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)",n.token);if(n.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",n.token)}throw n}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(r),r}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let r=n=>{if(n===null||typeof n!="object")return;let i=n;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))r(o)};r(t)}parseTableRef(){let t=this.peek(),r=this.parseTableName();if(t.kind==="IDENT"&&r.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:r};if(this.cteNames.has(r))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:r};let{appId:n,subtableCode:i}=Je(r,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:n,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??r;return{appId:n,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 r=this.tryJoinType();if(r===null)break;let n=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:r,table:n,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 r=this.parseQualifiedIdent();return{left:t,right:r}}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 r=this.parseIdentifier();return{tableAlias:t,field:r}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,r=this.allowRelativeDateFunctions){let n=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??n,this.allowRelativeDateFunctions=r;try{return this.parseOrExpr()}finally{this.groupingFieldContext=n,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let r=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:r}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let r=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:r}}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 r=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:r}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r].kind;if(n==="(")t++;else if(n===")"&&(t--,t===0)){let i=this.tokens[r+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}r++}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 r=this.parseCompareOp(),n=this.parseWhereSqlValue();return{type:"BINARY",op:r,left:t,right:n}}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 n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(n)}:{type:"FUNC_FIELD",expr:n}}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 n=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:he(n.func,n.distinct,n.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 n=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(n)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let r=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r.tableAlias?`${r.tableAlias}.${r.field}`:r.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:r.tableAlias,field:r.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"),r=t.value.toUpperCase();switch(this.expect("("),r){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${r}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:r,args:{kind:"NONE"}};case"FROM_TODAY":{let n="";if(this.consume("-")&&(n="-"),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=`${n}${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(!Hd(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:r,args:{kind:"FROM_TODAY",offset:a,offsetText:p,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let n=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${r} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!Yd(o))throw new T(`${r} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);n=o}return this.expect(")",`${r} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:r,args:{kind:"WEEK",weekday:n}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let n=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),n="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!jd(o))throw new T(`${r} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);n=o}else throw new T(`${r} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${r} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:r,args:{kind:"MONTH",day:n}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${r} \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(il(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Xn[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 r=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:r}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let r=this.parseArithAddSub();return r.type==="NUMBER"?r:{type:"ARITH_VALUE",expr:r}}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 r=this.parseInListOrSubquery();return this.expect(")"),r}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(),r=t.columns[0],n=r&&r.type==="FIELD"?r.alias??r.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:n}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],r="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",n="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(pe(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(r,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(pe(`${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(n,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(n,this.peek())}else throw new T(r,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 r=new Set,n=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);r.has(a)||(r.add(a),n.push(o))}return n}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(),r=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:r.tableAlias,field:r.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 r=[];if(this.peek().kind!==")")do r.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:r})}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 r=Array.from({length:t.length+1},(n,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(r),sets:r}}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 r=Js(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(r),sets:r}}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 r=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:r.tableAlias,field:r.field}}}parseGroupByKey(){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 t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let r=[];do{let n=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),r.push({key:n,direction:i})}while(this.consume(","));return r}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 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 r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Je(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(n)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:r,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(n&&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(n&&(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 n?{type:"INSERT",appId:r,subtableCode:n,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:r,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Je(t,this.prev());if(n)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:r,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:r,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,r;for(;this.isUpsertApplyBranchStart();){this.advance();let n=this.advance(),i=n.kind==="INSERT";if(i&&t||!i&&r)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,n);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:r=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}:{},...r?{onUpdateApplyBlocks:r}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let r=this.expect("STRING");t.push({type:"STRING",value:r.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let n=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:n})}else if(this.peek().kind==="IF"){let n=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:n})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let n=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");r.push(pe(`${n.kind==="-"?"-":"+"}${i.value}`))}else{let n=this.advance();if(n.kind==="STRING")r.push({type:"STRING",value:n.value});else if(n.kind==="NUMBER")r.push(pe(n.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",n)}while(this.consume(","));if(r.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Je(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(n&&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${r}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${r} \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(n)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,r,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(n&&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(n&&(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:r,assignments:i,where:s,from:o,...d,...p,...u}:n?{type:"UPDATE",appId:r,subtableCode:n,assignments:i,where:s,...d,...p,...u}:{type:"UPDATE",appId:r,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 r=[];for(;r.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 n=r.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=r.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(n&&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:r}:{field:t,targetKind:"SUBTABLE",operations:r}}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(),r=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:r,...n?{expectRows:n}:{}}}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 r=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),r.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:r}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...r?{expectRows:r}:{}}}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 r=this.parseExpectRowsCount();if(t>r)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:r}}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 r=this.advance(),n=[];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});n.push({condition:i,message:o})}if(n.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",r);t.push({rules:n})}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 r=null;if(this.consume("INTO")){let n=this.peek();if(n.kind!=="IDENT"||!n.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",n);r=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:r}}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 r=this.peek();if(r.kind!=="IDENT"||!r.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",r);let n=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:n,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,r,n){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",n);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==r.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${r} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,n);continue}if(this.nodeContainsQualifiedField(i.value,r))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",n);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",n);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",n)}}decomposeUpdateFromWhere(t,r,n,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((u,d)=>{let c=this.matchUpdateFromJoin(u,r,n);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],n))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],r))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${r} \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,r,n){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,r)&&this.isSourceRef(i,n)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,n)&&this.isTargetRef(i,r)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let r=t.indexOf(".");return r<0?{alias:null,field:t}:{alias:t.slice(0,r),field:t.slice(r+1)}}isTargetRef(t,r){return t.alias===null||t.alias.toLowerCase()===`app${r}`.toLowerCase()}isSourceRef(t,r){return t.alias?.toLowerCase()===r.toLowerCase()}nodeContainsQualifiedField(t,r){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,r));if(t===null||typeof t!="object")return!1;let n=t;if(n.type==="FIELD"&&typeof n.tableAlias=="string"&&n.tableAlias.toLowerCase()===r.toLowerCase())return!0;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let i=this.splitQualifiedField(n.field);if(this.isSourceRef(i,r))return!0}return Object.values(n).some(i=>this.nodeContainsQualifiedField(i,r))}nodeContainsForeignQualifier(t,r){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,r));if(t===null||typeof t!="object")return!1;let n=t,i=`app${r}`.toLowerCase();if(n.type==="FIELD"&&typeof n.tableAlias=="string")return n.tableAlias.toLowerCase()!==i;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let o=this.splitQualifiedField(n.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(n).some(o=>this.nodeContainsForeignQualifier(o,r))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(n=>this.nodeContainsAnyQualifier(n));if(t===null||typeof t!="object")return!1;let r=t;return r.type==="FIELD"&&typeof r.tableAlias=="string"||r.type==="FIELD_REF"&&typeof r.field=="string"&&this.splitQualifiedField(r.field).alias!==null?!0:Object.values(r).some(n=>this.nodeContainsAnyQualifier(n))}parseAssignments(){let t=[];do{let r=this.parseIdentifier();this.expect("=");let n=this.parseAssignmentValue();t.push({field:r,value:n})}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(il(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 r=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let n;try{n=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=r}if(n.type==="NUMBER"||n.type==="ARITH"||n.type==="STRING_FUNC")return n;if(n.type==="FIELD_REF"){let i=n.field.indexOf(".");if(i>0&&i<n.field.length-1)return{type:"SOURCE_FIELD",alias:n.field.slice(0,i),field:n.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:r,subtableCode:n}=Je(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 n?{type:"DELETE",appId:r,subtableCode:n,where:o}:{type:"DELETE",appId:r,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let r=this.parseIdentifier(),{appId:n,subtableCode:i}=Je(r,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:n,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,r){let n=this.peek();if(n.kind!==t)throw new T(r??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,n);return this.advance()}expectKeyword(t,r){return this.expect(t,r)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),r=Number(t.value);if(!Number.isInteger(r)||r<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return r}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"||Hn.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 r=this.parseIdentifier();return`${t}.${r}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let r=this.parseIdentifier();return`${t}.${r}`}};function Xd(e){let t=e.toUpperCase(),r=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),n=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return r.has(t)?"TEXT":n.has(t)?"NUMBER":null}function Je(e,t){let r=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!r)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(r[1]),subtableCode:r[2]??null}}function sl(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var Jd=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function de(e,t){for(let r of t)e.add(r)}function Jn(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let r=e;return(r.type==="AGGREGATE"||r.type==="AGG_REF")&&typeof r.func=="string"&&Jd.has(r.func)||r.type==="FIELD"&&typeof r.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(r.field)?!0:Object.values(r).some(n=>Array.isArray(n)?n.some(i=>Jn(i,t)):Jn(n,t))}function Ct(e){let t=new Set;if(sl(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":de(t,rr(e));break;case"UNION":de(t,ll(e));break;case"WITH":for(let r of e.ctes)de(t,Ct(r.query));de(t,Ct(e.query));break;case"CREATE_TEMP_TABLE":de(t,Ct(e.query));break;default:break}return Jn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function ll(e){let t=e.left.type==="SELECT"?rr(e.left):ll(e.left);return de(t,rr(e.right)),t}function rr(e){let t=new Set;Z(e).type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&de(t,rr(r.query)),r.type==="CASE_COL")for(let n of r.expr.branches)de(t,tr(n.condition));return de(t,tr(e.where)),de(t,tr(e.having)),Jn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function tr(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")&&de(t,rr(e.right.query));break;case"LOGICAL":de(t,tr(e.left)),de(t,tr(e.right));break;case"NOT":case"GROUP":de(t,tr(e.expr));break;case"EXISTS":de(t,rr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var Qd=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})}),xo=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})}),Ur="v1";function B(e){throw new Error(`UnsupportedError: APPLY ${Ur} scope does not support ${e}`)}function Zd(e,t){let r=Ur;Ur=e;try{return t()}finally{Ur=r}}function ef(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 Zn(e,t){return Zd(e,()=>tf(t,Qd[e]))}function tf(e,t){let r=ef(e);if(r===null)return;if(r.type==="UPSERT"){nf(r,t);return}let n=r.applyBlocks;if(ko(n),!t.multipleBlocks&&n.length!==1&&B("multiple APPLY blocks in this phase"),r.type==="INSERT"){of(r,n,t);return}let i=r;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"),af(i.where,t.multipleParents),cl(n,t)}function cl(e,t){for(let r of e){for(let n of r.operations)t.operations.has(n.kind)||B(`${n.kind} in this phase`);pl(r);for(let n of r.operations){if(n.kind==="APPEND"){for(let i of n.fields)Qn(i,"APPEND targets");ir(n.values,"APPEND values");continue}if(n.kind==="REMOVE"){!t.expectRows&&n.expectRows&&B("EXPECT ROWS in this phase"),n.selector.kind==="WHERE"&&ul(n.selector.where,t.idxSelectors);continue}if(n.kind==="PATCH"){!t.expectRows&&n.expectRows&&B("EXPECT ROWS in this phase"),n.assignments.length===0&&B("an empty PATCH operation in this phase");for(let i of n.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")}ir(n.assignments,"PATCH assignments"),n.selector.kind==="WHERE"&&ul(n.selector.where,t.idxSelectors)}}}}function pl(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),r=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&r)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let n=r?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==n)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${n} operations.`)}var rf=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function dl(e,t){if(pl(e),e.targetKind==="MULTI_VALUE"){if(!rf.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 ko(e){let t=new Set;for(let r of e){if(t.has(r.field))throw new Error(`ArgumentError: APPLY ${Ur} scope allows only one block for table ${r.field}`);t.add(r.field)}}function nf(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 r=e.onInsertApplyBlocks??[],n=e.onUpdateApplyBlocks??[];ko(r),ko(n),!t.multipleBlocks&&(r.length>1||n.length>1)&&B("multiple APPLY blocks in this phase"),fl(r,"UPSERT ON INSERT"),cl(n,{...t,idxSelectors:!1,expectRows:!1})}function fl(e,t){for(let r of e)for(let n of r.operations){n.kind!=="APPEND"&&B(`${n.kind} for ${t} in this phase`);for(let i of n.fields)Qn(i,"APPEND targets");ir(n.values,"APPEND values")}}function of(e,t,r){r.insert||B("INSERT in this phase"),e.subtableCode&&B("a subtable INSERT as the parent statement in this phase"),!r.check&&e.checkGroups?.length&&B("CHECK in this phase"),!r.onErrorSkip&&e.onErrorSkip&&B("ON ERROR SKIP in this phase"),!r.rejectLimit&&e.rejectLimit!=null&&B("REJECT LIMIT in this phase"),fl(t,"INSERT")}function Qe(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 El(e,t){let r=xo[e],n="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!n&&Rl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${nr(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!r.upsertWrite)throw new Error(`UnsupportedError: APPLY ${nr(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!r.insertWrite)throw new Error(`UnsupportedError: APPLY ${nr(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!r.multipleParentPreflight&&!Qe(t.where))throw new Error(`UnsupportedError: APPLY ${nr(e)} execution does not support multiple-parent APPLY`)}function Rl(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(n=>n.targetKind==="MULTI_VALUE"||n.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function ml(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Qe(t.where))&&!xo[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${nr(e)} public multiple-parent write is not connected`)}function or(e){if(!xo[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${nr(e)} internal prepared write is not available`)}function nr(e){return`Phase ${e.slice(5)}`}function af(e,t){Qe(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"),Mo(e,t))}function Mo(e,t){if(Array.isArray(e)){for(let o of e)Mo(o,t);return}if(e===null||typeof e!="object")return;let r=e,n=typeof r.type=="string"?r.type:null,i=typeof r.op=="string"?r.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&B("KLIKE in parent WHERE"),(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="SUBQUERY_IN_LIST"||n==="EXISTS")&&B("subqueries in parent WHERE"),(n==="WINDOW_COL"||n==="AGGREGATE"||n==="AGG_REF"||n==="AGG_ARITH"||n==="ARITH_AGG_COL")&&B("aggregate or window expressions in parent WHERE"),(n==="FIELD"||n==="FIELD_REF")&&typeof r.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(r.field)&&B("aggregate or window expressions in parent WHERE"),n==="KINTONE_FUNC"&&!(typeof r.name=="string"&&z(r.name))&&B("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(r))Mo(o,t)}function ul(e,t){ir(e,"child row selectors",t)}function ir(e,t,r=!1){if(Array.isArray(e)){for(let s of e)ir(s,t,r);return}if(e===null||typeof e!="object")return;let n=e,i=typeof n.type=="string"?n.type:null,o=typeof n.kind=="string"?n.kind:null,a=typeof n.op=="string"?n.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 n.name=="string"&&z(n.name))&&B(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=n.tableAlias,l=n.field;s!=null&&B(`qualified or parent field references in ${t}`),Qn(l,t,r)}if(i==="FIELD_REF"&&Qn(n.field,t,r),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(n))ir(s,t,r)}function Qn(e,t,r=!1){if(typeof e!="string")return;let n=e.toLowerCase();n==="_idx"&&!r&&B(`_idx in ${t}`),(n.startsWith("_p.")||n.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 kr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=sf(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:kr(e.left),right:kr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:kr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function sf(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 yl(e){return e.includes("%")||e.includes("_")}function Mr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function pt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function ct(e){if(e===null)return!1;if(Mr(e))return!0;switch(e.type){case"LOGICAL":return ct(e.left)||ct(e.right);case"NOT":case"GROUP":return ct(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ae(e){if(e===null)return!1;if(pt(e))return!0;switch(e.type){case"LOGICAL":return ae(e.left)||ae(e.right);case"NOT":case"GROUP":return ae(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function $(e){switch(e.type){case"BINARY":return lf(e);case"NULL_CHECK":return cf(e);case"LOGICAL":return pf(e);case"NOT":return df(e);case"GROUP":return ff(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 lf(e){if(Mr(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=gl(e.left),r=uf(e.op),n=Ef(e.right,e.op);return`${t} ${r} ${n}`}function uf(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 cf(e){let t=gl(e.field);return e.not?`${t} != ""`:`${t} = ""`}function pf(e){let t=$(e.left),r=$(e.right),n=e.op==="AND"?"and":"or",i=hl(e.left)?`(${t})`:t,o=hl(e.right)?`(${r})`:r;return`${i} ${n} ${o}`}function df(e){return $(kr(e.expr))}function ff(e){return`(${$(e.expr)})`}function gl(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 Tf(e.field)}function Ef(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 Al(e);case"NUMBER":return G(e);case"KINTONE_FUNC":return Sl(e);case"IN_LIST":return Af(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 Al(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Sl(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return Rf(e)}function Rf(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?xr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!hf(e.args.offset,e.args.offsetText)||!mf.has(e.args.unit)?xr():`${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&&!yf.has(e.args.weekday)?xr():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"||!gf(e.args.day)?xr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return xr()}var mf=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),yf=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function hf(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function gf(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function xr(){throw new ee("internal error: invalid relative date function AST reached kintone query conversion")}function Af(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 Sf(e.values),`(${e.values.map(n=>n.type==="STRING"?Al(n):n.type==="NUMBER"?G(n):Sl(n)).join(",")})`}function Sf(e){let t=e.find(r=>r.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 Tf(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function hl(e){return e.type==="LOGICAL"}var ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function If(e){return e.some(t=>t.type==="WINDOW_COL")}function be(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||If(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Pl(t.expr)||t.type==="SCALAR_VALUE_COL"&&Kr(t.expr))||dt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function dt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Tl(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Mr(e);case"NULL_CHECK":return Tl(e.field);case"LOGICAL":return dt(e.left)||dt(e.right);case"NOT":case"GROUP":return dt(e.expr);case"EXISTS":return!0}}function Tl(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function ei(e){let t=[],n=(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(wf).join(", ");t.push(`order by ${i}`)}else n&&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:bf(e.columns),totalCount:!1}}function bl(e,t){let r=[];return e.where!==null&&e.joins.length===0&&!dt(e.where)&&r.push($(e.where)),{app:t,query:r.join(" "),fields:[]}}function Ot(e,t,r){let i=Of(e,r).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 wf(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 bf(e){if(e.some(n=>n.type==="WILDCARD"||n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"))return[];let r=[];for(let n of e)n.type==="FIELD"?r.push(Ko(n.field)):n.type==="ARITH_COL"?Fr(n.expr,r):n.type==="STRFUNC_COL"?Bo(n.expr,r):n.type==="SCALAR_VALUE_COL"&&ar(n.expr,r);return[...new Set(r)]}function Pf(e,t){Fr(e.left,t),Fr(e.right,t)}function Fr(e,t){e.type==="FIELD_REF"?t.push(Ko(e.field)):e.type==="ARITH"?Pf(e,t):e.type==="STRING_FUNC"&&Bo(e,t)}function Ko(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Bo(e,t){for(let r of e.args)Nf(r,t)}function Nf(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Fo(e,t);return}ar(e,t)}function ar(e,t){if(e.type==="FIELD"){t.push(Ko(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Bo(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){ar(e.left,t),ar(e.right,t);return}if(e.type==="CASE_WHEN"){for(let r of e.branches)Il(r.result,t);e.elseResult&&Il(e.elseResult,t)}}function Il(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Fr(e,t);return}ar(e,t)}}function Fo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Cf(e.arg,t);return}e.type==="AGG_ARITH"&&(Fo(e.left,t),Fo(e.right,t))}function Cf(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Fr(e,t):ar(e,t)}function Pl(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Kr(t))}function Kr(e){return e.type==="STRING_FUNC"?Pl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Kr(e.left)||Kr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>wl(t.result))||e.elseResult!==null&&wl(e.elseResult):!1}function wl(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Kr(e)}function Of(e,t){let r=[e.from,...e.joins.map(A=>A.table)],n=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),i=new Map;for(let A of n)i.set(A,{table:A,allFields:!1,fields:new Set});if(i.size===0)return i;let o=n[0]??null,a=n.find(A=>!!A.subtableCode)??null,s=new Map;for(let A of n)A.alias&&s.set(A.alias,A),A.subtableCode||(s.set(`APP${A.appId}`,A),s.set(`app${A.appId}`,A));let l=Lf(e.columns),p=A=>{let b=i.get(A);b&&(b.allFields=!0,b.fields.clear())},u=()=>{for(let A of n)p(A)},d=()=>{for(let A of n)A.subtableCode&&p(A)},c=(A,b)=>{let C=i.get(A);if(!(!C||C.allFields)){if(A.subtableCode){if(b.startsWith("_p.")){let w=b.slice(3);w&&w!=="*"&&C.fields.add(w);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 U=A.slice(0,-2);if(!U){u();return}if(U==="_p"){d();return}let K=s.get(U);if(K){p(K);return}return}if(b==="groupBy"&&C!==void 0){if(C.kind==="PHYSICAL"){let U=r[C.sourceIndex];U?.cteName===null&&c(U,C.fieldCode)}return}if((b==="orderBy"||b==="having"||b==="groupBy")&&l.has(A)||(b==="orderBy"||b==="having"||b==="groupBy")&&_f(A))return;let w=A.indexOf(".");if(w>0){let U=A.slice(0,w),K=A.slice(w+1);if(U==="_p"){a&&c(a,`_p.${K}`);return}let W=s.get(U);if(W){c(W,K);return}}o&&c(o,A)},E=(A,b,C="select")=>{if(b){if(b==="_p"){a&&c(a,`_p.${A}`);return}let w=s.get(b);if(w){c(w,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"&&P(A,b)},S=(A,b="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,b);return}g(A,b)},O=(A,b="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,b);return}g(A,b)}},P=(A,b="select")=>{for(let C of A.branches)L(C.condition,b),O(C.result,b);A.elseResult&&O(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"&&P(A.expr,b)},N=(A,b="select")=>{if(A.type==="ARITH_VALUE"){R(A.expr,b);return}if(A.type==="CASE_VALUE"){P(A.expr,b);return}},L=(A,b="where")=>{if(A)switch(A.type){case"BINARY":_(A.left,b),N(A.right,b);return;case"NULL_CHECK":_(A.field,b);return;case"LOGICAL":L(A.left,b),L(A.right,b);return;case"NOT":case"GROUP":L(A.expr,b);return;case"EXISTS":case"BOOLEAN":return}},I=(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")},v=(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":P(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)v(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");L(e.where,"where");let k=Z(e);if(k.type==="PLAIN")k.allItems.forEach((A,b)=>I(A,t?.items[b]));else if(k.type==="GROUPING_SETS")for(let A of k.allItems)E(A.field,A.tableAlias,"select");L(e.having,"having");for(let A of e.orderBy)v(A.key);return i}function Lf(e){let t=new Set;for(let r of e){if(r.type==="FIELD"&&r.alias){t.add(r.alias);continue}if(r.type==="LITERAL_COL"){t.add(r.alias??`'${r.value}'`);continue}if(r.type==="AGGREGATE"){r.alias?t.add(r.alias):t.add(he(r.func,r.distinct,r.arg));continue}if(r.type==="ARITH_AGG_COL"){r.alias&&t.add(r.alias);continue}if(r.type==="ARITH_COL"){r.alias&&t.add(r.alias);continue}if(r.type==="CASE_COL"){t.add(r.alias??"case");continue}if(r.type==="STRFUNC_COL"){r.alias&&t.add(r.alias);continue}if(r.type==="SCALAR_VALUE_COL"){r.alias&&t.add(r.alias);continue}if(r.type==="GROUPING_COL"){t.add(r.alias??`GROUPING(${r.ref.field.tableAlias?`${r.ref.field.tableAlias}.`:""}${r.ref.field.field})`);continue}if(r.type==="SCALAR_SUBQUERY_COL"){t.add(r.alias??"(subquery)");continue}r.type==="WINDOW_COL"&&t.add(r.alias)}return t}function _f(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function ft(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||be(t.query)!=="SIMPLE"||!t.query.columns.every(n=>n.type==="WILDCARD"||n.type==="FIELD"&&(n.alias===null||n.alias===n.field)))return!1;let r=e.query;return r.type!=="SELECT"||r.from.cteName!==t.name||r.joins.length>0||Qs(r)||r.distinct?!1:!r.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")}function Et(e){let t=e.ctes[0].query,r=e.query,n=ti(r.where,r.from.alias),i=t.where===null?n:n===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:n},o=r.columns.every(a=>a.type==="WILDCARD")?t.columns:r.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:r.orderBy.length>0?r.orderBy:t.orderBy,limit:r.limit??t.limit,offset:r.offset??t.offset,distinct:!1}}function ti(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Nl(e.left,t)};case"NULL_CHECK":return{...e,field:Nl(e.field,t)};case"LOGICAL":return{...e,left:ti(e.left,t),right:ti(e.right,t)};case"NOT":case"GROUP":return{...e,expr:ti(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Nl(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function sr(e,t={}){return Br(e,r=>Df(r,t))}function $r(e,t={}){return Br(e,r=>Cl(r,t)||Ol(r,t))}function Br(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=Br(e.left,t),n=Br(e.right,t);return r&&n?{...e,left:r,right:n}:r??n??null}case"GROUP":return Br(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Df(e,t){return vf(e,t)||Mf(e,t)?!0:Cl(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":kf(e,t)}function vf(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!$o(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Uf=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function kf(e,t){if(!Ol(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let r=t.fieldTypes?.get(e.left.field);if(r===void 0||!Uf.has(r))return!1;let n=t.fieldOptions?.get(e.left.field);return n===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&n.has(i.value))}function Mf(e,t){return!xf(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function xf(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let r=t.tableAlias??null;return e.tableAlias===r?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Cl(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!$o(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 Ol(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!$o(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(r=>r.type==="STRING"&&r.value!=="")}function $o(e,t){let r=t.tableAlias??null;return e.tableAlias===r?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Gr(e,t={}){let r=e!==null&&t.extractCondition!==!1?sr(e,t):null,n=new Set;lr(r,n);let i=new Set;return lr(e,i),{condition:r,appliedKlikes:n,allKlikes:[...i]}}function ur(e,t={}){let n={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=Gr(e.where,{...n,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=sr(e.where,{...n,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())lr(u,p);return{mainCondition:s,joinConditions:l,appliedKlikes:p,allKlikes:a.allKlikes}}function Go(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function lr(e,t){if(e!==null){if(pt(e)){t.add(e);return}switch(e.type){case"LOGICAL":lr(e.left,t),lr(e.right,t);return;case"NOT":case"GROUP":lr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var re=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function dr(e){Ll(e)}function Wo(e){if(Go(e).length>0)throw new re("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 Ll(e){switch(e.type){case"SELECT":pr(e);return;case"UNION":Yo(e);return;case"WITH":_l(e);return;case"EXPLAIN":Ll(e.query);return;case"CREATE_TEMP_TABLE":Ho(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":cr(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Qe(e.where)&&ae(e.where)){Vo(e.where),cr(e);return}if(Rt(e)&&e.subtableCode)throw new re("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&&ae(e.where)&&!Kf(e,e.where)){Vo(e.where),cr(e);return}if(Rt(e))throw new re("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(Rt(e)&&e.subtableCode)throw new re("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&&ae(e.where)){Vo(e.where),cr(e);return}if(Rt(e))throw new re("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(Rt(e))throw new re("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Rt(e))throw new re("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Rt(e))throw new re("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(Rt(e))throw new re("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 Vo(e){ni(e,t=>{if(!pt(t))return;let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new re("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(r.type==="STRING"&&r.value.includes("%"))throw new re("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 Ho(e){e.type==="SELECT"?pr(e):e.type==="UNION"?Yo(e):_l(e)}function Yo(e){Ho(e.left),pr(e.right)}function _l(e){if(ft(e)){pr(Et(e));return}for(let t of e.ctes)t.query.type==="SELECT"?pr(t.query):t.query.type==="UNION"&&Yo(t.query);Ho(e.query)}function pr(e){if(Ff(e),ae(e.where)&&!(be(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(r=>r.table.cteName===null))){let r=ur(e,{allowUnresolvedVariables:!0});if(Go(r).length===0){cr(e);return}throw new re("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")}cr(e)}function Ff(e){ni(e,t=>{if(!pt(t))return;if(!ri(e.where,t))throw new re("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new re("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(r.type==="STRING"&&r.value.includes("%"))throw new re("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 cr(e){ii(e,t=>{t.type==="SELECT"&&pr(t)},!0)}function Rt(e){let t=!1;return ii(e,r=>{r.type==="BINARY"&&(r.op==="KLIKE"||r.op==="NOT_KLIKE")&&(t=!0)}),t}function Kf(e,t){let r=!1,n=i=>{if(r||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)n(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){r=!0;return}for(let a of Object.values(o))n(a)}};return n(e),r}function ri(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ri(e.left,t)||ri(e.right,t);case"NOT":case"GROUP":return ri(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ni(e,t){if(Array.isArray(e)){for(let n of e)ni(n,t);return}if(e===null||typeof e!="object")return;let r=e;(r.type==="BINARY"||r.type==="NULL_CHECK"||r.type==="LOGICAL"||r.type==="NOT"||r.type==="GROUP"||r.type==="EXISTS")&&t(r);for(let n of Object.values(r))n!==e&&Bf(n)||ni(n,t)}function ii(e,t,r=!1){if(Array.isArray(e)){for(let i of e)ii(i,t);return}if(e===null||typeof e!="object")return;let n=e;r||t(n);for(let i of Object.values(n))ii(i,t)}function Bf(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Dl=Symbol("ksql.groupingRowMeta"),vl=new WeakMap;function Ul(e,t){return Object.defineProperty(e,Dl,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function $f(e){return e[Dl]}function Gf(e){return $f(e)?.includedCanonicalIds}function kl(e,t){vl.set(e,t)}function fr(e,t){let r=Gf(t);if(!r)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let n=vl.get(e);if(!n)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return r.has(n)?"0":"1"}var xl=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 si(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function qo(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 Pe(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Pe(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="GROUPING_REF"){t.push(r);return}Object.values(r).forEach(n=>Pe(n,t))}}function li(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>li(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="AGGREGATE"||r.type==="AGG_REF"){Pe(r.arg,t);return}Object.values(r).forEach(n=>li(n,t))}}function Vr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Vr(i,t));return}let r=e,n=r.type;if(!(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="GROUPING_REF"||n==="AGG_REF"||n==="AGG_ARITH")){if(n==="FIELD"&&typeof r.field=="string"){t.push({type:"FIELD",tableAlias:typeof r.tableAlias=="string"?r.tableAlias:null,field:r.field});return}if(n==="FIELD_REF"&&typeof r.field=="string"){t.push(qo(r.field));return}Object.values(r).forEach(i=>Vr(i,t))}}function Wr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Wr);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(Wr)}function Vf(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"?Wr(e):!1}function Wf(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Ml(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 Hf(e,t,r){let n=t(e.field);if(!n.physical)throw new Error(`ArgumentError: B65 grouping reference ${si(e.field)} must resolve to a physical APP field.`);if(!r.has(n.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${si(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);kl(e,n.canonicalId)}function jo(e,t,r,n){let i=t(e);if(!i.physical||!r.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${si(e)} in ${n} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function Yf(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[qo(e.name)];let t=[];return Vr(e,t),t}function Fl(e){let t=Z(e),r=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Pe(i,r);Pe(e.having,r),Pe(e.orderBy,r);let n=[];Pe(e.where,n),Pe(e.joins,n),li(e.columns,n),li(e.having,n);for(let i of e.columns)i.type==="WINDOW_COL"&&Pe(i,n);if(n.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(r.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 Kl(e,t,r=()=>{}){Fl(e);let n=Z(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&Pe(u,i);if(Pe(e.having,i),Pe(e.orderBy,i),n.type!=="GROUPING_SETS")return null;let o=Zs(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 ${si(u.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}r({expandedSetCount:n.sets.length,canonicalItemCount:a.size});for(let u of i)Hf(u,t,a);let l=Wf(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(qo(u.field)):Vr(u,d);for(let c of d)jo(c,t,a,"SELECT")}if(e.having){let u=[];Vr(e.having,u);for(let d of u)d.tableAlias===null&&l.has(d.field)||Ml(d)||jo(d,t,a,"HAVING")}for(let u of e.orderBy)for(let d of Yf(u.key))d.tableAlias===null&&l.has(d.field)||Ml(d)||jo(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(!Vf(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 jf=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),qf=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":qf.has(e.fieldType)?t="option":jf.has(e.fieldType)?t="string":t="unsupported";let r=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,...r&&r.size>0?{optionOrder:r}:{}}}function F(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Er(e,t,r){return{...e,source:{appId:t,fieldCode:r}}}function ui(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 r=e.optionOrder,n=t.optionOrder;if(r===n)return!0;if(!r||!n||r.size!==n.size)return!1;for(let[i,o]of r)if(n.get(i)!==o)return!1;return!0}function mt(e,t){let r=e[Symbol.iterator](),n=t[Symbol.iterator]();for(;;){let i=r.next(),o=n.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 zf(e,t){return e<t?-1:e>t?1:0}function Bl(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let r=Number(e);return r===Number.NEGATIVE_INFINITY?{band:1}:r===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function Xf(e,t){let r=Bl(e),n=Bl(t);return r.band!==n.band?r.band<n.band?-1:1:r.band===2&&n.band===2?Yn(r.value,n.value):r.band===5&&n.band===5?mt(r.value,n.value):0}function $l(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let r=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(r===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:r.replace(/^0+(?=\d)/,""),display:e}}function Jf(e,t,r){let n=$l(e,r),i=$l(t,r);if(n.empty||i.empty)return n.empty===i.empty?0:n.empty?-1:1;if(n.normalizedId.length!==i.normalizedId.length)return n.normalizedId.length<i.normalizedId.length?-1:1;let o=mt(n.normalizedId,i.normalizedId);return o!==0?o:mt(n.display,i.display)}function Qf(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let r=JSON.parse(e);return Array.isArray(r)?r.map(n=>String(n??"")):[e]}catch{return[e]}}function Gl(e,t){let r=t.optionOrder??new Map,i=[...new Set(Qf(e,t.fieldType))].map(o=>{let a=r.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(Vl),i}function Vl(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:mt(e.label,t.label)}function Zf(e,t,r){let n=Gl(e,r),i=Gl(t,r),o=Math.min(n.length,i.length);for(let a=0;a<o;a++){let s=Vl(n[a],i[a]);if(s!==0)return s}return n.length<i.length?-1:n.length>i.length?1:0}function Lt(e,t,r){switch(r.compareMode){case"string":return mt(e,t);case"number":return Xf(e,t);case"recordNumber":return Jf(e,t,r.fieldType==="RECORD_NUMBER");case"option":return Zf(e,t,r);case"unsupported":throw new Error(`ArgumentError: values of type ${r.fieldType} cannot be compared.`)}}function _t(e,t,r,n=F("string")){let i=Lt(t,r,n);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 Wl(e,t){if(t==="least"&&e.includes(""))return"";let r=t==="greatest"?e.filter(o=>o!==""):[...e];if(r.length===0)return"";let n=r.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(n){let s=we(o),l=we(a),p=s!==null&&l!==null?Yn(s,l):zf(Number(o),Number(a));if(p!==0)return p}return mt(o,a)};return r.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ne(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Ze(t,e.field));if(e.type==="STRING_FUNC")return Number(ie(e,t));let r=ne(e.left,t),n=ne(e.right,t);switch(e.op){case"+":return r+n;case"-":return r-n;case"*":return r*n;case"/":return n!==0?r/n:NaN;case"%":return n!==0?r%n:NaN}}function se(e,t,r,n){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ze(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,r,n);case"CASE_WHEN":return Ne(e,t,r,n);case"CONCAT_OP":return ie({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,r,n);case"SCALAR_ARITH":{let i=Number(se(e.left,t,r,n)),o=Number(se(e.right,t,r,n));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 yt(e,t,r,n){switch(e.type){case"CASE_WHEN":return ql(e,t,r,n);case"SCALAR_ARITH":{let i=yt(e.left,t,r,n),o=yt(e.right,t,r,n);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=yt(e.left,t,r,n),o=yt(e.right,t,r,n);return`${i??""}${o??""}`}default:return se(e,t,r,n)}}function ci(e,t,r){let n=Math.pow(10,r),i=Math[e](t*n)/n;return r>0?String(parseFloat(i.toFixed(r))):String(i)}function eE(e){return e>=55296&&e<=56319}function tE(e){return e>=56320&&e<=57343}function di(e,t){return t>0&&t<e.length&&eE(e.charCodeAt(t-1))&&tE(e.charCodeAt(t))}function Hl(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let r=Math.trunc(e);return r<0?Math.max(t+r,0):Math.min(r,t)}function Xo(e,t){let r=Math.min(Math.max(0,t),e.length);return di(e,r)&&(r-=1),e.slice(0,r)}function rE(e,t){let r=Math.max(0,e.length-t);return di(e,r)&&(r+=1),e.slice(r)}function nE(e,t,r){let n=Hl(t,e.length),i=Hl(r,e.length);return i<=n?"":(di(e,n)&&(n+=1),di(e,i)&&(i-=1),e.slice(n,Math.max(n,i)))}function iE(e,t){let r=e.repeat(Math.ceil(t/e.length));return Xo(r,t)}var oE=200,Hr=new Map;function aE(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 zo(e,t,r=!1){let n=aE(t)+(r?"g":""),i=`${e}\0${n}`,o=Hr.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,n)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(Hr.size>=oE){let s=Hr.keys().next().value;s!==void 0&&Hr.delete(s)}return Hr.set(i,a),a}function sE(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function lE(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 uE(e,t,r,n){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==="<"&&n!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=n[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<=r.length){i+=r[u-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=r.length){i+=r[p-1]??"",o+=1;continue}}i+="$"}return i}function cE(e,t,r,n){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==n)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 uE(r,o,u,l?s:void 0)})}function ie(e,t,r,n){let i=e.args.map(o=>hE(o,t,r,n));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 fe("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 nE(o,a,s!==void 0?a+s:o.length)}case"LEFT":{fe("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Xo(o,a)}case"RIGHT":{fe("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":rE(o,a)}case"INSTR":return fe("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{fe(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 Xo(o,a);let s=i[2]??" ";if(s==="")return o;let l=iE(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return fe(e.func,i,2),Wl(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 fe("REGEXP_LIKE",i,2,3),zo(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{fe("REGEXP_REPLACE",i,3,5),sE(i[2]);let o=lE(i[4]),a=zo(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):cE(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return fe("REGEXP_SUBSTR",i,2,3),zo(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{fe("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 ci("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return ci("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return ci("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return fe("TRUNCATE",i,1,2),ci("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 fe(e.func,i,1,1),pi(i[0])?String(Jo(i[0])+1):"";case"QUARTER":return fe(e.func,i,1,1),pi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return fe(e.func,i,1,1),pi(i[0])?String(jl(i[0])):"";case"DATE_FORMAT":return dE(i[0]??"",i[1]??"");case"DATEDIFF":return fE(i[0]??"",i[1]??"");case"DATE_ADD":return EE(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return fe("LAST_DAY",i,1,1),RE(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 fe(e,t,r,n=Number.POSITIVE_INFINITY){if(t.length>=r&&t.length<=n)return;let i=r===n?String(r):n===Number.POSITIVE_INFINITY?`${r} or more`:`${r} to ${n}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function Yr(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 fi(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 pi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let r=fi(t);return r.getUTCFullYear()===Number(t.slice(0,4))&&r.getUTCMonth()+1===Number(t.slice(5,7))&&r.getUTCDate()===Number(t.slice(8,10))}function Jo(e){return fi(e).getUTCDay()}function Yl(e){let t=fi(e),r=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-r),t}function pE(e){return Yl(e).getUTCFullYear()}function jl(e){let t=Yl(e),r=t.getUTCFullYear(),n=fi(`${String(r).padStart(4,"0")}-01-04`),i=n.getUTCDay()||7;return n.setUTCDate(n.getUTCDate()+4-i),1+Math.round((t.getTime()-n.getTime())/(7*864e5))}function dE(e,t){if(!e||e.length<10)return"";let{y:r,mo:n,d:i,h:o,mi:a,sec:s}=Yr(e),l=pi(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){case"%Y":return r;case"%y":return r.slice(2);case"%m":return n;case"%c":return String(parseInt(n,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(Jo(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Jo(e)]:"";case"%v":return l?String(jl(e)).padStart(2,"0"):"";case"%G":return l?String(pE(e)).padStart(4,"0"):"";default:return p}})}function fE(e,t){if(e.length<10||t.length<10)return"0";let r=Yr(e),n=Yr(t),i=Date.UTC(+r.y,+r.mo-1,+r.d),o=Date.UTC(+n.y,+n.mo-1,+n.d);return String(Math.round((i-o)/864e5))}function EE(e,t,r){if(r!=="YEAR"&&r!=="MONTH"&&r!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:n,mo:i,d:o}=Yr(e),a=new Date(Date.UTC(+n,+i-1,+o));switch(r){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 RE(e){if(!e||e.length<10)return e;let{y:t,mo:r}=Yr(e),n=new Date(Date.UTC(+t,+r,0)),i=String(n.getUTCFullYear()).padStart(4,"0"),o=String(n.getUTCMonth()+1).padStart(2,"0"),a=String(n.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function mE(e,t){if(/^-?\d+$/.test(t.trim()))return yE(e,Math.max(0,Number(t)));let r=t.endsWith("%"),n=t.includes(","),i=r?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=n?d.replace(/\B(?=(\d{3})+(?!\d))/g,","):d,E=c?`${f}.${c}`:f;return r?E+"%":E}function yE(e,t){let r=e.toFixed(t),[n,i]=r.split("."),o=n.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function hE(e,t,r,n){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?G(e):String(se(e,t,r,n))}function Ze(e,t){let r=e[t];if(r!==void 0)return r;let n=t.indexOf(".");if(n>0){let i=e[t.slice(n+1)];if(i!==void 0)return i}return""}function X(e,t,r,n,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return gE(e,t,r,n,i);case"NULL_CHECK":return bE(e,t);case"LOGICAL":return PE(e,t,r,n,i);case"NOT":return!X(e.expr,t,r,n,i);case"GROUP":return X(e.expr,t,r,n,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function gE(e,t,r,n,i){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(n?.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=ru(e.left,t,r,i),a=e.left.type==="FIELD"?r?.(e.left):void 0,s=SE(e.left,a,i);return AE(e.op,o,e.right,t,a,r,s,i)}function AE(e,t,r,n,i,o,a=F("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(r.type==="IN_LIST"&&(wE(r.values),p=new Set(r.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?G(d):String(d.value):d.value))),r.type==="SUBQUERY_IN_LIST"&&(p=r.resolved),p===null)return e==="NOT_IN";let u=IE(t,p,i);return e==="IN"?u:!u}if(e==="LIKE"){let p=Qo(r,n,o);return tu(t,p)}if(e==="NOT_LIKE"){let p=Qo(r,n,o);return!tu(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=Qo(r,n,o,s);return _t(e,t,l,a)}var zl=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function SE(e,t,r){if(e.type==="FIELD")return r?.(e)??(t?q({fieldType:t}):F("string"));if(e.type==="ARITH_FIELD")return F("number");if(e.type==="FUNC_FIELD")return F(zl.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 F("number");if(o.type==="STRING_FUNC")return F(zl.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 r?.(s)??F("string")}return F("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?F("number"):F("string")}var Xl=new Set(["CHECK_BOX","MULTI_SELECT"]),Jl=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),TE=new Set(["CREATOR","MODIFIER"]);function IE(e,t,r){let n=()=>t.has(e);if(r===void 0)return n();if(r==="NUMBER"){let o=F("number");return[...t].some(a=>_t("=",e,a,o))}let i;if(Xl.has(r)||Jl.has(r)||TE.has(r))try{i=JSON.parse(e)}catch{return n()}else return n();return Xl.has(r)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Jl.has(r)?!Array.isArray(i)||!i.every(Ql)?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Ql(i)?t.has(i.code):n()}function Ql(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function wE(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let r=e.find(n=>n.type==="KINTONE_FUNC");if(r?.type==="KINTONE_FUNC")throw new Error(`${r.name}: ${Xe}`)}function bE(e,t){let r=ru(e.field,t);return e.not?r!=="":r===""}function PE(e,t,r,n,i){return e.op==="AND"?X(e.left,t,r,n,i)&&X(e.right,t,r,n,i):X(e.left,t,r,n,i)||X(e.right,t,r,n,i)}function ru(e,t,r,n){if(e.type==="FUNC_FIELD")return ie(e.expr,t);if(e.type==="ARITH_FIELD")return String(ne(e.expr,t));if(e.type==="CASE_FIELD")return Ne(e.expr,t,r,n);if(e.type==="GROUPING_FIELD")return fr(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ze(t,i)}function Qo(e,t,r,n){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 NE(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"?Ze(t,e.expr.field):e.expr.type==="STRING_FUNC"?ie(e.expr,t):String(ne(e.expr,t));case"CASE_VALUE":return Ne(e.expr,t,r,n);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ne(e,t,r,n){for(let i of e.branches)if(X(i.condition,t,r,void 0,n))return eu(i.result,t,r,n);return e.elseResult!==null?eu(e.elseResult,t,r,n):""}function ql(e,t,r,n){for(let i of e.branches)if(X(i.condition,t,r,void 0,n))return Zl(i.result,t,r,n);return e.elseResult===null?null:Zl(e.elseResult,t,r,n)}function Zl(e,t,r,n){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ne(e,t):yt(e,t,r,n)}function eu(e,t,r,n){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ne(e,t)):String(se(e,t,r,n))}function NE(e){throw z(e)?new Error(`${e}: ${Nt}`):Zt(e)?new Error(`${e}: ${Xe}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Ei=new Map,CE=200;function tu(e,t){if(!yl(t))return e.includes(t);let r=Ei.get(t);if(!r){let n="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?n+=".*":o==="_"?n+=".":n+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}n+="$",r=new RegExp(n,"u"),Ei.size>=CE&&Ei.clear(),Ei.set(t,r)}return r.test(e)}function Rr(e){return iu(e)}function nu(e){return iu(e.flatMap(t=>t.rules.map(r=>r.condition)))}function iu(e){let t=[],r=new Set,n=o=>{if(Array.isArray(o)){o.forEach(n);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 le("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))n(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 le("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;r.has(s)||(r.add(s),t.push({tableAlias:o,field:a}))};return n(e),t}function le(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Ri(e,t,r){let n=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!X(a.condition,t,r))continue;let s=se(a.message,t);n.push({groupIndex:o,message:s==null?"":String(s)});break}}),n}function ea(e){if(ct(e))throw new j("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 OE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),LE=new Set(["CHECK_BOX","MULTI_SELECT"]);function yi(e,t=new Map){let r=e.values.map(n=>_E(e.fields,n,t));return Xr(r,100).map(n=>({app:e.appId,records:n}))}function _E(e,t,r){let n={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?n[i]={value:ht(a.expr,{},r.get(i))}:n[i]={value:et(a,r.get(i))}}),n}function qr(e){ea(e.where);let t=yu(e);return{app:e.appId,query:$(e.where),fields:["$id",...t],totalCount:!1}}function zr(e,t,r=new Map){let n=DE(e.assignments,r);return Xr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:n}))}))}function DE(e,t){let r={};for(let{field:n,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"||(r[n]={value:et(i,t.get(n))});return r}function lu(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 hi(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 ta(e){ea(e.where);let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"?uu(r,t):r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP"?mr(r,t):r.type==="STRING_FUNC"?ra(r,t):r.type==="CASE_VALUE"&&cu(r.expr,t);return yu(e).forEach(r=>t.add(r)),{app:e.appId,query:$(e.where),fields:["$id",...t],totalCount:!1}}function uu(e,t){jr(e.left,t),jr(e.right,t)}function jr(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?uu(e,t):e.type==="STRING_FUNC"&&ra(e,t)}function ra(e,t){for(let r of e.args)vE(r,t)}function vE(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Zo(e,t);return}mr(e,t)}function mr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){ra(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){mr(e.left,t),mr(e.right,t);return}e.type==="CASE_WHEN"&&cu(e,t)}function Zo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&UE(e.arg,t);return}e.type==="AGG_ARITH"&&(Zo(e.left,t),Zo(e.right,t))}function UE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?jr(e,t):mr(e,t)}function ou(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){jr(e,t);return}mr(e,t)}}function cu(e,t){for(let r of e.branches)mi(r.condition,t),ou(r.result,t);e.elseResult!==null&&ou(e.elseResult,t)}function mi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&jr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":mi(e.left,t),mi(e.right,t);break;case"NOT":case"GROUP":mi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function na(e,t,r=new Map){let n=t.map(i=>{let o=Number(i.$id.value),a=pu(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:ia(p,a,r.get(l),i)};return{id:o,record:s}});return Xr(n,100).map(i=>({app:e.appId,records:i}))}function ia(e,t,r,n){if(e.type==="ARITH")return String(n?aa(e,n):ne(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(se(e,t));if(e.type==="STRING_FUNC")return ie(e,t);if(e.type==="CASE_VALUE")return ht(e.expr,t,r);if(e.type==="SOURCE_FIELD")throw new j("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return et(e,r)}function gi(e,t,r){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return G(e);if(e.type==="ARITH")return String(ne(e,t));if(e.type==="CASE_VALUE")return Ne(e.expr,t,r);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 kE=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function oa(e,t,r=new Map){let n=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new j("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=pu(i),l={};for(let{field:p,value:u}of e.assignments){let d=r.get(p);if(u.type==="SOURCE_FIELD"){if(kE.has(d??""))throw new j(`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 j(`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 j(`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 j(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${c}`);l[p]={value:et({type:"STRING",value:c},d)}}else{if(u.type==="STRING_FUNC")throw new j("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(aa(u,i))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?l[p]={value:String(se(u,s))}:u.type==="CASE_VALUE"?l[p]={value:ht(u.expr,s,d)}:l[p]={value:et(u,d)}}}return{id:a,record:l}});return Xr(n,100).map(i=>({app:e.appId,records:i}))}function pu(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r.value=="string"?r.value:JSON.stringify(r.value??"")]))}function aa(e,t){let r=au(e.left,t),n=au(e.right,t);switch(e.op){case"+":return r+n;case"-":return r-n;case"*":return r*n;case"/":if(n===0)throw new j("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return r/n;case"%":if(n===0)throw new j("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return r%n}}function au(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return aa(e,t);if(e.type==="STRING_FUNC")throw new j("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 r=t[e.field]?.value??"",n=Number(r);if(Number.isNaN(n))throw new j(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${r}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return n}function du(e){return ea(e.where),{app:e.appId,query:$(e.where),fields:["$id"],totalCount:!1}}function fu(e,t){return Xr(t,100).map(r=>({app:e,ids:r}))}function Eu(e){return OE.has(e??"")}function ME(e){return LE.has(e??"")}function xE(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 r=new Date(t);return isNaN(r.getTime())?e:r.toISOString().replace(/\.\d{3}Z$/,"Z")}function FE(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Ru(e,t){return Eu(t)?e===""?[]:e.split(",").map(r=>({code:r.trim()})):ME(t)?e===""?[]:e.split(",").map(r=>r.trim()):t==="DATETIME"?xE(e):t==="DATE"?FE(e):e}function mu(e,t){return Eu(t)?e.map(r=>({code:r})):e}function su(e,t,r){return e.type==="ARRAY"?mu(e.elements.map(n=>n.value),r):e.type==="STRING"?Ru(e.value,r):e.type==="STRING_FUNC"?ie(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ne(e,t)):String(se(e,t))}function yu(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Rr(e.checkGroups).filter(r=>r.tableAlias===null||r.tableAlias.toLowerCase()===t).map(r=>r.field).filter(r=>r!=="$id"))]}function ht(e,t,r){for(let n of e.branches)if(X(n.condition,t))return su(n.result,t,r);return e.elseResult!==null?su(e.elseResult,t,r):""}function et(e,t){let r=sa(e,t);if(!r.ok)throw new j(r.message);return r.value}function sa(e,t){try{return{ok:!0,value:KE(e,t)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:String(r)}}}function KE(e,t){switch(e.type){case"VARIABLE":throw new j(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new j(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Ru(e.value,t);case"NUMBER":return G(e);case"ARRAY":return mu(e.elements.map(r=>r.value),t);case"KINTONE_FUNC":throw new j(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new j("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new j("\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 j("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 j("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new j("\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 Xr(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var j=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var la=new Set(["CHECK_BOX","MULTI_SELECT"]),BE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Jr(e){throw new Error(`ArgumentError: ${e}`)}function hu(e,t,r){let n=$E(r.fieldType,e.field),i=GE(t,n,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)&&Jr(`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=la.has(n)?d:d.map(y=>({code:y}));return{field:e.field,fieldType:n,operations:R,postImageValue:m,addedValues:u.length,removedValues:c,changedValues:u.length+c}}function $E(e,t){return la.has(e)||BE.has(e)?e:Jr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function GE(e,t,r){if(!Array.isArray(e))return Jr(`APPLY snapshot for ${r} must be an array.`);let n=e.map((i,o)=>la.has(t)?typeof i!="string"?Jr(`APPLY snapshot for ${r} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Jr(`APPLY snapshot for ${r} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(n.filter(i=>i!==""))]}function V(e){throw new Error(`ArgumentError: ${e}`)}function pa(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 tt(e,t){let r=e.applyBlocks;if(!r?.length)return V("APPLY block is missing.");let n=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)ua(s.field,null,n),VE(s.value,n);for(let s of r){(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(dl(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)ua(c.field,s.field,n,u),ca(c.value,s.field,n,u);d.selector.kind==="WHERE"&&ca(d.selector.where,s.field,n,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),ua(f,s.field,n,u)}else d.kind==="REMOVE"&&d.selector.kind==="WHERE"&&ca(d.selector.where,s.field,n,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:n}}function VE(e,t){Qr(e,r=>{if(r==="$id"||r==="$revision")return;let n=t.get(r);(!n||n.inSubtable)&&V(`APPLY parent reference ${r} is not a top-level field.`),n.fieldType==="FILE"&&V(`APPLY parent FILE reference ${r} is not supported.`)})}function ua(e,t,r,n){(e.startsWith("_")||e.startsWith("$"))&&V(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...r.values()].find(o=>o.code===e&&!o.inSubtable):n?.get(e);if(!i){let o=r.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 ca(e,t,r,n){Qr(e,i=>{if(i==="_rid"||i==="_idx"||n.has(i))return;r.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 Ai(e,t){let r=tt(e,t),n=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||n.add(i.code);for(let i of r.targetTables.values())n.add(i.code);for(let i of e.assignments)Qr(i.value,o=>{let a=r.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&n.add(o)});return[...n]}function Si(e,t){let r={_rid:e.id??"",_idx:String(t)};for(let[n,i]of Object.entries(e.value??{}))r[n]=wu(i?.value);return r}function Au(e){let{statement:t,snapshot:r,fieldInfos:n}=e,i=e.metadata??tt(t,n),o=Ea(r.$id?.value,"APPLY snapshot $id"),a=pa(t);return o!==a&&V(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Tu(t,r,i,o)}function Su(e,t,r,n=tt(e,r)){let i=new Set;return t.map(o=>{let a=Ea(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&V(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Tu(e,o,n,a)})}function Tu(e,t,r,n){let i=Ea(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let I=r.targetMultiValueFields.get(u.field);I||V(`APPLY multi-value metadata for ${u.field} is missing.`),a.push(hu(u,t[u.field]?.value,I));continue}let d=r.childrenByTable.get(u.field),c=zE(t,u.field),f=new Set;for(let I of c)I.id||V(`APPLY snapshot for ${u.field} contains a row without _rid.`),f.has(I.id)&&V(`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":d.get(I.field)?.fieldType,R=[],m=[],y=[],h=new Set,g=new Set,S=new Set,O=u.operations.some(I=>I.kind==="REMOVE");for(let[I,v]of u.operations.entries()){if(v.kind==="APPEND"){let A=da(v,d,u.field);y.push({kind:"APPEND",addedRows:A.length}),m.push(...A);continue}if(v.kind==="REMOVE"){let A=YE(v,c,E,u.field);v.expectRows&&gu(v.expectRows,A.length,n,u.field,I,v.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(v.kind!=="PATCH")continue;let k=HE(v,c,E,u.field);v.expectRows&&gu(v.expectRows,k.length,n,u.field,I,v.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let A of k){let b=c[A];S.has(A)&&V(`APPLY row ${b.id} is selected by both PATCH and REMOVE.`),g.add(A);let C=Si(b,A);for(let w of v.assignments){let U=`${b.id}\0${w.field}`;h.has(U)&&V(`APPLY patches cell ${b.id}.${w.field} more than once.`),h.add(U),R.push({rowIndex:A,field:w.field,value:gi(w.value,C,E)})}}}let P=new Map;for(let I of R){let v=P.get(I.rowIndex)??{};v[I.field]={value:I.value},P.set(I.rowIndex,v)}let N=[...c.flatMap((I,v)=>S.has(v)?[]:[{id:I.id,value:{...I.value,...P.get(v)??{}}}]),...m],L={table:u.field,operations:y,changedSubtableRows:P.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:c.map(I=>I.id),postImageRows:N};O?o.push({...L,payloadShape:"FULL_SURVIVORS",removedRowIds:c.flatMap((I,v)=>S.has(v)?[I.id]:[]),payloadRows:N.map(I=>({...I.id===void 0?{}:{id:I.id},value:I.value}))}):o.push({...L,payloadShape:"PATCH_ONLY",payloadRows:[...c.map((I,v)=>{let k=P.get(v);return k?{id:I.id,value:k}:{id:I.id}}),...m.map(I=>({value:I.value}))]})}let s=XE(t),l={};for(let u of e.assignments){let d=r.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:ia(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:n,revision:i,parentRows:1,changedSubtableRows:o.reduce((u,d)=>u+d.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function gu(e,t,r,n,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 ${r}, table ${n}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Ti(e,t){let r=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}}),n=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:n,tables:r,multiValues:i,postImage:t}}function da(e,t,r){return e.values.map(n=>({value:WE(e,n,t,r)}))}function WE(e,t,r,n){if(t.length!==e.fields.length)return V(`APPLY APPEND for ${n} 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 r.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?fa(a):s.type==="CASE_VALUE"?ht(s.expr,{},a.fieldType):et(s,a.fieldType)}}return o}function fa(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 HE(e,t,r,n){return Iu(e.selector,t,r,n)}function YE(e,t,r,n){return Iu(e.selector,t,r,n)}function Iu(e,t,r,n){if(e.kind==="ALL_ROWS")return t.map((l,p)=>p);let i=e.where,o=t.flatMap((l,p)=>X(i,Si(l,p),r)?[p]:[]),a=jE(i);a!==null&&o.length===0&&V(`APPLY _rid ${a} does not exist in snapshot table ${n}.`);let s=qE(i);return s!==null&&o.length===0&&V(`APPLY _idx ${s} does not exist in snapshot table ${n}.`),o}function jE(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 qE(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 zE(e,t){let r=e[t]?.value;return Array.isArray(r)?r.map(n=>{let i=n;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 Ea(e,t){let r=Number(e);return(!Number.isSafeInteger(r)||r<=0)&&V(`${t} must be a positive integer.`),r}function XE(e){let t={};for(let[r,n]of Object.entries(e))t[r]=wu(n?.value);return t}function wu(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 Qr(e,t){if(Array.isArray(e)){e.forEach(n=>Qr(n,t));return}if(e===null||typeof e!="object")return;let r=e;(r.type==="FIELD"||r.type==="FIELD_REF")&&typeof r.field=="string"&&t(r.field);for(let n of Object.values(r))Qr(n,t)}function J(e){throw new Error(`ArgumentError: ${e}`)}function wi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?J("APPLY snapshot $revision must be a positive integer."):t}function Zr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return J("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return J("APPLY plan revision must be a positive integer.");let t={...e.parentValues},r=new Set(Object.keys(t));for(let i of e.multiValues)r.has(i.field)&&J(`APPLY plan contains duplicate top-level field ${i.field}.`),r.add(i.field),t[i.field]={value:i.postImageValue};let n=new Set;for(let i of e.tables)r.has(i.table)&&J(`APPLY plan contains duplicate top-level field ${i.table}.`),n.has(i.table)&&J(`APPLY plan contains duplicate table ${i.table}.`),n.add(i.table),r.add(i.table),JE(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function bu(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 J("prepared APPLY plans and records must have the same positive-app parent count.");let r=[];for(let n=0;n<e.records.length;n+=100)r.push({app:t,records:e.records.slice(n,n+100)});return r}function JE(e){let t=Ra(e.snapshotRowIds,`${e.table} snapshot`),r=e.payloadRows.flatMap(u=>u.id===void 0?[]:[u.id]);for(let u of e.payloadRows)u.id===void 0&&u.value===void 0&&J(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Ra(r,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(c=>c.kind==="REMOVE")&&J(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let u=e.payloadRows.slice(0,t.length).map(c=>c.id??"");Ii(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)&&J(`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??"");Ii(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)&&J(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(u=>u.kind==="REMOVE")||J(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let n=Ra(e.removedRowIds,`${e.table} removed`);e.deletedRows!==n.length&&J(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&J(`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(n),a=new Set(i);for(let u of n)a.has(u)&&J(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${u}.`);let s=t.filter(u=>!o.has(u));Ii(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??"");Ii(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))&&J(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(u=>u.value===void 0)&&J(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((u,d)=>!ma(u.value,e.postImageRows[d]?.value))&&J(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...n]);(p.size!==t.length||t.some(u=>!p.has(u)))&&J(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Ra(e,t){let r=[...e],n=new Set;for(let i of r)i||J(`APPLY ${t} contains an empty row id.`),n.has(i)&&J(`APPLY ${t} contains duplicate row id ${i}.`),n.add(i);return r}function Ii(e,t,r){(e.length!==t.length||e.some((n,i)=>n!==t[i]))&&J(r)}function ma(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)=>ma(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let r=e,n=t,i=Object.keys(r),o=Object.keys(n);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(n,a)&&ma(r[a],n[a]))}function Pu(e,t,r,n){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<r||i>n)throw new Error(`SettingsError: numberPrecision.${t} must be between ${r} and ${n}.`);return i}function Nu(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let r=Pu(t.digits,"digits",1,30),n=Pu(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:r,decimalPlaces:n,roundingMode:i}}function Cu(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 QE=new Set(["CHECK_BOX","MULTI_SELECT"]),ZE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Se(e,t,r){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=eR(e);if(i!==""&&!tR(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 n;try{n=en(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:rR(t.fieldType),message:o}}if(t.required&&bi(n))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!bi(n)&&t.fieldType==="NUMBER"){let i=String(n),o=we(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&&jn(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&&jn(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(r!==void 0){let{integerDigits:a}=Cu(o),s=r.digits-r.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=${r.digits}, decimalPlaces=${r.decimalPlaces})`}}}if(!bi(n)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Dt(String(n),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 n=="string"){let i=n.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!bi(n)&&ZE.has(t.fieldType)&&t.optionOrder&&(Array.isArray(n)?n.map(String):[String(n)]).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:n}}function eR(e){return e==null?"":Pi(e)&&e.type==="NUMBER"?G(e):Pi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function tR(e,t){if(t==="DATE")return Dt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Dt(e,"TIME");let r=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(r)&&(r+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(r)?Dt(r.slice(0,10),"DATE")&&Dt(r.slice(11),"TIME"):Dt(r,"DATETIME")}function en(e,t){if(Pi(e)){let n=sa(e,t);if(!n.ok)throw new Error(n.message);return n.value}if(Array.isArray(e))return e.map(n=>typeof n=="object"&&n!==null&&"code"in n?String(n.code):String(n));let r=e==null?"":String(e);if(QE.has(t)){if(r==="")return[];try{let n=JSON.parse(r);if(Array.isArray(n))return n.map(String)}catch{}return r.split(",").map(n=>n.trim())}return r}function Pi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function vt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Pi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function bi(e){return e===""||Array.isArray(e)&&e.length===0}function rR(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Dt(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 r=t==="DATE"?e:e.slice(0,10),n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r);if(!n)return!1;let i=Number(n[1]),o=Number(n[2]),a=Number(n[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)&&Dt(l,"TIME")}var yr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ya(e,t,r){let n=new Map(r.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=n.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=en(a,s)}catch{}i.record[o]={value:l?a:p}}}}function ha(e,t,r,n,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&&ya(e,n,i);let R;for(let m of e){m.record??(m.record={});let y=p?[...m.preErrors]:[],h=[],g=[],S=m.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let N of n){if(!m.payload.has(N))continue;let L=m.payload.get(N),I=d.get(N).fieldType,v=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(I)&&Array.isArray(L)&&L.every(A=>typeof A=="object"&&A!==null&&"code"in A);if(!S)continue;let k=Se(L,d.get(N),a);k.ok?m.record[N]={value:v?L:k.value}:h.push({field:N,code:k.code,message:k.message})}if(l&&m.mode==="create")for(let N of i){if(N.inSubtable||m.payload.has(N.code))continue;if(vt(N.defaultValue)){let I=Se("",N,a);I.ok?N.required&&h.push({field:N.code,code:"ERR_REQUIRED",message:`${N.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:N.code,code:I.code,message:I.message})}else{let I=Se(N.defaultValue,N,a);I.ok||h.push({field:N.code,code:I.code,message:`\u65E2\u5B9A\u5024: ${I.message}`})}}if(s.length>0){let N=m.evaluationRow??Object.fromEntries([...m.payload].map(([v,k])=>[v,$e(k)])),L=m.evaluationFieldTypes,I=v=>{let k=v.tableAlias?`${v.tableAlias}.${v.field}`:v.field;return L?.get(k)??L?.get(v.field)};try{for(let v of Ri(s,N,I))g.push({field:"",code:"ERR_CHECK",message:v.message})}catch(v){R??(R=v)}}let O=N=>N.map(L=>{let I={};for(let v of r)I[v]=$e(m.payload.get(v));return I.$err_statement=String(o),I.$err_operation=t,I.$err_row=String(m.rowNumber),I.$err_field=L.field,I.$err_code=L.code,I.$err_message=L.message,I.$err_value="",I.$err_subtable="",I.$err_subrow="",I.$err_subrow_id="",I}),P={rowNumber:m.rowNumber,preErrors:O(y),builtInErrors:O(h),checkErrors:O(g)};E.push(P);let _=[...P.preErrors,...P.builtInErrors,...P.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 $e(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(r=>r.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}function ga(e){let t=e.filter(n=>!n.inSubtable),r=new Map;for(let n of e){if(!n.inSubtable||!n.subtableCode)continue;let i=r.get(n.subtableCode)??[];i.push(n),r.set(n.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(n=>[n.code,n])),childrenByTable:r}}function nR(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 iR(e){return e.fieldType==="NUMBER"||nR(e)}function Ni(e,t,r){return{subtable:e,subrow:t+1,subrowId:String(r.id??"")}}function Aa(e,t){let{topByCode:r,childrenByTable:n}=ga(t),i=iR;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=n.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=[...n.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=r.get(p);if(u?.fieldType==="SUBTABLE"){let d=(n.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[...n.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 tn(e,t){return vt(e)?"":$e(en(e,t))}var oR=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),rn=yr;function Ge(e,t=["$id"]){let r=ga(e),n=r.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!oR.has(o.fieldType)),i=new Map;for(let[o,a]of r.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:n,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Ut(e,t){if(t.topLevel.some(r=>r.fieldType==="NUMBER"&&r.code in e))return!0;for(let[r,n]of t.subtables){if(!n.some(o=>o.fieldType==="NUMBER"))continue;let i=e[r]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(n.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function kt(e,t,r,n,i=1,o="UPDATE"){let a=aR(e),s=[],l=new Set,p=[...t.payloadFields,...rn],u=$e(e.$id?.value),d=(c,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?u:$e(e[y]?.value);m.$err_statement=String(n),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=tn(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=Se(f,c,r);E.ok?a[c.code]={value:Ou(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,O=Se(S,g,r);O.ok?(h.value??(h.value={}),h.value[g.code]={value:Ou(S,g.fieldType,O.value)}):d(g,S,O,Ni(c,m,y))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Ou(e,t,r){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)?e:r}function aR(e){let t={};for(let[r,n]of Object.entries(e)){let i=n?.value;t[r]={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 Ci(e){let{statement:t,snapshots:r,fieldInfos:n,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Lu(o,"dmlMaxRows"),Lu(a,"dmlMaxSubtableRows");for(let g of r)wi(g);let l=Su(t,r,n,i),p=Ge(n,t.assignments.map(g=>g.field)),u=l.some(g=>Ut(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)=>kt(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)=>Ti(g,c[S].normalizedRecord)),y=m.flatMap(g=>Zr(g).records),h=c.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return _u({plans:m,records:y,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Lu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function _u(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let r of Object.values(e))_u(r,t);return Object.freeze(e)}var Sa=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Oi(e,t){if(new Set(e.fields).size!==e.fields.length)return Ve("DML target fields contain duplicates.");let r=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Du(o,null,r);let n=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(n.has(o.field))return Ve(`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 Ve(`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]));n.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Ve(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let u of l.fields){if(p.has(u))return Ve(`APPLY APPEND specifies child ${u} more than once.`);p.add(u),Du(u,o.field,r,s)}for(let u of l.values)if(u.length!==l.fields.length)return Ve(`APPLY APPEND for ${o.field} has ${u.length} values for ${l.fields.length} fields.`)}}return{targetTables:n,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:r}}function sR(e,t,r=Oi(e,t),n){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=yi(e,i).flatMap(s=>s.records);if(n&&n.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=r.childrenByTable.get(s.field),p=s.operations.flatMap(u=>da(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||Sa.has(d.fieldType)||(p[d.code]=s[d.code]??{value:fa(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:n?.[l]??l+1,tables:a,postImage:p,record:u}})}async function nn(e){let{statement:t,fieldInfos:r,dmlMaxRows:n,dmlMaxSubtableRows:i,statementNumber:o=1}=e;vu(n,"dmlMaxRows"),vu(i,"dmlMaxSubtableRows");let a=e.metadata??Oi(t,r),s=sR(t,r,a,e.parentRowNumbers),l=r.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!Sa.has(S.fieldType)),p=Ge(l,t.fields),u=s.some(S=>Ut(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=>kt(S.postImage,p,d,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=c.flatMap(O=>O.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,O)=>S+O.tables.reduce((P,_)=>P+_.addedRows,0),0),R=f>n||E>i;if(!t.validateOnly&&f>n)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${n}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,O)=>{let P=c[O].normalizedRecord,_={};for(let N of t.fields)_[N]=P[N];for(let N of S.tables){let L=P[N.table]?.value;_[N.table]={value:N.rows.map((I,v)=>({value:Object.fromEntries(Object.keys(I.value).map(k=>[k,L[v]?.value?.[k]??I.value[k]]))}))}}return{...S,postImage:P,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 Uu({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:n,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Du(e,t,r,n){if(e.startsWith("_")||e.startsWith("$"))return Ve(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...r.values()].find(o=>o.code===e&&!o.inSubtable):n?.get(e);if(!i){let o=r.get(e);return t!==null&&o?.inSubtable?Ve(`APPLY child ${e} does not belong to subtable ${t}.`):Ve(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Sa.has(i.fieldType))return Ve(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function vu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ve(e){throw new Error(`ArgumentError: ${e}`)}function Uu(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let r of Object.values(e))Uu(r,t);return Object.freeze(e)}async function Mu(e){let{statement:t,matches:r,fieldInfos:n,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;ku(i,"dmlMaxRows"),ku(o,"dmlMaxSubtableRows"),dR(t,r);let s=r.filter(y=>y.targetId===void 0),l=r.filter(y=>y.targetId!==void 0),p=lR(t,s.map(y=>y.sourceRowIndex)),u=await nn({statement:p,fieldInfos:n,metadata:Oi(p,n),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)&&Ta(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),c.add(h),y.snapshot||Ta(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(y.snapshot.$id?.value);g!==h&&Ta(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=uR(t,y.sourceRowIndex,h),O=S.applyBlocks?.length?tt(S,n):cR(n);d.push(await Ci({statement:S,snapshots:[y.snapshot],fieldInfos:n,metadata:O,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=pR(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 Ia({create:u,update:f,createBatches:u.batches,updateBatches:fR(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 lR(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(r=>e.values[r]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function uR(e,t,r){let n=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:n,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:r,raw:String(r)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function cR(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function pR(e,t,r){let n=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=n.reduce((s,l)=>s+l.changedSubtableRows,0);return Ia({plans:n,records:i,validations:o,guards:{revisionRequired:!0,parentRows:n.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:r,wouldExceed:n.length>t||a>r}})}function dR(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let r=new Set;for(let n of t){if(!Number.isSafeInteger(n.sourceRowIndex)||n.sourceRowIndex<0||n.sourceRowIndex>=e.values.length||r.has(n.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");r.add(n.sourceRowIndex)}}function fR(e,t){let r=[];for(let n=0;n<e.length;n+=100)r.push({app:t,records:e.slice(n,n+100)});return r}function ku(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ta(e){throw new Error(`ArgumentError: ${e}`)}function Ia(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let r of Object.values(e))Ia(r,t);return Object.freeze(e)}function an(e){return hr("UPDATE",[Ku(e)])}function wa(e){return hr("INSERT",[Fu(e)])}function ba(e){return hr("UPSERT",[Fu(e.create),Ku(e.update)])}function Ce(e,t){let r=t.failedBranch?.toLowerCase(),n=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=r===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:n,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...r?{failedBranch:r}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function _i(e,t,r){return e.type==="UPDATE"?hr("UPDATE",[Li("update",e.applyBlocks??[],null,!0,t,r)]):e.type==="INSERT"?hr("INSERT",[Li("insert",e.applyBlocks??[],e.values.length,!1,t,r)]):hr("UPSERT",[Li("insert",e.onInsertApplyBlocks??[],null,!1,t,r),Li("update",e.onUpdateApplyBlocks??[],null,!0,t,r)])}function hr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Fu(e){let t=new Map;if(e.applyBlocks)for(let r of e.applyBlocks){let n=r.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(r.field,{targetKind:r.targetKind,field:r.field,operations:n,changedCount:n.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let r of e.candidates)for(let n of r.tables){let i=t.get(n.table),o=i?.operations[0]?.addedRows??0;t.set(n.table,{targetKind:"SUBTABLE",field:n.table,operations:[{kind:"APPEND",count:o+n.addedRows,addedRows:o+n.addedRows}],changedCount:(i?.changedCount??0)+n.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function Ku(e){let t=new Map,r=0;for(let n of e.plans){let i=!1;for(let o of n.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:xu(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of n.multiValues){let a=t.get(o.field),s={parentId:n.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:xu(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&&(r+=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:r}}function xu(e,t){return e?t.map((r,n)=>{let i=e[n];if(!i||i.kind!==r.kind||i.value!==r.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...r,...i.changed!==void 0?{changed:i.changed}:{},count:on(i.count,r.count),...r.matchedRows!==void 0?{matchedRows:on(i.matchedRows,r.matchedRows)}:{},...r.changedRows!==void 0?{changedRows:on(i.changedRows,r.changedRows)}:{},...r.addedRows!==void 0?{addedRows:on(i.addedRows,r.addedRows)}:{},...r.removedRows!==void 0?{removedRows:on(i.removedRows,r.removedRows)}:{}}}):t.map(r=>({...r}))}function on(e,t){return e==null||t===null?null:e+t}function Li(e,t,r,n,i,o){let a=t.map(u=>{let d=u.operations.map(f=>ER(f,r)),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=r===null||l===null?null:r>i||l>o;return{branch:e,parentRows:r,targets:a,guards:{revisionRequired:n,parentRows:r,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:p},chunk:{size:100,plannedChunks:r===null?null:Math.ceil(r/100)},deletedParentRows:e==="insert"?0:null}}function ER(e,t){if(e.kind==="APPEND"){let r=t===null?null:e.values.length*t;return{kind:e.kind,count:r,addedRows:r}}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,r){let n=r instanceof Error?r.message:String(r),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: ${n}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=r}};async function Bu(e,t,r){or("phase10c");let n=bu(e),i=0,o=0;for(let a=0;a<n.length;a+=1){let s=n[a];try{await t.putRecords(s)}catch(l){throw new rt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{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 $u(e,t,r){or("phase13c");let n=[],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]});n.push(l.ids)}catch(l){throw new rt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:n,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Gu(e,t,r){or("phase14c");let n=[],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]});n.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,...r?{diagnostic:Ce(r,{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,...r?{diagnostic:Ce(r,{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:n,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function RR(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let r=t.type;return r==="LEFT"||r==="RIGHT"})}function Vu(e){let t=new Set,r=n=>{if(Array.isArray(n))return n.some(r);if(n===null||typeof n!="object"||t.has(n))return!1;t.add(n);let i=n;return RR(i)?!0:Object.values(i).some(r)};return r(e)}function Wu(e,t){let r=Z(e);return r.type!=="GROUPING_SETS"?null:{source:r.source,expandedSetCount:r.sets.length,groupingItemCount:t??r.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function We(e){if(e===null)return!1;switch(e.type){case"BINARY":return Di(e.left);case"NULL_CHECK":return Di(e.field);case"LOGICAL":return We(e.left)||We(e.right);case"NOT":case"GROUP":return We(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Di(e){if(Array.isArray(e))return e.some(Di);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(Di)}async function ke(e,t,r,n,i){let o=await ye(e,t,r,n,{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 vi(e,t,r,n){let{records:i,metrics:o}=await ke(e,t,r,["$id"],n);return{ids:js(i),metrics:o}}var Oe=["=","!=",">","<",">=","<="],mR=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),yR=new Set(Oe),hR=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"])]]),gR=new Map([["TODAY",new Set(Oe)],["NOW",new Set(Oe)],["LOGINUSER",new Set(["in","not in"])]]),AR=["=","!=","in","not in"],SR=new Map([["RECORD_NUMBER",new Set([...Oe,"in","not in"])],["__ID__",new Set([...Oe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Oe)],["UPDATED_TIME",new Set(Oe)],["DATE",new Set(Oe)],["TIME",new Set(Oe)],["DATETIME",new Set(Oe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Oe,"in","not in"])],["CALC",new Set([...Oe,"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(AR)]]),TR=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"])]]),ju=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"]),qu=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function IR(e){return SR.get(e)??new Set}function Le(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:ln(e,t)}function ln(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"?Na():NR(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Na();case"GROUP":return ln(e.expr,t);case"NOT":{let r=ln(e.expr,t);return r.capability!=="SUPERSET_PREFILTER"?r:Xu(r.reasons)?cn({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...r.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let r=ln(e.left,t),n=ln(e.right,t);return OR(e.op,r,n)}}}function wR(e,t,r,n){if(r.type==="KINTONE_FUNC"&&z(r.name))return bR(e,t,r,n);if(r.type==="KINTONE_FUNC"&&Hu(r))return Yu(e,t,r,n);if(r.type==="IN_LIST"){let u=r.values.filter(d=>d.type==="KINTONE_FUNC");if(u.length>0)return r.values.length===1&&u.length===1?Yu(e,t,u[0],n):Ui("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",u[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?n(t)?.fieldType:void 0,un(e))}if(t.type!=="FIELD")return Na();let i=n(t);if(!i)return gr("WHERE_FIELD_UNRESOLVED",t.field,void 0,un(e));let o=un(e);if(!zu(i.fieldType,o))return gr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!CR(i.fieldType,e))return gr("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=IR(i.fieldType),s=r.type==="STRING"||r.type==="NUMBER"||r.type==="IN_LIST"||Hu(r),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 Hu(e){return e.type==="KINTONE_FUNC"&&Pt.has(e.name)}function Yu(e,t,r,n){let i=un(e),o=r.name;if(!Pt.has(o)||t.type!=="FIELD")return Ui("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=n(t),s=hR.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Ui("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):gR.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Ui("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function bR(e,t,r,n){let i=un(e),o=r.name;if(t.type!=="FIELD")return sn("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=n(t);return a?PR(r)?yR.has(i)?!mR.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?sn("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}]}:sn("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):sn("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):sn("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function PR(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 NR(e,t,r){let n=r(e);return n?zu(n.fieldType,t)?!ju.has(n.fieldType)&&!qu.has(n.fieldType)?gr("WHERE_OPERATOR_UNSUPPORTED",e.field,n.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:n.fieldType,operator:t}]}:gr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,n.fieldType,t):gr("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function zu(e,t){let r=TR.get(e);return r===void 0||r.has(t)}function CR(e,t){return ju.has(e)?!0:qu.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function un(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 OR(e,t,r){let n=[...t.reasons,...r.reasons];return t.capability==="UNSUPPORTED"||r.capability==="UNSUPPORTED"?cn({capability:"UNSUPPORTED",reasons:n}):t.capability==="EXACT_PUSHDOWN"&&r.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:n}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||r.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||r.capability==="SUPERSET_PREFILTER")?cn({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...n]}):cn({capability:"LOCAL_ONLY",reasons:n})}function Na(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function gr(e,t,r,n){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:r,operator:n}]}}function Ui(e,t,r,n,i){return cn({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:r,fieldType:n,operator:i}]})}function sn(e,t,r,n,i){return Ju({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:r,fieldType:n,operator:i}]})}function Xu(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&z(t.functionName))}function LR(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Pt.has(t.functionName))}function Ju(e){if(e.capability==="EXACT_PUSHDOWN"||!Xu(e.reasons)||e.reasons.some(r=>r.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(r=>r.code.startsWith("WHERE_RELATIVE_DATE_")||r.functionName!==void 0&&z(r.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 _R(e){if(e.capability==="EXACT_PUSHDOWN"||!LR(e.reasons)||e.reasons.some(r=>r.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(r=>r.code.startsWith("WHERE_KINTONE_FUNCTION_")||r.functionName!==void 0&&Pt.has(r.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 cn(e){return _R(Ju(e))}var DR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),vR=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),UR=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Mi(e,t){if(e.tableAlias!==null){let n=t.filter(o=>o.alias===e.tableAlias);if(n.length>1)return Object.freeze({status:"AMBIGUOUS"});if(n.length===0)return Object.freeze({status:"UNKNOWN"});let i=n[0];return i.fieldTypes.has(e.field)?Qu(i,e.field):Object.freeze({status:"UNKNOWN"})}let r=t.filter(n=>n.fieldTypes.has(e.field));return r.length>1?Object.freeze({status:"AMBIGUOUS"}):r.length===0?Object.freeze({status:"UNKNOWN"}):Qu(r[0],e.field)}function Zu(e,t){if(e.left.type!=="FIELD")return pn();let r=Mi(e.left,t);if(r.status!=="OWNED"||r.source.sourceKind!=="APP")return pn();let n=r.source.fieldTypes.get(r.fieldCode);if(n===void 0||n.startsWith("KSQL_")||Le(e,a=>{let s=Mi(a,t);if(s.status!=="OWNED"||s.source!==r.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:q({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return pn();let o=MR(e,r,n);return o==="unsafe"?pn():Object.freeze({relation:o,owner:r})}function ec(e,t){let r=new Set;Sr(e,r);let i=(e===null?[]:rc(Ar(e,t))).map(a=>Object.freeze({targetAlias:a.owner.alias,appId:a.owner.appId,predicate:a.predicate,relation:a.relation})),o=new Set;for(let a of i)Sr(a.predicate,o);return Object.freeze({items:Object.freeze(i),appliedKlikes:o,allKlikes:Object.freeze([...r]),rejections:Object.freeze(kR(e,t))})}function kR(e,t){if(e===null)return[];let r=new Set,n=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){r.add("UNSAFE_RELATION");return}let o=Mi(i.left,t);if(o.status==="AMBIGUOUS"){r.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){r.add("UNKNOWN_FIELD_OR_METADATA");return}if(xi(i.right)){r.add("CROSS_TABLE_BINARY");return}Zu(i,t).relation==="unsafe"&&r.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(ac(i)){r.add("KLIKE_OR");return}let o=Ar(i.left,t),a=Ar(i.right,t);if(o.length!==1||a.length!==1||!Oa(o[0].owner,a[0].owner)){r.add("CROSS_ALIAS_OR");return}}n(i.left),n(i.right);return}if(i.type==="GROUP"){n(i.expr);return}if(i.type==="NOT"){r.add("NOT");return}r.add("UNSAFE_RELATION")};return n(e),[...r].map(i=>Object.freeze({reason:i}))}function tc(e,t){return ki(e.predicate,e,t),$(e.predicate)}function ki(e,t,r){switch(e.type){case"LOGICAL":ki(e.left,t,r),ki(e.right,t,r);return;case"GROUP":ki(e.expr,t,r);return;case"BINARY":{if(e.left.type!=="FIELD"||xi(e.right))throw Ca(t,"predicate contains a non-target or RHS field reference");let n=Mi(e.left,r);if(n.status!=="OWNED"||n.alias!==t.targetAlias||n.appId!==t.appId||n.source.sourceKind!=="APP")throw Ca(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ca(t,"predicate shape is outside the Phase A serializer contract")}}function Ca(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Ar(e,t){switch(e.type){case"BINARY":{let r=Zu(e,t);return r.relation==="unsafe"||r.owner===void 0?[]:[{owner:r.owner,predicate:e,relation:r.relation}]}case"LOGICAL":{let r=Ar(e.left,t),n=Ar(e.right,t);if(e.op==="AND")return rc([...r,...n]);if(ac(e))return[];if(r.length!==1||n.length!==1)return[];let i=r[0],o=n[0];return Oa(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:nc(i.relation,o.relation)}]:[]}case"GROUP":return Ar(e.expr,t).map(r=>({...r,predicate:{type:"GROUP",expr:r.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function rc(e){let t=[];for(let r of e){let n=t.findIndex(o=>Oa(o.owner,r.owner));if(n<0){t.push(r);continue}let i=t[n];t[n]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:r.predicate},relation:nc(i.relation,r.relation)}}return t}function MR(e,t,r){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return vR.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(r==="__ID__"||t.fieldCode==="$id")return xR(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(r==="RECORD_NUMBER")return"unsafe";if(r==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&ic(e.right)?"superset":"unsafe";if(r==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(r==="DATE"||r==="TIME"||UR.has(r))return e.op!=="="||e.right.type!=="STRING"?"unsafe":r==="DATE"?oc(e.right.value)?"superset":"unsafe":r==="TIME"?FR(e.right.value)?"superset":"unsafe":KR(e.right.value)?"superset":"unsafe";if(DR.has(r)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let n=t.source.fieldOptions?.get(t.fieldCode);return n===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&n.has(i.value))?"exact":"unsafe"}return"unsafe"}function Qu(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function pn(){return Object.freeze({relation:"unsafe"})}function Oa(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function nc(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function xR(e){return e.type==="NUMBER"&&ic(e)&&e.value>0}function ic(e){return/^-?\d+$/.test(G(e))&&Number.isSafeInteger(e.value)}function oc(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let r=Number(t[1]),n=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(r,n-1,i));return o.getUTCFullYear()===r&&o.getUTCMonth()===n-1&&o.getUTCDate()===i}function FR(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function KR(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!oc(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Sr(e,t){if(e!==null){if(pt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sr(e.left,t),Sr(e.right,t);return;case"NOT":case"GROUP":Sr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function ac(e){let t=new Set;return Sr(e,t),t.size>0}function xi(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(xi);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(xi)}function La(e,t){let r=Gr(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:r.condition,appliedKlikes:r.appliedKlikes,unappliedKlikes:r.allKlikes.filter(n=>!r.appliedKlikes.has(n))}}function BR(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function $R(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function dn(e){let{stmt:t}=e,r=[],n=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...n];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=BR(a,e.orderSemantics);if(!s){r.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?r.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&r.push("ORDER_KEY_UNSUPPORTED")}if(r.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(r.includes("ORDER_KEY_UNSUPPORTED")||r.includes("ORDER_KEY_UNRESOLVED")){let a=r.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&&n.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!$R(t,a.key.name))||r.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&r.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&r.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&r.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&r.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&r.push("MAX_RECORDS_WINDOW"),e.hasKlike&&r.push("KLIKE_NOT_REST_WINDOW"),r.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(r)]}}var GR=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 VR(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function fn(e){let{stmt:t}=e,r=[];t.orderMode!=="KINTONE_NATIVE"&&r.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&r.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(r.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),r.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&r.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&r.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,p=e.orderSemantics.get(l);if(!p){r.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(VR(t,l)){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!p.source||p.source.fieldCode!==l){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}GR.has(p.fieldType)||r.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&r.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let n=t.offset??0;(!Number.isSafeInteger(n)||n<0)&&r.push(`KORDER_OFFSET_INVALID(offset=${n})`);let i=t.limit===null?Number.NaN:n+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&r.push(`KORDER_SCAN_ROWS_INVALID(offset=${n}, limit=${t.limit})`);let o=[...new Set(r)];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&&n<=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 Fi=class extends Error{constructor(t,r,n){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${r} \u306B ${n}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},Ki=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}},Bi=class extends Error{constructor(t){let r=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: ${r}`),this.name="CursorCleanupWarning",this.cause=t}};async function sc(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),r=[],n=0,i,o;try{if(t.totalCount>e.offset)for(;r.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(n<e.offset)n+=1;else if(r.length<e.limit)r.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 Bi(a).message}}return{records:r,cleanupWarning:o}}function _a(e){let t=[];e.where&&t.push($(e.where));let r=e.orderBy.map(n=>{if(n.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${n.key.name} ${n.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${r.join(", ")}`),t.join(" ")}var lc=["$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 uc(e){return e.startsWith("_")||e.startsWith("$")}var WR=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function va(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(va);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"?WR.test(t.field):Object.values(t).some(va)}function HR(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 Wr(e)||va(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var YR=["_pid","_rid","_idx"];function Da(e){return[...new Set(e)]}function jR(e){switch(e.kind){case"APP":return Da([...e.fieldCodes,...lc]);case"SUBTABLE":return Da([...e.childFieldCodes,...YR,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Da(e.columns)}}function cc(e,t){return[e.from,...e.joins.map(n=>n.table)].map((n,i)=>({sourceIndex:i,qualifier:n.alias??n.cteName,columns:jR(t(n,i))}))}function qR(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 zR(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function XR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function JR(e,t,r){let n=qR(e),o=(n.qualifier===null?r:r.filter(l=>l.qualifier===n.qualifier)).filter(l=>l.columns.includes(n.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:n.fieldCode,runtimeKey:zR(l,n.fieldCode)}}if(n.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>XR(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=HR(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&&he(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function pc(e,t,r){return{items:e.map(n=>n.type==="FIELD_NAME"?JR(n.name,t,r):{kind:"EXPRESSION"})}}function nt(e,t){let r={};for(let[n,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(r[`${t}.${n}`]=a),r[n]=a}return r}function QR(e,t,r,n={}){let{on:i,type:o}=r,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(dc(e,a,n.leftColumns),dc(t,s,n.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 n.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 n.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 dc(e,t,r){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):r!==void 0&&!r.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function ZR(e,t,r,n,i){return t===null?e:e.filter(o=>X(t,o,r,n,i))}function gc(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&En(t.expr)||t.type==="SCALAR_VALUE_COL"&&gt(t.expr))}function em(e,t,r,n,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)=>rm(d,l,i?.items[c],r,o)).join("\0"),u=a.get(p);u?u.push(l):a.set(p,[l])}a.size===0&&t.length===0&&gc(r)&&a.set("",[]);let s=[];for(let l of a.values()){let p={...l[0]};for(let u of t)u.type==="ARITH_KEY"?p[Ka(u.expr)]=String(ne(u.expr,l[0])):u.type==="FUNC_KEY"&&(p[At(u.expr)]=ie(u.expr,l[0]));Ac(p,l,r,n),s.push(p)}return s}function tm(e,t,r,n,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=fc(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,fc(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)}Ac(f,c,r,n),Ul(f,d),o.push(f)}}return o}function fc(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Ac(e,t,r,n){for(let i of r)if(i.type==="AGGREGATE"){let o=he(i.func,i.distinct,i.arg),a=String(ka(i.func,i.distinct,i.arg,i.separator,t,n));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??Tr(i.expr);e[o]=String($i(i.expr,t,n))}else if(i.type==="STRFUNC_COL"&&En(i.expr)){let o=i.alias??At(i.expr),a=Ba(i.expr,t,n);e[o]=ie(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&gt(i.expr)){let o=i.alias??He(i.expr),a=Vi(i.expr,t,n);e[o]=String(se(a,e))}}function rm(e,t,r,n,i){if(e.type==="FIELD_NAME"){if(!r)return t[e.name]??"";if(r.kind==="PHYSICAL")return t[r.runtimeKey]??"";if(r.kind==="ALIAS_SAFE"){let o=n[r.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${r.columnIndex} is out of range.`);let a=Gi(o,t,r.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 ${r.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?ie(e.expr,t):String(ne(e.expr,t))}function ka(e,t,r,n,i,o){if(r.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(r.type==="FIELD_REF"){let R=f[r.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(r.type==="ARITH"||r.type==="NUMBER"||r.type==="STRING_FUNC"){let R=ne(r,f);if(isNaN(R))continue;E=String(R)}else{let R=yt(r,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(n??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Sc(r,o):void 0,d=typeof u=="string"?F(u):u??(r.type==="FIELD_REF"||r.type==="FIELD"||r.type==="STRING"||r.type==="CONCAT_OP"||r.type==="CASE_WHEN"?F("string"):F("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=Lt(m,E,d);(h<0||h===0&&mt(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=Lt(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 O=S-m;m+=O/R,y+=O*(S-m)}let h=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function nm(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 $i(e,t,r){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ka(e.func,e.distinct,e.arg,e.separator,t,r));let n=$i(e.left,t,r),i=$i(e.right,t,r);switch(e.op){case"+":return n+i;case"-":return n-i;case"*":return n*i;case"/":return i!==0?n/i:NaN;case"%":return i!==0?n%i:NaN}}function Tr(e){return vr(e)}function Sc(e,t){if(e.type==="FIELD_REF")return t?.(nm(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 r=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Sc(o,t));if(r.length===0||r.some(o=>o===void 0))return"string";let n=r.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!n.every(o=>o===n[0]))return"string";let i=r[0];return r.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:n[0]}function im(e,t,r,n){return t===null?e:e.filter(i=>X(t,i,r,void 0,n))}function om(e,t,r,n,i){if(e.length===0)return e;let o=am(e,t,{scalarCache:r,resolveFieldType:n,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function am(e,t,r){let n=[];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);n=[...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={...r,wildcardKeys:n,parentWildcardKeys:i};return a=>JSON.stringify(pm(t,a,o))}function Ma(e,t,r,n,i,o){return t.length===0?e:Tc(e,t,r,n,i,o).rows.map(a=>a.row)}function Tc(e,t,r,n,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:F("number")};if(p.type==="FUNC_KEY")return{semantics:F(Ic.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:F("number")};let u=i?.get(p.name);if(u)return{semantics:u};let d=r?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:F(n?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:u},d)=>({s:um(u,p,o)}))})),l=(p,u)=>sm(p,u,t,a);return s.sort(l),{rows:s,compare:l}}function sm(e,t,r,n){for(let i=0;i<r.length;i++){let o=lm(e.keys[i],t.keys[i],n[i]);if(o!==0)return r[i].direction==="ASC"?o:-o}return 0}function lm(e,t,r){return Lt(e.s,t.s,r.semantics)}var Ic=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function um(e,t,r){switch(e.type){case"FIELD_NAME":return r?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ne(e.expr,t));case"FUNC_KEY":return ie(e.expr,t);case"GROUPING_KEY":return fr(e.ref,t)}}function xa(e,t,r,n){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=>Ze(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=he(a.func,a.distinct,a.arg);i.set(s,p=>p[s]??p[l]??"0");break}case"ARITH_AGG_COL":{let l=Tr(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(ne(a.expr,l)));break;case"STRFUNC_COL":{let l=At(a.expr);i.set(s,p=>En(a.expr)?p[s]??p[l]??ie(a.expr,p,r,n):ie(a.expr,p,r,n));break}case"CASE_COL":i.set(s,l=>Ne(a.expr,l,r,n));break;case"SCALAR_VALUE_COL":{let l=He(a.expr);i.set(s,p=>gt(a.expr)?p[s]??p[l]??"":String(se(a.expr,p,r,n)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>fr(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Fa(e,t,r,n,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=>cm(l,d))),u=s.get(p);u?u.push(l):s.set(p,[l])}for(let l of s.values()){let p=Tc(l,a.orderBy,r,n,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 cm(e,t){let r=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ze(e,r)}function Wi(e,t,r){let n=r??0;return t===null?e.slice(n):e.slice(n,n+t)}function Gi(e,t,r,n={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(n.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(n.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return Ze(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=he(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Tr(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ne(e.expr,t));case"CASE_COL":return Ne(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics);case"GROUPING_COL":return fr(e.ref,t);case"STRFUNC_COL":{let i=At(e.expr);return En(e.expr)?t[e.alias??i]??t[i]??ie(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics):ie(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=He(e.expr);return gt(e.expr)?t[e.alias??i]??t[i]??"":String(se(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return n.scalarCache?.get(r)??"";case"WINDOW_COL":return t[e.alias]??""}}function pm(e,t,r={}){return e.map((n,i)=>{let o=Gi(n,t,i,r);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Hi(e,t,r,n,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let c=e.map(E=>{let R=yc(Rc(E),a),m=Gi(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=Em(t),l=t.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD"),p=l?null:dm(t,s),u=p??[];return l&&e.length===0?{rows:[],columns:fm(t,s)}:{rows:e.map((c,f)=>{let E={},R={scalarCache:r,resolveFieldType:n,resolveFieldSemantics:o,wildcardKeys:Object.keys(yc(Rc(c),a)),parentWildcardKeys:Object.keys(c).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let h=Gi(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=he(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??Tr(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"ARITH_COL":{let g=p?.[m]??y.alias??Ka(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??At(y.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"SCALAR_VALUE_COL":{let g=p?.[m]??y.alias??He(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 dm(e,t){return e.map((r,n)=>wc(r,n,t))}function fm(e,t){let r=[],n=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=wc(o,i,t);n.has(a)||(n.add(a),r.push(a))}return r}function wc(e,t,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??r.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??he(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Tr(e.expr);case"ARITH_COL":return e.alias??Ka(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??At(e.expr);case"SCALAR_VALUE_COL":return e.alias??He(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 Em(e){let t=new Map;for(let n of e){if(n.type!=="FIELD"||n.alias)continue;let i=Ec(n.field);t.set(i,(t.get(i)??0)+1)}let r=new Map;for(let[n,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=Ec(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");r.set(n,a&&s?i.field:o)}return r}function Ec(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Rc(e){let t={};for(let[r,n]of Object.entries(e))r.startsWith("_p.")||(t[r]=n);return t}function Ka(e){let t=r=>r.type==="FIELD_REF"?r.field:r.type==="NUMBER"?G(r):r.type==="STRING_FUNC"?At(r):`(${t(r.left)}${r.op}${t(r.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function At(e){let t=e.args.map(r=>r.type==="AGG_REF"||r.type==="AGG_ARITH"?Tr(r):He(r));return`${e.func}(${t.join(",")})`}function He(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 At(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${He(e.left)}${e.op}${He(e.right)}`;case"CONCAT_OP":return`${He(e.left)}||${He(e.right)}`}}function Rm(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:gt(e)}function gt(e){return e.type==="STRING_FUNC"?En(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?gt(e.left)||gt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>mc(t.result))||e.elseResult!==null&&mc(e.elseResult):!1}function mc(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:gt(e)}function En(e){return e.args.some(t=>Rm(t))}function mm(e,t,r){if(e.type==="AGG_REF"){let n=ka(e.func,e.distinct,e.arg,e.separator,t,r);return typeof n=="number"?{type:"NUMBER",value:n,raw:String(n)}:{type:"STRING",value:n}}if(e.type==="AGG_ARITH"){let n=$i(e,t,r);return{type:"NUMBER",value:n,raw:String(n)}}return e.type==="STRING_FUNC"?Ba(e,t,r):Vi(e,t,r)}function Vi(e,t,r){return e.type==="STRING_FUNC"?Ba(e,t,r):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Vi(e.left,t,r),right:Vi(e.right,t,r)}:e}function Ba(e,t,r){return{type:"STRING_FUNC",func:e.func,args:e.args.map(n=>mm(n,t,r))}}function yc(e,t){if(!t||t.size===0)return e;let r={};for(let[n,i]of Object.entries(e))[...t].some(o=>n.startsWith(`${o}.`))||(r[n]=i);return r}function hc(e,t){if(e!==void 0)return t?e.flatMap(r=>[`${t}.${r}`,r]):[...e]}function Ua(e,t,r){if(!(e===void 0&&t===void 0&&r.length===0))return[...new Set([...e??[],...t??[],...Object.keys(r[0]??{})])]}function ym(e){let t=new Map;for(let r of e)!("alias"in r)||!r.alias||(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?t.set(r.alias,F("number")):r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?t.set(r.alias,F("number")):r.func==="GROUP_CONCAT"&&t.set(r.alias,F("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?t.set(r.alias,F("string")):r.type==="STRFUNC_COL"&&t.set(r.alias,F(Ic.has(r.expr.func)?"number":"string")));return t}function $a(e){let{stmt:t,tables:r,scalarCache:n,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=ym(t.columns);for(let[L,I]of a??[])h.set(L,I);let g=[],S=t.from.alias;g=(r.get(S)??r.get(null)??[]).map(L=>nt(L,S));let P=Ua(hc(E?.get(S),S),void 0,g);for(let L of t.joins){let I=L.table.alias,k=(r.get(I)??[]).map(b=>nt(b,I)),A=Ua(hc(E?.get(I),I),void 0,k);g=QR(g,k,L,{leftColumns:P,rightColumns:A}),P=Ua(P,A,g)}let _=e.residualWhere!==void 0?e.residualWhere:t.where;g=ZR(g,_,s,c,l);let N=Z(t);if(N.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=tm(g,m,t.columns,d,{maxGeneratedRows:5e4})}else(N.type==="PLAIN"||gc(t.columns))&&(g=em(g,N.type==="PLAIN"?N.allItems:[],t.columns,d,N.type==="PLAIN"?y:void 0,{scalarCache:n,resolveFieldType:s,resolveFieldSemantics:l}));return g=im(g,t.having,p,u),g=Fa(g,t.columns,i,o,h),t.distinct&&(g=om(g,t.columns,n,s,l)),g=Ma(g,t.orderBy,i,o,h,xa(t.columns,n,s,l)),g=Wi(g,t.limit,t.offset),Hi(g,t.columns,n,s,f,l,R)}function bc(e,t){let r=[];for(let n of e){let i=Ga(n.$id?.value),o=hm(n[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(n)){if(p===t)continue;let d=Ga(u?.value);l[`_p.${p}`]={value:d}}for(let[p,u]of Object.entries(s.value??{}))l[p]={value:Ga(u?.value)};r.push(l)}}return r}function hm(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Ga(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 Pc(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Nc(e,t){let r=Rn(e);for(let[n,i]of Object.entries(t))r[n]=Rn(i);return r}function Cc(e){let t=[...e.preErrors.map(i=>Va(i)),...e.postImageErrors.map(i=>Va(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Va(i))],r=new Set;t.length>0&&r.add(e.rowNumber);let n={};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}`);n[i]=Rn(e.normalizedPostImage[i])}return{errors:t,invalidRows:r.size,invalidRowNumbers:r,writeRecord:n}}function Va(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 Rn(e,t=new Map){if(e===null||typeof e!="object")return e;let r=e,n=t.get(r);if(n!==void 0)return n;if(Array.isArray(e)){let o=[];t.set(r,o);for(let a of e)o.push(Rn(a,t));return o}let i={};t.set(r,i);for(let[o,a]of Object.entries(e))i[o]=Rn(a,t);return i}function Yi(e){let{select:t,selectMode:r,capability:n,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(r!=="FULL_SCAN"&&!s||n.capability!=="EXACT_PUSHDOWN")return null;let l=Mt(t.where);if(l.length===0||!Sm(l,a)||o===null||!Oc(o,l))return null;let p={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Am(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:n.capability,reasons:n.reasons},u={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:p};return gm(u,e,l),u}function gm(e,t,r){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(!Oc(e.serializedWholeWhere,r))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Mt(e){let t=[],r=n=>{if(Array.isArray(n)){n.forEach(r);return}if(n===null||typeof n!="object")return;let i=n;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&Ue(i.name)){t.push(i.name);return}Object.values(i).forEach(r)}};return r(e),t}function Am(e){let t=[],r=n=>{switch(n.type){case"BINARY":(n.right.type==="KINTONE_FUNC"&&Ue(n.right.name)||n.right.type==="IN_LIST"&&n.right.values.length===1&&n.right.values[0].type==="KINTONE_FUNC"&&Ue(n.right.values[0].name))&&t.push(n);return;case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return r(e),t}function Sm(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Oc(e,t){let r=new Map;for(let n of t){if(!Ue(n))return!1;r.set(n,(r.get(n)??0)+1)}for(let[n,i]of r)if((e.match(new RegExp(`\\b${n}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function _c(e,t){let r=[],n=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"&&Ue(a.name)&&!n.has(a.name)){n.add(a.name),r.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),r}function Ha(e){return _c(e,!0)}function ji(e,t){let r=[],n=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||n.has(o))return;n.add(o);let a=o;if(a.type==="SELECT"&&o!==t){r.push(o);return}Object.values(a).forEach(i)};return i(e),r}function Me(e,t,r,n,i=!0,o=!0,a=n){let s=Ha(e.where);s.length>0&&r.push({kind:n?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Mt(e.where)}),ji(e,e).forEach((l,p)=>Me(l,`${t}.select-source[${p}]`,r,a,a?!1:i,a?!1:o,a))}function mn(e,t,r,n,i=!0){e.left.type==="UNION"?mn(e.left,`${t}.left`,r,n,i):Me(e.left,`${t}.left`,r,n,!0,i),Me(e.right,`${t}.right`,r,n,!0,i)}function Lc(e,t,r,n){if(!n&&ft(e)){Me(Et(e),`${t}.inlined`,r,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Me(i.query,`${t}.cte[${o}]`,r,n,!1,!n,!0):i.query.type==="UNION"&&mn(i.query,`${t}.cte[${o}]`,r,!0,!1)}),e.query.type==="SELECT"?Me(e.query,`${t}.main`,r,n,!1,!n,!0):mn(e.query,`${t}.main`,r,!0,!1)}function Dc(e,t,r,n=!1){switch(e.type){case"SELECT":Me(e,t,r,n);return;case"UNION":mn(e,t,r,n);return;case"WITH":Lc(e,t,r,n);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Lc(e.query,`${t}.query`,r,!1):e.query.type==="UNION"?mn(e.query,`${t}.query`,r,!0,!1):Me(e.query,`${t}.query`,r,!1,!1,!0,!0);return;case"EXPLAIN":Dc(e.query,`${t}.query`,r,n);return;case"VALIDATE":case"REORDER":{let i=Ha(e.where);i.length>0&&r.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Mt(e.where)}),ji(e,e).forEach((o,a)=>Me(o,`${t}.select-source[${a}]`,r,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Ha(e.where);if(i.length>0){let o=n||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);r.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Mt(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=_c(e.applyBlocks,!0);o.length>0&&r.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ji(e,e).forEach((o,a)=>Me(o,`${t}.select-source[${a}]`,r,n,!1,!1));return}default:ji(e,e).forEach((i,o)=>Me(i,`${t}.select-source[${o}]`,r,n,!1,!1))}}function qi(e,t){let r=new Map;for(let n of t){if(!Ue(n))return!1;r.set(n,(r.get(n)??0)+1)}for(let[n,i]of r)if((e.match(new RegExp(`\\b${n}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Ya(e,t){return t.eligible===!0&&be(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Tm(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Im(e,t){let r=(t?.reasons??[]).filter(n=>n.functionName===e).map(n=>n.code).filter(n=>n.startsWith("WHERE_RELATIVE_DATE_")||n.startsWith("WHERE_KINTONE_FUNCTION_"));return Zt(e)?(r.some(n=>n!==Xe)||r.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),r.includes(Xe)||r.push(Xe)):r.includes(Nt)||r.push(Nt),[...new Set(r)]}function Wa(e,t){let r=e.functionNames[0],n=Zt(r)?Xe:Nt,i=Im(r,t);return{functionName:r,path:e.path,code:i.find(o=>o!==n)??n,reasonCodes:i}}async function vc(e,t){let r=[];Dc(e,"statement",r);let n=[];for(let i of r){if(i.kind==="FORBIDDEN"){let u=Tm(i);return n.push(u),{hasRelativeDate:i.functionNames.some(z),hasServerOnlyWhereFunction:!0,nodes:n,allowed:!1,rejection:Wa(i)}}if(i.kind==="SELECT"){let u=i.source,d=u.from.cteName===null&&!u.from.subtableCode&&u.joins.length===0,c=be(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"&&qi(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let S=await t.prefilterDecomposition(u);S?.eligible===!0&&Ya(u,S)&&(m=S.plan,y=!0,R=!0)}let h;!R&&f.capability==="EXACT_PUSHDOWN"&&(h=Yi({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={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}:{},clientWhereEvaluation:!R,allowed:R};if(n.push(g),!R)return{hasRelativeDate:r.some(S=>S.functionNames.some(z)),hasServerOnlyWhereFunction:!0,nodes:n,allowed:!1,rejection:Wa(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"&&qi(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(n.push(p),!l)return{hasRelativeDate:r.some(u=>u.functionNames.some(z)),hasServerOnlyWhereFunction:!0,nodes:n,allowed:!1,rejection:Wa(i,a)}}return{hasRelativeDate:r.some(i=>i.functionNames.some(z)),hasServerOnlyWhereFunction:r.length>0,nodes:n,allowed:!0}}function Uc(e){if(!e.allowed&&e.rejection){let t=Zt(e.rejection.functionName)?Xe:Nt,r=e.rejection.reasonCodes.filter(n=>n!==t);throw new Error(`${e.rejection.functionName}: ${t}${r.length>0?` (reason=${r.join(", ")})`:""} (path=${e.rejection.path})`)}}function ja(e,t,r={}){let n=Le(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:n.capability,reasons:n.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=hn(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=wm(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!bm(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(n.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(n.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=Nm(e.where,t),l=Gr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=r.serialize??$,u=r.containsFunctions??qi,d=[];for(let g of a.leaves){let S=Qi(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let O;try{O=p(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!u(O,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);d.push(g)}let c=Pm(l.condition),f=new Set(d),E=Xi(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=>Qi(g));if(!u(R,[...new Set(m)])||!Cm(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=r.rewriteResidual?r.rewriteResidual(e.where,f):Ji(e.where,f);if(y!==null&&hn(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:n.capability,reasons:n.reasons}}}function wm(e,t){let r=[],n=null,i=o=>{if(n===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}hn(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":hn(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Qi(o)===null)return;if(Le(o,t).capability!=="EXACT_PUSHDOWN"){n="RELATIVE_DATE_LEAF_NOT_EXACT";return}r.push(o);return}case"EXISTS":hn(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),n===null?{ok:!0,leaves:r}:{ok:!1,reasonCodes:[n]}}function Qi(e){return e.right.type==="KINTONE_FUNC"&&Ue(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ue(e.right.values[0].name)?e.right.values[0].name:null}function hn(e){let t=[],r=n=>{if(n.type==="BINARY"&&Qi(n)!==null){t.push(n);return}switch(n.type){case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"EXISTS":n.query.where!==null&&r(n.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return r(e),t}function bm(e,t){if(e.length!==t.length)return!1;let r=new Set(t);for(let n of e)if(!r.delete(n))return!1;return r.size===0}function Pm(e){let t=new Set,r=n=>{switch(n.type){case"BINARY":t.add(n);return;case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&r(e),t}function Xi(e,t,r){switch(e.type){case"BINARY":return t.has(e)||r.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Xi(e.left,t,r),i=Xi(e.right,t,r);return n!==null&&i!==null?{...e,left:n,right:i}:n??i}case"GROUP":{let n=Xi(e.expr,t,r);return n===null?null:{...e,expr:n}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var yn={type:"BOOLEAN",value:!0};function Ji(e,t){if(e.type==="BINARY"&&t.has(e))return yn;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let r=Ji(e.left,t)??yn,n=Ji(e.right,t)??yn;return zi(r)?zi(n)?null:n:zi(n)?r:r===e.left&&n===e.right?e:{...e,left:r,right:n}}case"GROUP":{let r=Ji(e.expr,t)??yn;return zi(r)?yn:r===e.expr?e:{...e,expr:r}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function zi(e){return e.type==="BOOLEAN"&&e.value}function Nm(e,t){let r=new Map,n=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(n);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){r.set(s.field,a);return}Object.values(s).forEach(n)}};n(e);let i=new Map,o=new Map;for(let[a,s]of r){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 Cm(e,t){let r=new Map;for(let n of t){if(!Do.has(n))return!1;r.set(n,(r.get(n)??0)+1)}for(let[n,i]of r)if((e.match(new RegExp(`\\b${n}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var M=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function kc(e,t){if(!t)throw new M("IMPORT source capability is not available.");let r=t(e);if(!r)throw new M(`source "${e}" is not supplied.`);return r}async function Zi(e,t){let r=t.get(e);return r||(r=e.load().then(n=>{if(!(n.bytes instanceof Uint8Array))throw new M("loader must return Uint8Array bytes.");if(n.bytes.byteLength>10485760)throw new M("source exceeds the 10485760 byte limit.");return n}),t.set(e,r)),r}function Om(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new M(`invalid ${t.toUpperCase()} byte sequence.`)}}function Lm(e){let t=[],r=[],n="",i=!1,o=!1,a=0,s=()=>{r.push(n),n="",o=!1},l=()=>{s(),t.push(r),r=[]};for(;a<e.length;){let p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){n+='"',a+=2;continue}i=!1,o=!0,a++;continue}n+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
4
- `)throw new M(`unexpected character after closing quote at offset ${a}.`);if(p==='"'){if(n.length!==0)throw new M(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(p===","){s(),a++;continue}if(p==="\r"||p===`
3
+ `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new 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 $o(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Vd(t)}function sl(e){let t=e.codePointAt(0);return $o(e)||t>=48&&t<=57}function en(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Vd(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Wd=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Hd(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=Wd.exec(e.trim());if(t===null)return null;let n=Hd(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 Yd(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 ul(e){let t=Ne(e);return t===null?null:Yd(t)}function jd(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=jd(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 ul(t)??t}function cl(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 pl(e){return Z(e).type!=="NONE"}function dl(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 Vo(e);let n=`${nn(e.left)}${e.op}${nn(e.right)}`;return t?n:`(${n})`}function fl(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Vo(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 Go(e.expr)}function Rl(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(Rl).join(",")})`;case"ARITH_VALUE":return nn(e.expr);case"CASE_VALUE":return Go(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function xn(e){switch(e.type){case"BINARY":return`${fl(e.left)} ${e.op.replace("_"," ")} ${Rl(e.right)}`;case"NULL_CHECK":return`${fl(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 El(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 Go(e){let t=e.branches.map(r=>`WHEN ${xn(r.condition)} THEN ${El(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${El(e.elseResult)}`;return`CASE ${t}${n} END`}function zd(e){return e.type==="AGG_REF"?Se(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Kn(e):Pt(e)}function Vo(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 Vo(e);case"CASE_WHEN":return Go(e);case"SCALAR_ARITH":return`(${Pt(e.left)}${e.op}${Pt(e.right)})`;case"CONCAT_OP":return`(${Pt(e.left)}||${Pt(e.right)})`}}function Jd(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?nn(e,!0):Pt(e)}function Se(e,t,n){let r=Jd(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Kn(e){return e.type==="NUMBER"?G(e):e.type==="AGG_REF"?Se(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 yl=20,Wo=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"}),hl=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Ho=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"}),pA=Object.freeze(Object.values(Ho).filter(e=>e!==void 0)),Xd=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Qd=new Set(Xd);function Zd(e){return Qd.has(e)}var gl=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),ni=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function ml(e){return ni[e]!==void 0}var ef=Object.freeze([...ti]),tf=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),nf=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function rf(e){return tf.has(e)}function of(e){return nf.has(e)}function af(e){return Number.isInteger(e)&&e>=1&&e<=31}var dA=Object.freeze(Array.from(new Set([...Object.keys(Wo),...hl,...Object.keys(Ho),...Object.keys(gl),...Object.keys(ni),...ef,"IF"]))),sf=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 lf(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!sf.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>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=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 y,m;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()}m=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(y=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"||!m)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!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(!m)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(y)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),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:m}:{},...h?{replaceSubtables:h}:{},...y?{keyFields:y}:{},...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&&lf(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(m=>m.type==="WINDOW_COL"),y=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||p!==void 0||y))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 gl[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=Wo[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Wo[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(hl.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=uf(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 Ho[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(!Zd(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:Se(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(!rf(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(!of(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(!af(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(ml(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=cl(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(ml(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 uf(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 Al(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var cf=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"&&cf.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(Al(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,Sl(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 Sl(e){let t=e.left.type==="SELECT"?sn(e.left):Sl(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 pf=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})}),qo=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 df(e,t){let n=$n;$n=e;try{return t()}finally{$n=n}}function ff(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 df(e,()=>Ef(t,pf[e]))}function Ef(e,t){let n=ff(e);if(n===null)return;if(n.type==="UPSERT"){yf(n,t);return}let r=n.applyBlocks;if(Yo(r),!t.multipleBlocks&&r.length!==1&&B("multiple APPLY blocks in this phase"),n.type==="INSERT"){mf(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"),hf(i.where,t.multipleParents),Il(r,t)}function Il(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||B(`${r.kind} in this phase`);wl(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"&&Tl(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"&&Tl(r.selector.where,t.idxSelectors)}}}}function wl(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 Rf=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function bl(e,t){if(wl(e),e.targetKind==="MULTI_VALUE"){if(!Rf.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 Yo(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 yf(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??[];Yo(n),Yo(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&B("multiple APPLY blocks in this phase"),Pl(n,"UPSERT ON INSERT"),Il(r,{...t,idxSelectors:!1,expectRows:!1})}function Pl(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 mf(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"),Pl(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 Nl(e,t){let n=qo[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Cl(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 Cl(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 Ol(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ze(t.where))&&!qo[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${ln(e)} public multiple-parent write is not connected`)}function cn(e){if(!qo[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${ln(e)} internal prepared write is not available`)}function ln(e){return`Phase ${e.slice(5)}`}function hf(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"),jo(e,t))}function jo(e,t){if(Array.isArray(e)){for(let o of e)jo(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))jo(o,t)}function Tl(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=gf(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 gf(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 Ll(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 Af(e);case"NULL_CHECK":return Tf(e);case"LOGICAL":return If(e);case"NOT":return wf(e);case"GROUP":return bf(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 Af(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=Dl(e.left),n=Sf(e.op),r=Pf(e.right,e.op);return`${t} ${n} ${r}`}function Sf(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 Tf(e){let t=Dl(e.field);return e.not?`${t} != ""`:`${t} = ""`}function If(e){let t=$(e.left),n=$(e.right),r=e.op==="AND"?"and":"or",i=_l(e.left)?`(${t})`:t,o=_l(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function wf(e){return $(Gn(e.expr))}function bf(e){return`(${$(e.expr)})`}function Dl(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 Uf(e.field)}function Pf(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 vl(e);case"NUMBER":return G(e);case"KINTONE_FUNC":return Ul(e);case"IN_LIST":return Df(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 vl(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ul(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return Nf(e)}function Nf(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"||!Lf(e.args.offset,e.args.offsetText)||!Cf.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&&!Of.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"||!_f(e.args.day)?Wn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Wn()}var Cf=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Of=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Lf(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function _f(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 Df(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 vf(e.values),`(${e.values.map(r=>r.type==="STRING"?vl(r):r.type==="NUMBER"?G(r):Ul(r)).join(",")})`}function vf(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 Uf(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function _l(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"&&Kl(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 kl(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 kl(e.field);case"LOGICAL":return ft(e.left)||ft(e.right);case"NOT":case"GROUP":return ft(e.expr);case"EXISTS":return!0}}function kl(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(Mf).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:Ff(e.columns),totalCount:!1}}function xl(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=$f(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 Mf(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 Ff(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(Jo(r.field)):r.type==="ARITH_COL"?Hn(r.expr,n):r.type==="STRFUNC_COL"?Xo(r.expr,n):r.type==="SCALAR_VALUE_COL"&&pn(r.expr,n);return[...new Set(n)]}function xf(e,t){Hn(e.left,t),Hn(e.right,t)}function Hn(e,t){e.type==="FIELD_REF"?t.push(Jo(e.field)):e.type==="ARITH"?xf(e,t):e.type==="STRING_FUNC"&&Xo(e,t)}function Jo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Xo(e,t){for(let n of e.args)Kf(n,t)}function Kf(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){zo(e,t);return}pn(e,t)}function pn(e,t){if(e.type==="FIELD"){t.push(Jo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Xo(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)Ml(n.result,t);e.elseResult&&Ml(e.elseResult,t)}}function Ml(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Hn(e,t);return}pn(e,t)}}function zo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Bf(e.arg,t);return}e.type==="AGG_ARITH"&&(zo(e.left,t),zo(e.right,t))}function Bf(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Hn(e,t):pn(e,t)}function Kl(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"?Kl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Yn(e.left)||Yn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Fl(t.result))||e.elseResult!==null&&Fl(e.elseResult):!1}function Fl(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Yn(e)}function $f(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=Gf(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")&&Vf(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}},y=(A,b="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&S(A.arg,b);return}A.type==="AGG_ARITH"&&(y(A.left,b),y(A.right,b))},m=(A,b="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,b);return}g(A,b)},h=(A,b="select")=>{for(let C of A.args)m(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":y(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 Gf(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(Se(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 Vf(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||pl(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:Bl(e.left,t)};case"NULL_CHECK":return{...e,field:Bl(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 Bl(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function dn(e,t={}){return jn(e,n=>Wf(n,t))}function qn(e,t={}){return jn(e,n=>$l(n,t)||Gl(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 Wf(e,t){return Hf(e,t)||qf(e,t)?!0:$l(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":jf(e,t)}function Hf(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Qo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Yf=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function jf(e,t){if(!Gl(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||!Yf.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 $l(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Qo(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 Gl(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Qo(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 Qo(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 Zo(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||!Qf(l,a)||o===null||!Vl(o,l))return null;let p={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Xf(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 Jf(u,e,l),u}function Jf(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(!Vl(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 Xf(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 Qf(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Vl(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 yn(e){Wl(e)}function ta(e){if(Zo(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 Wl(e){switch(e.type){case"SELECT":Rn(e);return;case"UNION":ra(e);return;case"WITH":Hl(e);return;case"EXPLAIN":Wl(e.query);return;case"CREATE_TEMP_TABLE":na(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)){ea(e.where),_t(e);return}if(yt(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)&&!tE(e,e.where)){ea(e.where),_t(e);return}if(yt(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(yt(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)){ea(e.where),_t(e);return}if(yt(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(yt(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(yt(e))throw new ne("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(yt(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(yt(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 ea(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 na(e){e.type==="SELECT"?Rn(e):e.type==="UNION"?ra(e):Hl(e)}function ra(e){na(e.left),Rn(e.right)}function Hl(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"&&ra(t.query);na(e.query)}function Rn(e){if(eE(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(Zo(n).length===0){_t(e);return}if(Zf(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 Zf(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 eE(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 yt(e){let t=!1;return pi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function tE(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&&nE(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 nE(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Yl=Symbol("ksql.groupingRowMeta"),jl=new WeakMap;function ql(e,t){return Object.defineProperty(e,Yl,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function rE(e){return e[Yl]}function iE(e){return rE(e)?.includedCanonicalIds}function zl(e,t){jl.set(e,t)}function mn(e,t){let n=iE(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=jl.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Xl=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 oa(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(oa(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 oE(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 aE(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 sE(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).`);zl(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 ${Ei(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function lE(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[oa(e.name)];let t=[];return Jn(e,t),t}function Ql(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 Zl(e,t,n=()=>{}){Ql(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=dl(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)sE(u,t,a);let l=aE(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(oa(u.field)):Jn(u,d);for(let c of d)ia(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)||ia(d,t,a,"HAVING")}for(let u of e.orderBy)for(let d of lE(u.key))d.tableAlias===null&&l.has(d.field)||Jl(d)||ia(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(!oE(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 uE=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),cE=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":cE.has(e.fieldType)?t="option":uE.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 yi(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 mt(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 pE(e,t){return e<t?-1:e>t?1:0}function eu(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 dE(e,t){let n=eu(e),r=eu(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?mt(n.value,r.value):0}function tu(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 fE(e,t,n){let r=tu(e,n),i=tu(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=mt(r.normalizedId,i.normalizedId);return o!==0?o:mt(r.display,i.display)}function EE(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 nu(e,t){let n=t.optionOrder??new Map,i=[...new Set(EE(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(ru),i}function ru(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:mt(e.label,t.label)}function RE(e,t,n){let r=nu(e,n),i=nu(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=ru(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 mt(e,t);case"number":return dE(e,t);case"recordNumber":return fE(e,t,n.fieldType==="RECORD_NUMBER");case"option":return RE(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 iu(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):pE(Number(o),Number(a));if(p!==0)return p}return mt(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 lu(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 mi(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 yE(e){return e>=55296&&e<=56319}function mE(e){return e>=56320&&e<=57343}function gi(e,t){return t>0&&t<e.length&&yE(e.charCodeAt(t-1))&&mE(e.charCodeAt(t))}function ou(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 sa(e,t){let n=Math.min(Math.max(0,t),e.length);return gi(e,n)&&(n-=1),e.slice(0,n)}function hE(e,t){let n=Math.max(0,e.length-t);return gi(e,n)&&(n+=1),e.slice(n)}function gE(e,t,n){let r=ou(t,e.length),i=ou(n,e.length);return i<=r?"":(gi(e,r)&&(r+=1),gi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function AE(e,t){let n=e.repeat(Math.ceil(t/e.length));return sa(n,t)}var SE=200,Qn=new Map;function TE(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 aa(e,t,n=!1){let r=TE(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>=SE){let s=Qn.keys().next().value;s!==void 0&&Qn.delete(s)}return Qn.set(i,a),a}function IE(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function wE(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 bE(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 PE(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 bE(n,o,u,l?s:void 0)})}function ie(e,t,n,r){let i=e.args.map(o=>UE(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 ye("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 gE(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ye("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":sa(o,a)}case"RIGHT":{ye("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":hE(o,a)}case"INSTR":return ye("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ye(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 sa(o,a);let s=i[2]??" ";if(s==="")return o;let l=AE(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ye(e.func,i,2),iu(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 ye("REGEXP_LIKE",i,2,3),aa(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ye("REGEXP_REPLACE",i,3,5),IE(i[2]);let o=wE(i[4]),a=aa(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):PE(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ye("REGEXP_SUBSTR",i,2,3),aa(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ye("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 mi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return mi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return mi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ye("TRUNCATE",i,1,2),mi("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 DE(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 ye(e.func,i,1,1),hi(i[0])?String(la(i[0])+1):"";case"QUARTER":return ye(e.func,i,1,1),hi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ye(e.func,i,1,1),hi(i[0])?String(su(i[0])):"";case"DATE_FORMAT":return CE(i[0]??"",i[1]??"");case"DATEDIFF":return OE(i[0]??"",i[1]??"");case"DATE_ADD":return LE(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ye("LAST_DAY",i,1,1),_E(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 ye(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 la(e){return Ai(e).getUTCDay()}function au(e){let t=Ai(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function NE(e){return au(e).getUTCFullYear()}function su(e){let t=au(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 CE(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(la(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][la(e)]:"";case"%v":return l?String(su(e)).padStart(2,"0"):"";case"%G":return l?String(NE(e)).padStart(4,"0"):"";default:return p}})}function OE(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 LE(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 _E(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 DE(e,t){if(/^-?\d+$/.test(t.trim()))return vE(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 vE(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 UE(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 $E(e,t);case"LOGICAL":return GE(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=yu(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=FE(e.left,a,i);return ME(e.op,o,e.right,t,a,n,s,i)}function ME(e,t,n,r,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(BE(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=KE(t,p,i);return e==="IN"?u:!u}if(e==="LIKE"){let p=ua(n,r,o);return Ru(t,p)}if(e==="NOT_LIKE"){let p=ua(n,r,o);return!Ru(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=ua(n,r,o,s);return vt(e,t,l,a)}var uu=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function FE(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(uu.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(uu.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 cu=new Set(["CHECK_BOX","MULTI_SELECT"]),pu=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),xE=new Set(["CREATOR","MODIFIER"]);function KE(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(cu.has(n)||pu.has(n)||xE.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return cu.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):pu.has(n)?!Array.isArray(i)||!i.every(du)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):du(i)?t.has(i.code):r()}function du(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function BE(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 $E(e,t){let n=yu(e.field,t);return e.not?n!=="":n===""}function GE(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 yu(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 mn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return et(t,i)}function ua(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 VE(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 Eu(i.result,t,n,r);return e.elseResult!==null?Eu(e.elseResult,t,n,r):""}function lu(e,t,n,r){for(let i of e.branches)if(J(i.condition,t,n,void 0,r))return fu(i.result,t,n,r);return e.elseResult===null?null:fu(e.elseResult,t,n,r)}function fu(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 Eu(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 VE(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,WE=200;function Ru(e,t){if(!Ll(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>=WE&&Si.clear(),Si.set(t,n)}return n.test(e)}function gn(e){return hu(e)}function mu(e){return hu(e.flatMap(t=>t.rules.map(n=>n.condition)))}function hu(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 pa(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 HE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),YE=new Set(["CHECK_BOX","MULTI_SELECT"]);function wi(e,t=new Map){let n=e.values.map(r=>jE(e.fields,r,t));return rr(n,100).map(r=>({app:e.appId,records:r}))}function jE(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){pa(e.where);let t=_u(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 Tu(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 da(e){pa(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Iu(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?An(n,t):n.type==="STRING_FUNC"?fa(n,t):n.type==="CASE_VALUE"&&wu(n.expr,t);return _u(e).forEach(n=>t.add(n)),{app:e.appId,query:$(e.where),fields:["$id",...t],totalCount:!1}}function Iu(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"?Iu(e,t):e.type==="STRING_FUNC"&&fa(e,t)}function fa(e,t){for(let n of e.args)zE(n,t)}function zE(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ca(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"){fa(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"&&wu(e,t)}function ca(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&JE(e.arg,t);return}e.type==="AGG_ARITH"&&(ca(e.left,t),ca(e.right,t))}function JE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?er(e,t):An(e,t)}function gu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){er(e,t);return}An(e,t)}}function wu(e,t){for(let n of e.branches)Ii(n.condition,t),gu(n.result,t);e.elseResult!==null&&gu(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 Ea(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=bu(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:Ra(p,a,n.get(l),i)};return{id:o,record:s}});return rr(r,100).map(i=>({app:e.appId,records:i}))}function Ra(e,t,n,r){if(e.type==="ARITH")return String(r?ma(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 XE=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=bu(i),l={};for(let{field:p,value:u}of e.assignments){let d=n.get(p);if(u.type==="SOURCE_FIELD"){if(XE.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(ma(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 bu(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ma(e,t){let n=Au(e.left,t),r=Au(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 Au(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return ma(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 Pu(e){return pa(e.where),{app:e.appId,query:$(e.where),fields:["$id"],totalCount:!1}}function Nu(e,t){return rr(t,100).map(n=>({app:e,ids:n}))}function Cu(e){return HE.has(e??"")}function QE(e){return YE.has(e??"")}function ZE(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 eR(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Ou(e,t){return Cu(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):QE(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?ZE(e):t==="DATE"?eR(e):e}function Lu(e,t){return Cu(t)?e.map(n=>({code:n})):e}function Su(e,t,n){return e.type==="ARRAY"?Lu(e.elements.map(r=>r.value),n):e.type==="STRING"?Ou(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 _u(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 Su(r.result,t,n);return e.elseResult!==null?Su(e.elseResult,t,n):""}function tt(e,t){let n=ha(e,t);if(!n.ok)throw new z(n.message);return n.value}function ha(e,t){try{return{ok:!0,value:tR(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function tR(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 Ou(e.value,t);case"NUMBER":return G(e);case"ARRAY":return Lu(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 ga=new Set(["CHECK_BOX","MULTI_SELECT"]),nR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ir(e){throw new Error(`ArgumentError: ${e}`)}function Du(e,t,n){let r=rR(n.fieldType,e.field),i=iR(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let h=m.value;h!==""&&(m.kind==="ADD"?(s.has(h)||a.push(h),s.add(h)):l.add(h))}for(let m of s)l.has(m)&&ir(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let p=i.filter(m=>!l.has(m)),u=a.filter(m=>!o.has(m)),d=[...p,...u],c=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let h=m.kind==="ADD"?f:E,g=!h.has(m.value);return h.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&g&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),y=ga.has(r)?d:d.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:y,addedValues:u.length,removedValues:c,changedValues:u.length+c}}function rR(e,t){return ga.has(e)||nR.has(e)?e:ir(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function iR(e,t,n){if(!Array.isArray(e))return ir(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ga.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 Ta(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)Aa(s.field,null,r),oR(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(bl(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)Aa(c.field,s.field,r,u),Sa(c.value,s.field,r,u);d.selector.kind==="WHERE"&&Sa(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),Aa(f,s.field,r,u)}else d.kind==="REMOVE"&&d.selector.kind==="WHERE"&&Sa(d.selector.where,s.field,r,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function oR(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 Aa(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 Sa(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]=xu(i?.value);return n}function Uu(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??nt(t,r),o=ba(n.$id?.value,"APPLY snapshot $id"),a=Ta(t);return o!==a&&V(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Mu(t,n,i,o)}function ku(e,t,n,r=nt(e,n)){let i=new Set;return t.map(o=>{let a=ba(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&V(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Mu(e,o,r,a)})}function Mu(e,t,n,r){let i=ba(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(Du(u,t[u.field]?.value,P));continue}let d=n.childrenByTable.get(u.field),c=pR(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=[],y=[],m=[],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=Ia(L,d,u.field);m.push({kind:"APPEND",addedRows:A.length}),y.push(...A);continue}if(L.kind==="REMOVE"){let A=lR(L,c,E,u.field);L.expectRows&&vu(L.expectRows,A.length,r,u.field,P,L.kind),m.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=sR(L,c,E,u.field);L.expectRows&&vu(L.expectRows,U.length,r,u.field,P,L.kind),m.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)??{}}}]),...y],v={table:u.field,operations:m,changedSubtableRows:w.size+S.size+y.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}}),...y.map(P=>({value:P.value}))]})}let s=dR(t),l={};for(let u of e.assignments){let d=n.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:Ra(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 vu(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 Ia(e,t,n){return e.values.map(r=>({value:aR(e,r,t,n)}))}function aR(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?wa(a):s.type==="CASE_VALUE"?gt(s.expr,{},a.fieldType):tt(s,a.fieldType)}}return o}function wa(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 sR(e,t,n,r){return Fu(e.selector,t,n,r)}function lR(e,t,n,r){return Fu(e.selector,t,n,r)}function Fu(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=uR(i);a!==null&&o.length===0&&V(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=cR(i);return s!==null&&o.length===0&&V(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function uR(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 cR(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 pR(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 ba(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&V(`${t} must be a positive integer.`),n}function dR(e){let t={};for(let[n,r]of Object.entries(e))t[n]=xu(r?.value);return t}function xu(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),fR(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Ku(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 fR(e){let t=Pa(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(Pa(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=Pa(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)=>!Na(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 Pa(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 Na(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)=>Na(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)&&Na(n[a],r[a]))}function Bu(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 $u(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Bu(t.digits,"digits",1,30),r=Bu(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 Gu(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 ER=new Set(["CHECK_BOX","MULTI_SELECT"]),RR=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=yR(e);if(i!==""&&!mR(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:hR(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}=Gu(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)&&RR.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 yR(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 mR(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=ha(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(ER.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 hR(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 Ca(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(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 Oa(e,t,n,r,i,o,a,s=[],l=!0,p=!0,u={}){let d=new Map(i.map(y=>[y.code,y])),c=[],f=new Set,E=[];u.validateUpdateBuiltIns===!1&&Ca(e,r,i);let R;for(let y of e){y.record??(y.record={});let m=p?[...y.preErrors]:[],h=[],g=[],S=y.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let O of r){if(!y.payload.has(O))continue;let v=y.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?y.record[O]={value:L?v:U.value}:h.push({field:O,code:U.code,message:U.message})}if(l&&y.mode==="create")for(let O of i){if(O.inSubtable||y.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=y.evaluationRow??Object.fromEntries([...y.payload].map(([L,U])=>[L,Ge(U)])),v=y.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??(R=L)}}let N=O=>O.map(v=>{let P={};for(let L of n)P[L]=Ge(y.payload.get(L));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(y.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:y.rowNumber,preErrors:N(m),builtInErrors:N(h),checkErrors:N(g)};E.push(w);let _=[...w.preErrors,...w.builtInErrors,...w.checkErrors];_.length>0&&f.add(y.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 La(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 gR(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 AR(e){return e.fieldType==="NUMBER"||gR(e)}function Ui(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function _a(e,t){let{topByCode:n,childrenByTable:r}=La(t),i=AR;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,y])=>R!==l.subtableCode&&y.some(m=>m.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 SR=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=La(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!SR.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=TR(e),s=[],l=new Set,p=[...t.payloadFields,...ur],u=Ge(e.$id?.value),d=(c,f,E,R)=>{l.add(i);let y={};for(let m of t.payloadFields)y[m]=m==="$id"?u:Ge(e[m]?.value);y.$err_statement=String(r),y.$err_operation=o,y.$err_row=String(i),y.$err_field=c.code,y.$err_code=E.code,y.$err_message=E.message,y.$err_value=lr(f,c.fieldType),y.$err_subtable=R?.subtable??"",y.$err_subrow=R?String(R.subrow):"",y.$err_subrow_id=R?.subrowId??"",s.push(y)};for(let c of t.topLevel){let f=e[c.code]?.value,E=Ie(f,c,n);E.ok?a[c.code]={value:Vu(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 y=0;y<E.length;y++){let m=E[y],h=R[y];for(let g of f){let S=m.value?.[g.code]?.value,N=Ie(S,g,n);N.ok?(h.value??(h.value={}),h.value[g.code]={value:Vu(S,g.fieldType,N.value)}):d(g,S,N,Ui(c,y,m))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Vu(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 TR(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;Wu(o,"dmlMaxRows"),Wu(a,"dmlMaxSubtableRows");for(let g of n)_i(g);let l=ku(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 y=l.map((g,S)=>Oi(g,c[S].normalizedRecord)),m=y.flatMap(g=>ar(g).records),h=c.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return Hu({plans:y,records:m,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Wu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}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)}var Da=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)Yu(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),Yu(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 IR(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=>Ia(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||Da.has(d.fieldType)||(p[d.code]=s[d.code]??{value:wa(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;ju(r,"dmlMaxRows"),ju(i,"dmlMaxSubtableRows");let a=e.metadata??Mi(t,n),s=IR(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!Da.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 y=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:_}}),m=y.map(S=>S.record),h=[];for(let S=0;S<m.length;S+=100)h.push({app:t.appId,records:m.slice(S,S+100)});let g=c.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return qu({applyBlocks:t.applyBlocks??[],candidates:y,records:m,batches:h,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Yu(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||Da.has(i.fieldType))return We(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function ju(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 qu(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))qu(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;zu(i,"dmlMaxRows"),zu(o,"dmlMaxSubtableRows"),CR(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),p=wR(t,s.map(m=>m.sourceRowIndex)),u=await cr({statement:p,fieldInfos:r,metadata:Mi(p,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),d=[],c=new Set;for(let m of l){let h=m.targetId;c.has(h)&&va(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),c.add(h),m.snapshot||va(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let g=Number(m.snapshot.$id?.value);g!==h&&va(`UPSERT APPLY snapshot $id ${g} does not match target $id ${h}.`);let S=bR(t,m.sourceRowIndex,h),N=S.applyBlocks?.length?nt(S,r):PR(r);d.push(await ki({statement:S,snapshots:[m.snapshot],fieldInfos:r,metadata:N,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=NR(d,i,o),E=u.guards.parentRows+f.guards.parentRows,R=u.guards.subtableRows+f.guards.subtableRows,y=E>i||R>o;if(!t.validateOnly){let m=[...u.validations.flatMap(h=>h.errors),...f.validations.flatMap(h=>h.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u.validations[0]?.columns??f.validations[0]?.columns??[],errors:m})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Ua({create:u,update:f,createBatches:u.batches,updateBatches:OR(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:y,create:u.guards,update:f.guards}})}function wR(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function bR(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 PR(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function NR(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 Ua({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 CR(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 OR(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 zu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function va(e){throw new Error(`ArgumentError: ${e}`)}function Ua(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))Ua(n,t);return Object.freeze(e)}function dr(e){return Tn("UPDATE",[Zu(e)])}function ka(e){return Tn("INSERT",[Qu(e)])}function Ma(e){return Tn("UPSERT",[Qu(e.create),Zu(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 Qu(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 Zu(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:Xu(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:Xu(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 Xu(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=>LR(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 LR(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 ec(e,t,n){cn("phase10c");let r=Ku(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 tc(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 nc(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 _R(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 rc(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 _R(i)?!0:Object.values(i).some(n)};return n(e)}function ic(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 Ae(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:al(i),metrics:o}}var De=["=","!=",">","<",">=","<="],DR=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),vR=new Set(De),UR=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"])]]),MR=["=","!=","in","not in"],FR=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(MR)]]),xR=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"])]]),sc=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"]),lc=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function KR(e){return FR.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 BR(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?xa():VR(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return xa();case"GROUP":return Er(e.expr,t);case"NOT":{let n=Er(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:cc(n.reasons)?yr({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 HR(e.op,n,r)}}}function BR(e,t,n,r){if(n.type==="KINTONE_FUNC"&&j(n.name))return $R(e,t,n,r);if(n.type==="KINTONE_FUNC"&&oc(n))return ac(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?ac(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 xa();let i=r(t);if(!i)return In("WHERE_FIELD_UNRESOLVED",t.field,void 0,Rr(e));let o=Rr(e);if(!uc(i.fieldType,o))return In("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!WR(i.fieldType,e))return In("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=KR(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||oc(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 oc(e){return e.type==="KINTONE_FUNC"&&Nt.has(e.name)}function ac(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=UR.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 $R(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?GR(n)?vR.has(i)?!DR.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 GR(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 VR(e,t,n){let r=n(e);return r?uc(r.fieldType,t)?!sc.has(r.fieldType)&&!lc.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 uc(e,t){let n=xR.get(e);return n===void 0||n.has(t)}function WR(e,t){return sc.has(e)?!0:lc.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 HR(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?yr({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")?yr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):yr({capability:"LOCAL_ONLY",reasons:r})}function xa(){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 yr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function fr(e,t,n,r,i){return pc({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function cc(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&j(t.functionName))}function YR(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Nt.has(t.functionName))}function pc(e){if(e.capability==="EXACT_PUSHDOWN"||!cc(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 jR(e){if(e.capability==="EXACT_PUSHDOWN"||!YR(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 yr(e){return jR(pc(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"]),JR=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)?fc(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"}):fc(n[0],e.field)}function Ba(e,t){if(e.left.type!=="FIELD")return mr();let n=bn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return mr();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 mr();let o=ty(e,n,r);return o==="unsafe"?mr():Object.freeze({relation:o,owner:n})}function Ec(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 Rc(e,t){let n=new Set;xt(e,n);let i=(e===null?[]:hc(wn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=XR(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(ey(e,t)),fetchQueriesByAlias:new Map,...o})}function yc(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))||mc(ZR(e))!==e.allKlikes.length))}function XR(e,t){if(e===null)return dc(null);let n=Object.freeze([...le(e)]);if(n.length===0)return dc(e);let r=QR(e,t,n);if(r!==null)return r;let i=Wi(e),o=[],a=new Set;for(let d of i){let c=Ec(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 QR(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),mc(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=Ec(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ba(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 dc(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 mc(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function ZR(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function ey(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}Ba(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Tc(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 Ka(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 Ka(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ka(t,"predicate shape is outside the Phase A serializer contract")}}function Ka(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=Ba(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 hc([...n,...r]);if(Tc(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:gc(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 hc(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:gc(i.relation,n.relation)}}return t}function ty(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 ny(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===">")&&Ac(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"||JR.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?Sc(e.right.value)?"superset":"unsafe":n==="TIME"?ry(e.right.value)?"superset":"unsafe":iy(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 fc(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function mr(){return Object.freeze({relation:"unsafe"})}function qi(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function gc(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function ny(e){return e.type==="NUMBER"&&Ac(e)&&e.value>0}function Ac(e){return/^-?\d+$/.test(G(e))&&Number.isSafeInteger(e.value)}function Sc(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 ry(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function iy(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Sc(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 Tc(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 $a(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 oy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function ay(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=oy(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"&&!ay(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 sy=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 ly(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(ly(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}sy.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 Ic(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 Ga(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 wc=["$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 bc(e){return e.startsWith("_")||e.startsWith("$")}var uy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Wa(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Wa);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?uy.test(t.field):Object.values(t).some(Wa)}function cy(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)||Wa(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var py=["_pid","_rid","_idx"];function Va(e){return[...new Set(e)]}function dy(e){switch(e.kind){case"APP":return Va([...e.fieldCodes,...wc]);case"SUBTABLE":return Va([...e.childFieldCodes,...py,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Va(e.columns)}}function Pc(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:dy(t(r,i))}))}function fy(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 Ey(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Ry(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function yy(e,t,n){let r=fy(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:Ey(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>Ry(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=cy(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&&Se(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Nc(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?yy(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 my(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(Cc(e,a,r.leftColumns),Cc(t,s,r.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let R=E[a]??"",y=d.get(R);y?y.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]??"",y=d.get(R)??[];if(y.length>0)for(let m of y)f.push({...m,...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 Cc(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 hy(e,t,n,r,i){return t===null?e:e.filter(o=>J(t,o,n,r,i))}function kc(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 gy(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)=>Sy(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&&kc(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[Ja(u.expr)]=String(re(u.expr,l[0])):u.type==="FUNC_KEY"&&(p[St(u.expr)]=ie(u.expr,l[0]));Mc(p,l,n,r),s.push(p)}return s}function Ay(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=Oc(E,c),y=f.children.get(R);y||(y={children:new Map},f.children.set(R,y)),f=y}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,Oc(R,c[0]));for(let R of t.allItems){let y=E.get(R.canonicalId)??"";f[R.directKey]=y,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=y)}Mc(f,c,n,r),ql(f,d),o.push(f)}}return o}function Oc(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Mc(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=Se(i.func,i.distinct,i.arg),a=String(Ya(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=Xa(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 Sy(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 Ya(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"?Fc(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 y of a)f.set(y,(f.get(y)??0)+1);let E="",R=0;for(let[y,m]of f){if(m>R){E=y,R=m;continue}if(m!==R)continue;let h=Dt(y,E,d);(h<0||h===0&&mt(y,E)<0)&&(E=y)}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 y=Dt(R,E,d);(e==="MAX"&&y>0||e==="MIN"&&y<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,y)=>R-y),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,y=0,m=0;for(let g of c){let S=g-E;R++;let N=S-y;y+=N/R,m+=N*(S-y)}let h=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function Ty(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(Ya(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 Fc(e,t){if(e.type==="FIELD_REF")return t?.(Ty(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=>Fc(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 Iy(e,t,n,r){return t===null?e:e.filter(i=>J(t,i,n,void 0,r))}function wy(e,t,n,r,i){if(e.length===0)return e;let o=by(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 by(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(Ly(t,a,o))}function ja(e,t,n,r,i,o){return t.length===0?e:xc(e,t,n,r,i,o).rows.map(a=>a.row)}function xc(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(Kc.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:Cy(u,p,o)}))})),l=(p,u)=>Py(p,u,t,a);return s.sort(l),{rows:s,compare:l}}function Py(e,t,n,r){for(let i=0;i<n.length;i++){let o=Ny(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Ny(e,t,n){return Dt(e.s,t.s,n.semantics)}var Kc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Cy(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 mn(e.ref,t)}}function qa(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=Se(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=>mn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function za(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=>Oy(l,d))),u=s.get(p);u?u.push(l):s.set(p,[l])}for(let l of s.values()){let p=xc(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 Oy(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=Se(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 mn(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 Ly(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=vc(_c(E),a),y=Zi(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof y!="string")for(let[h,g]of y.entries)g!==null&&(m[h]=g);return m}),f=c.length>0?Object.keys(c[0]):[...i??[]];return{rows:c,columns:f}}let s=vy(t),l=t.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD"),p=l?null:_y(t,s),u=p??[];return l&&e.length===0?{rows:[],columns:Dy(t,s)}:{rows:e.map((c,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(vc(_c(c),a)),parentWildcardKeys:Object.keys(c).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let h=Zi(m,c,y,R);switch(m.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?.[y]??m.alias??s.get(y)??m.field;E[g]=h,p===null&&f===0&&u.push(g);break}case"LITERAL_COL":{let g=p?.[y]??m.alias??`'${m.value}'`;E[g]=h,p===null&&f===0&&u.push(g);break}case"AGGREGATE":{let g=Se(m.func,m.distinct,m.arg),S=p?.[y]??m.alias??g;E[S]=h,p===null&&f===0&&u.push(S);break}case"ARITH_AGG_COL":{let g=p?.[y]??m.alias??Cn(m.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"ARITH_COL":{let g=p?.[y]??m.alias??Ja(m.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"CASE_COL":{let g=p?.[y]??m.alias??"case";E[g]=h,p===null&&f===0&&u.push(g);break}case"GROUPING_COL":{let g=p?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[g]=h,p===null&&f===0&&u.push(g);break}case"STRFUNC_COL":{let g=p?.[y]??m.alias??St(m.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"SCALAR_VALUE_COL":{let g=p?.[y]??m.alias??Ye(m.expr);E[g]=h,p===null&&f===0&&u.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=p?.[y]??m.alias??"(subquery)";E[g]=h,p===null&&f===0&&u.push(g);break}case"WINDOW_COL":{let g=p?.[y]??m.alias;E[g]=h,p===null&&f===0&&u.push(g);break}}}return E}),columns:u}}function _y(e,t){return e.map((n,r)=>Bc(n,r,t))}function Dy(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=Bc(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function Bc(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??Se(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Cn(e.expr);case"ARITH_COL":return e.alias??Ja(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 vy(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Lc(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=Lc(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 Lc(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function _c(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Ja(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 Uy(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=>Dc(t.result))||e.elseResult!==null&&Dc(e.elseResult):!1}function Dc(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:At(e)}function Sr(e){return e.args.some(t=>Uy(t))}function ky(e,t,n){if(e.type==="AGG_REF"){let r=Ya(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"?Xa(e,t,n):eo(e,t,n)}function eo(e,t,n){return e.type==="STRING_FUNC"?Xa(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 Xa(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>ky(r,t,n))}}function vc(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 Uc(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Ha(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function My(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(Kc.has(n.expr.func)?"number":"string")));return t}function Qa(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:y,plainGroupByPlan:m}=e,h=My(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=Ha(Uc(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=Ha(Uc(E?.get(P),P),void 0,U);g=my(g,U,v,{leftColumns:w,rightColumns:A}),w=Ha(w,A,g)}let _=e.residualWhere!==void 0?e.residualWhere:t.where;g=hy(g,_,s,c,l);let O=Z(t);if(O.type==="GROUPING_SETS"){if(!y)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=Ay(g,y,t.columns,d,{maxGeneratedRows:5e4})}else(O.type==="PLAIN"||kc(t.columns))&&(g=gy(g,O.type==="PLAIN"?O.allItems:[],t.columns,d,O.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=Iy(g,t.having,p,u),g=za(g,t.columns,i,o,h),t.distinct&&(g=wy(g,t.columns,r,s,l)),g=ja(g,t.orderBy,i,o,h,qa(t.columns,r,s,l)),g=to(g,t.limit,t.offset),no(g,t.columns,r,s,f,l,R)}function $c(e,t){let n=[];for(let r of e){let i=Za(r.$id?.value),o=Fy(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=Za(u?.value);l[`_p.${p}`]={value:d}}for(let[p,u]of Object.entries(s.value??{}))l[p]={value:Za(u?.value)};n.push(l)}}return n}function Fy(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Za(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 Gc(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Vc(e,t){let n=Tr(e);for(let[r,i]of Object.entries(t))n[r]=Tr(i);return n}function Wc(e){let t=[...e.preErrors.map(i=>es(i)),...e.postImageErrors.map(i=>es(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>es(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 es(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 Yc(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 ns(e){return Yc(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=ns(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 Hc(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 jc(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":Hc(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Hc(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":jc(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=ns(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=ns(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=Yc(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 rs(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 xy(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 Ky(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function By(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 ts(e,t){let n=e.functionNames[0],r=rn(n)?Xe:Ct,i=By(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function qc(e,t){let n=[];jc(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let u=Ky(i);return r.push(u),{hasRelativeDate:i.functionNames.some(j),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ts(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),y,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let N=await t.prefilterDecomposition(u);N?.eligible===!0&&rs(u,N)&&(y=N.plan,m=!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&&(y=h.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let N=await t.joinServerFunctionPlan(u);N!==null&&xy(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,...y?{prefilterPlan:y,phase2PrefilterEligible:m}:{},...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:ts(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:ts(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(j)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function zc(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 is(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=$y(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Gy(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=Wy(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=Vy(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 y=d.map(g=>lo(g));if(!u(R,[...new Set(y)])||!Hy(R,y))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):so(e.where,f);if(m!==null&&br(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let h=new Set;for(let g of y)h.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:d,relativeFunctionNames:h,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function $y(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 Gy(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 Vy(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 Wy(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 Hy(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 Yy(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 jy(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
5
  `){p==="\r"&&e[a+1]===`
6
- `&&a++,l(),a++;continue}n+=p,a++}if(i)throw new M("unterminated quoted cell.");return(n.length>0||r.length>0||o)&&l(),t}function _m(e){let t=new Set;e.forEach((r,n)=>{if(r==="")throw new M(`CSV column ${n+1} has an empty name.`);if(t.has(r))throw new M(`CSV column name "${r}" is duplicated.`);t.add(r)})}function eo(e,t){let r=Lm(Om(e,t.encoding)),n,i;if(t.hasHeader?(n=r[0]??[],i=r.slice(1)):(i=r,n=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),_m(n),i.length===0)throw new M("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==n.length)throw new M(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${n.length}.`)}),{columns:n,rows:i}}var Dm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),vm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),gn=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 Mc(e,t,r){if(!Dm.has(t??""))return e;if(e==="")return[];let n=e.split(/\r\n|\n/);if(n.some(i=>i===""))throw new gn;return vm.has(t??"")?n.map(i=>({code:i})):n}function it(e,t,r,n){throw new M(`JSON ${e} (offset=${t}, line=${r}, column=${n}).`)}function xc(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new M("JSON source is not valid UTF-8.")}}function Fc(e){let t=[],r=0,n=1,i=1,o=()=>{let s=e[r++];return s===`
7
- `?(n++,i=1):i++,s},a=()=>({offset:r,line:n,column:i});for(;r<e.length;){let s=e[r];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(;r<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&it("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){c+=E;continue}r>=e.length&&it("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"&&it(`has invalid escape \\${R}`,r-2,n,Math.max(1,i-2));let y=e.slice(r,r+4);/^[0-9a-fA-F]{4}$/.test(y)||it("has invalid unicode escape",r,n,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(y,16);if(h>=55296&&h<=56319){(e.slice(r,r+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(r+2,r+6)))&&it("has an unpaired high surrogate",r,n,i),o(),o();let g=e.slice(r,r+4);for(let O=0;O<4;O++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&it("has an invalid surrogate pair",r-4,n,Math.max(1,i-4)),c+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?it("has an unpaired low surrogate",r-4,n,Math.max(1,i-4)):c+=String.fromCharCode(h)}f||it("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:c,...l});continue}let p=e.slice(r),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}it(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:r,line:n,column:i}),t}function to(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function ro(e){if(e.byteLength===0)throw new M("JSON source is empty.");let t=Fc(xc(e)),r=0,n=(p,u=t[r])=>{throw new M(`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[r];(u.kind!=="punct"||u.value!==p)&&n(`expected ${p}; found ${to(u)}`,u),r++},a=()=>{let p=t[r++];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[r],"}"))return r++,u;for(;;){let d=t[r++];if(d.kind!=="string")return n(`object key must be a string; found ${to(d)}`,d);let c=d.value;u.has(c)&&n(`duplicate key ${JSON.stringify(c)}`,d),o(":"),u.set(c,a());let f=t[r];if(i(f,"}")){r++;break}o(",")}return u}if(p.kind==="punct"&&p.value==="["){let u=[];if(i(t[r],"]"))return r++,u;for(;;){u.push(a());let d=t[r];if(i(d,"]")){r++;break}o(",")}return u}return n(`expected a value; found ${to(p)}`,p)},s=a();t[r].kind!=="eof"&&n(`has trailing data; found ${to(t[r])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:n("root must be an object or array.",t[0]);if(l.length===0)throw new M("JSON source contains no records.");return l.forEach((p,u)=>{if(!(p instanceof Map))throw new M(`JSON record ${u+1} must be an object.`)}),l}var Um=new Set(["CHECK_BOX","MULTI_SELECT"]),Kc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ye(e,t,r){throw new M(`JSON field validation failed (row=${e}, field=${t}): ${r}`)}function km(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Mm(e,t,r){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ye(r,t.code,"boolean is not accepted."),km(e)){t.fieldType==="NUMBER"&&Ye(r,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ye(r,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||Ye(r,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ye(r,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ye(r,t.code,"unsupported value type."),!Um.has(t.fieldType)&&!Kc.has(t.fieldType)&&Ye(r,t.code,"array is accepted only for multi-value fields.");let n=e.map(i=>(typeof i!="string"&&Ye(r,t.code,"array elements must be strings."),i));return new Set(n).size!==n.length&&Ye(r,t.code,"array elements must not contain duplicates."),Kc.has(t.fieldType)?JSON.stringify(n.map(i=>({code:i}))):JSON.stringify(n)}function qa(e,t,r,n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let i=ro(t.bytes);if(i.length>n)throw new M(`source rows (${i.length}) exceed maxRecords (${n}).`);let o=new Map(r.map(l=>[l.code,l]));if(o.size!==r.length)throw new M("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let c of l.keys())o.has(c)||Ye(p+1,c,"unknown key (not declared in INTO).");let u={},d=new Set;for(let c of r)l.has(c.code)&&(d.add(c.code),u[c.code]=Mm(l.get(c.code),c,p+1));a.push(u),s.push(d)}),{rows:a,columns:r.map(l=>l.code),columnMeta:new Map(r.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function za(e,t,r,n,i,o){let a=eo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>r)throw new M(`source rows (${a.rows.length}) exceed maxRecords (${r}).`);if(e.mappingMode==="BY_NAME"){if(!n||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(n).size!==n.length)throw new M("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 n)if(!l.has(y))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let p=new Map(i.map(y=>[y.code,y])),u=new Set(n);if(o&&u.has(o))throw new M("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new M(`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 M(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let y of n){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 n){let O=y[l.get(S)];try{g[S]=Mc(O,p.get(S)?.fieldType,{cliKintone:!0})}catch(P){if(!(P instanceof gn))throw P;g[S]=O,h.push({field:S,code:P.code,message:P.message})}}return R.push(h),g}),columns:[...n],columnMeta:new Map(n.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:[...n],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 An=(e,t,r)=>{throw new M(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${r}`)};function Bc(e,t,r,n,i=n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let o=ro(t.bytes);if(o.length>n)throw new M(`source parent rows (${o.length}) exceed maxRecords (${n}).`);let a=new Map(r.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==r.length)throw new M("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)||An(u,E,"unknown key (not declared in INTO).");let d=new Map,c=new Map,f=new Set;for(let E of r){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&&An(u,R,"object is not accepted for a top-level field."),d.set(R,m);continue}Array.isArray(m)||An(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||An(u,R,`childRow=${S+1} must be an object.`);let O=g;for(let P of O.keys())y.has(P)||An(u,P,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new M(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:O}});c.set(R,h)}return{rowNumber:u,top:d,subtables:c,replacementTables:f}})}}function $c(e,t,r,n,i,o){let a=eo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new M('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 M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=r.filter(c=>c.kind==="FIELD"),p=r.filter(c=>c.kind==="SUBTABLE");for(let c of l)if(!s.has(c.field))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${c.field}" is missing.`);for(let c of p){if(!c.rowIdSourceHeader||!s.has(c.rowIdSourceHeader))throw new M(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${c.subtableCode} is missing.`);for(let f of c.children)if(!s.has(f))throw new M(`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 M(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new M(`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(n),...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 M(`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 M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new M(`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 M("CSV has no parent rows.");return{records:u}}var xm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Fm=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Qa(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Hc(e,t,r,n,i){let o=new Map(r.filter(c=>!c.inSubtable).map(c=>[c.code,c])),a=new Map;for(let c of r)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)Gc(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)Gc(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=>Km(c,s,l,o,a,n,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 Km(e,t,r,n,i,o,a,s){let l=[],p={};for(let c of t)e.top.has(c.field)&&Ja(e.top.get(c.field),n.get(c.field),o,p,c.field,l,Xa(e,a,c.field));let u={};if(a==="INSERT")for(let c of n.values())c.fieldType==="SUBTABLE"||c.writable===!1||e.top.has(c.code)||Vc(c,o,u,l,Xa(e,a,c.code));let d=new Map;for(let c of r){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),O=Xa(e,a,g,c.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?Ja(R.values.get(g),S,o,y,g,l,O):Vc(S,o,y,l,O)}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 Gc(e,t,r){if(!t)throw new Error(r?`ArgumentError: IMPORT child ${e} does not belong to subtable ${r}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||r&&Fm.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${r?`child ${r}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Vc(e,t,r,n,i){let o=vt(e.defaultValue)?"":e.defaultValue;Ja(o,e,t,r,e.code,n,i,!vt(e.defaultValue))}function Ja(e,t,r,n,i,o,a,s=!1){let l=Bm(e),p=Se(l,t,r);p.ok?n[i]={value:$m(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function Bm(e){return Wc(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Wc(t)?t.lexeme:t):e}function Wc(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function $m(e,t){return xm.has(t.fieldType)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)}function Xa(e,t,r,n,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:r,...n?{subtable:n}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:n?e.subtables.get(n)?.[i-1]?.values??new Map:e.top}}var Za=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function es(e,t,r=1){return e.map(n=>{let i={};for(let o of t)i[o]=n.sourceValues.get(o)==null?"":Gm(n.sourceValues.get(o));return i.$err_statement=String(r),i.$err_operation=n.operation,i.$err_row=String(n.parentRow),i.$err_field=n.field,i.$err_subtable=n.subtable??"",i.$err_subrow=n.subrow==null?"":String(n.subrow),i.$err_source_row=n.sourceRow==null?null:String(n.sourceRow),i.$err_code=n.code,i.$err_message=n.message,i})}function Gm(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 ts(e,t,r){let n={};for(let[i,o]of e)n[i]={value:o};for(let[i,o]of t)n[i]={value:o.map(a=>({...r==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return n}function Yc(e,t){return ts(e,t,"DROP")}function jc(e){for(let t of e.records)for(let[r,n]of t.subtables)for(let i of n)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${r} does not accept _rid/id; rows are always newly numbered.`)}function qc(e,t,r){return e.map((n,i)=>{let o=t[i],a=o===void 0?void 0:r.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...n.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:n.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:n.top,subtables:n.subtables,tables:s}})}function Vm(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function zc(e){let t=new Map;for(let r of e)for(let[n,i]of r.subtables)for(let o of i){if(!o.rowId)continue;let a=`${n}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${n}`);t.set(a,r.rowNumber)}}function Xc(e,t,r,n,i){return t.map((o,a)=>{let s=e[a],l=r[a],p=l===void 0?void 0:n.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=Vm(p.record,f),R=new Set(E.map(P=>P.id).filter(P=>!!P)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],h=0,g=0,S=0,O=m.map((P,_)=>{let N=y[_]??{};return P.rowId&&R.has(P.rowId)?(h++,{rowId:P.rowId,record:N}):(P.rowId&&((i.get(P.rowId)??[]).some(I=>I.parentId!==l||I.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:P.rowId,subtable:f,subrow:P.childRowNumber,sourceRow:P.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${P.rowId}`,sourceValues:P.values}),S++),g++,{record:N})});d.set(f,O),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 rs="#__import_source";function Jc(e){return{...e,from:{appId:0,alias:null,cteName:rs}}}function Wm(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function ns(e,t){let r=e.map(Wm),n=new Set;for(let i of r)if(i!==null){if(n.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");n.add(i)}return{normalized:r,errors:r.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var Hm="\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",br=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"}},ge=new WeakMap;function Ip(e){return ge.get(e)}var Nr=new WeakMap,yo=new WeakMap,Qc=new WeakMap,Ym=1;function jm(e,t){if(t)return t;let r=Qc.get(e);return r||(r=`client:${Ym++}`,Qc.set(e,r)),r}async function ds(e,t,r={}){let n=Date.now(),i=jm(t,r.cacheContext),o=Ch(e,r.enableImport===!0),a=qm(),s=zm(t,a),l={aborted:!1},p=wp(s,l,!Xm(o)||Vu(o)),u=await Qm(o,p,r,i);a.elapsedMs=Date.now()-n;let d={...Jm(u,l),metrics:a};if(u.type==="SELECT"){let c=ge.get(u);c&&ge.set(d,c)}return d}function qm(){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 zm(e,t){return{getRecords:async r=>{t.getCalls+=1;let n=await e.getRecords(r);return t.fetchedRows+=n.records.length,n},openCursor:async r=>{t.cursorCreateCalls+=1;let n;try{n=await e.openCursor(r)}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:n.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await n.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await n.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))}}var Zc=Symbol("searchAbortFailClosed");function wp(e,t,r){return r&&e[Zc]?e:{...e,...r?{[Zc]:!0}:{},getRecords:async n=>{let i=await e.getRecords(n);if(i.searchAborted&&(t.aborted=!0,r))throw new br;return i}}}function Xm(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Jm(e,t){if(!t.aborted||e.type!=="SELECT")return e;let r=new Set(e.warnings??[]);return r.add(Hm),{...e,warnings:[...r]}}async function fs(e,t,r){return vc(e,{select:n=>On(n,t,r),dml:n=>Pp(n,t,r),prefilterDecomposition:async n=>{if(n.where===null)return null;let i=await Cr(n,t,r);return ja(n,i)}})}async function Qm(e,t,r,n){let i=await fs(e,t,n);e.type!=="EXPLAIN"&&Uc(i);let o=is(e);if(o!==null&&!ah(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Zn("phase15b",e),El("phase15b",e),dr(e),e.type!=="EXPLAIN"&&await sy(e,t,n),e.type==="IMPORT")return th(e,t,r,n);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return fp(e,t,r,n)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Wp(e,t,{...r,onLimitReached:"error"},n,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 ey(e,t,r,n);case"SELECT":return It(e,t,r,n,void 0,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"UNION":return Mp(e,t,r,n,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"WITH":return wy(e,t,r,n,void 0,r.captureColumnMeta===!0);case"INSERT":return Zy(e,t,r,n);case"INSERT_SELECT":return qp(e,t,r,n);case"UPSERT":return gh(e,t,r,n);case"UPSERT_SELECT":return Qp(e,t,r,n);case"UPDATE":return fp(e,t,r,n);case"DELETE":return hh(e,t,r,n);case"REORDER":return bh(e,t,r,n);case"SHOW_APPS":return Zp(t);case"DESCRIBE":return ed(e,t,n);case"EXPLAIN":return Dh(e,t,n,r.maxRecords??1e4,r.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?De(r.dmlMaxRows,"dmlMaxRows",lt):lt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te):Te,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 ny(e,t,r,n)}}var Es=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Rs=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ms(e){let t=[],r=new Set,n=o=>{r.has(o)||(r.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"&&n(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&n(a.field),Object.values(a).forEach(i)};return i(e),t}function Zm(e=!1){let t=e?Rs:Es;return new Map(t.map(r=>[r,{fieldType:r==="$id"||r==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:r==="$id"||r==="$err_count"?"number":"string",semantics:F(r==="$id"||r==="$err_count"?"number":"string")}]))}async function ey(e,t,r,n){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ty(e,t,r,n)}async function ty(e,t,r,n){let i=await Q(e.appId,t,n),o=new Map(i.filter(w=>!w.inSubtable).map(w=>[w.code,w])),a=new Set(i.filter(w=>w.inSubtable).map(w=>w.code)),s=Aa(e,i),l=e.checkGroups??[],p=Rr(l);for(let w of p){if(w.field!=="$id"&&!o.has(w.field)&&!a.has(w.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${w.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(w.field!=="$id"&&!o.has(w.field)&&a.has(w.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${w.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([w,U])=>[w,U.fieldType]));u.set("$id","RECORD_NUMBER"),Ht(e,u);let d=ms(e.where),c=[...new Set(["$id",...s.map(w=>w.subtableCode??w.field.code),...d,...p.map(w=>w.field)])];for(let w of d){if(w!=="$id"&&!o.has(w)&&!a.has(w))throw new Error(`ArgumentError: WHERE field ${w} does not exist in APP${e.appId}.`);if(w!=="$id"&&!o.has(w)&&a.has(w))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${w} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let f=s.some(w=>w.field.fieldType==="NUMBER")?await ze(e.appId,t,n):void 0,E=w=>w.field==="$id"?q({fieldType:"__ID__"}):o.get(w.field)?.semantics??(o.has(w.field)?q(o.get(w.field)):void 0),R=Le(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(R)}).`);let m=new Map([...o].map(([w,U])=>[w,U.fieldType])),y=new Map([...o.values()].flatMap(w=>w.optionOrder?[[w.code,new Set(Object.keys(w.optionOrder))]]:[])),h=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:sr(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:y,allowKlike:!1}),g=h===null?"":$(h),O=(await ye(t.getRecords,e.appId,g,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(w=>({id:String(w.$id?.value??""),record:w,flat:nt(w,null)})).filter(w=>e.where===null||X(e.where,w.flat,U=>u.get(U.field))),P=[],_=new Map,N=new Map,L=new Set,I=0,v=w=>{if(L.add(w.id),I+=1,e.summary){let W=JSON.stringify([w.id,w.subtable??"",w.field,w.code]),H=N.get(W);H?H.$err_count=String(Number(H.$err_count)+1):N.set(W,{$id:w.id,$err_subtable:w.subtable??"",$err_field:w.field,$err_code:w.code,$err_count:"1"});return}let U=JSON.stringify([w.id,w.subtable??"",w.field,w.code,w.message]),K=_.get(U);K?(K.$err_count=String(Number(K.$err_count)+1),w.subrow!==void 0&&(K.$err_subrow=`${K.$err_subrow},${w.subrow}`,K.$err_subrow_id=`${K.$err_subrow_id},${w.subrowId??""}`)):_.set(U,{$id:w.id,$err_field:w.field,$err_code:w.code,$err_message:w.message,$err_value:w.value,$err_subtable:w.subtable??"",$err_subrow:w.subrow===void 0?"":String(w.subrow),$err_subrow_id:w.subrowId??"",$err_count:"1"})},k=s.filter(w=>!w.subtableCode),A=new Map;for(let w of s){if(!w.subtableCode)continue;let U=A.get(w.subtableCode)??[];U.push(w),A.set(w.subtableCode,U)}for(let w of O){for(let U of k){let K=w.record[U.field.code]?.value,W=Se(K,U.field,f);W.ok||v({id:w.id,field:U.field.code,code:W.code,message:W.message,value:tn(K,U.field.fieldType)})}for(let[U,K]of A){let W=w.record[U]?.value;if(Array.isArray(W))for(let H=0;H<W.length;H++){let ue=W[H];for(let D of K){let x=ue.value?.[D.field.code]?.value,oe=Se(x,D.field,f);if(!oe.ok){let ve=Ni(U,H,ue);v({id:w.id,field:D.field.code,code:oe.code,message:oe.message,value:tn(x,D.field.fieldType),...ve})}}}}for(let U of Ri(l,w.flat,K=>u.get(K.field)))v({id:w.id,field:"",code:"ERR_CHECK",message:U.message,value:""})}if(e.summary)P.push(...N.values());else for(let w of _.values()){let U=Number(w.$err_count);w.$err_subtable!==""&&U>=2&&(w.$err_message=`${w.$err_message}\uFF08${U}\u884C: ${w.$err_subrow}\uFF09`),P.push(w)}let C={type:"SELECT",columns:[...e.summary?Rs:Es],rows:P,rowCount:P.length,validateStats:{errorRecords:L.size,errorCount:I}};return ge.set(C,Zm(e.summary===!0)),C}var St=1e4;function Tt(e,t,r,n,i,o){let a=e.get(t);if(a&&(a.columns.length!==r.length||a.columns.some((l,p)=>l!==r[p])||!ry(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+n.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...r],rows:[...s,...n],columnMeta:o})}function ry(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[r,n]of e){let i=t.get(r);if(!i||i.sortKind!==n.sortKind||i.fieldType!==n.fieldType||!ui(i.semantics,n.semantics))return!1}return!0}function is(e){if(Array.isArray(e)){for(let t of e){let r=is(t);if(r!==null)return r}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 r of Object.values(t)){let n=is(r);if(n!==null)return n}}return null}var Cn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Ir=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function ny(e,t,r,n,i){let o=await no(e.left,t,r,n,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?F("number"):F("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await no(e.low,t,r,n,i),p=await no(e.high,t,r,n,i);if(!_t(">=",o,l,a)||!_t("<=",o,p,a))throw new Cn(`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 no(e.right,t,r,n,i);if(!_t(e.op,o,s,a))throw new Cn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function no(e,t,r,n,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(os(e));case"SCALAR_SUBQUERY":try{return await iy(e.query,t,r,n,i)}catch(o){throw o instanceof Ir?new Cn(o.message):o}}}async function iy(e,t,r,n,i){let{query:o,probed:a}=oy(e),s=await Pn(o,t,r,n,i);if(s.columns.length!==1)throw new Ir(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Ir("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 Ir(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function oy(e){return Z(e).type!=="NONE"||e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function os(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=os(e.left),r=os(e.right);switch(e.op){case"+":return t+r;case"-":return t-r;case"*":return t*r;case"/":return t/r;case"%":return t%r}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function Cr(e,t,r,n,i=!1){let o=[e.from,...e.joins.map(c=>c.table)],a=i||We(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,r);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 Ns(c,t,r);R&&u.set(c,R)}));let d=(c,f,E)=>{if(f==="$id")return Er(q({fieldType:"__ID__"}),c.appId,"$id");if(E&&c.subtableCode){if(f==="_rid")return F("string");if(f==="_idx"||f==="_pid")return F("number")}let R=s.get(c.appId)?.get(Ee(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 Er(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=>_e(R)===c.tableAlias);return E?E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(c.field)?.semantics??F("string"):d(E,c.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?n?.get(e.from.cteName)?.columnMeta?.get(c.field)?.semantics??F("string"):d(e.from,c.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?n?.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=>oo(E,c.field)!==void 0))return f.length>1?F("string"):void 0}}function ys(e){let t=r=>{if(r===null||typeof r!="object")return!1;if(Array.isArray(r))return r.some(t);let n=r;return n.type==="CASE_WHEN"&&n.branches?.some(i=>We(i.condition))?!0:Object.values(n).some(t)};return e.columns.some(t)}function bp(e,t){let r=new Map;for(let n of e.columns){if(!("alias"in n)||!n.alias)continue;let i;n.type==="FIELD"?i=t(Ke(n.field)):n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?i=F("number"):n.type==="AGGREGATE"?n.func==="MIN"||n.func==="MAX"||n.func==="MODE"?n.arg.type!=="WILDCARD"&&(i=ws(n.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=n.func==="GROUP_CONCAT"?F("string"):F("number"):n.type==="STRFUNC_COL"?i=$t(n.expr).semantics:(n.type==="LITERAL_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="CASE_COL"||n.type==="SCALAR_VALUE_COL")&&(i=F("string")),i&&r.set(n.alias,i)}return n=>n.tableAlias===null&&r.has(n.field)?r.get(n.field):t(n)}async function On(e,t,r,n){if(e.where===null)return Le(null,()=>{});let i=await Cr(e,t,r,n);return Le(e.where,i)}function Kt(e){let t=e.reasons.find(n=>n.code==="WHERE_FIELD_UNRESOLVED"||n.code==="WHERE_OPERATOR_UNSUPPORTED"||n.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(n=>n!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function lo(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Pp(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let n=We(e.where)?await Q(e.appId,t,r):[],i=new Map(n.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Le(null,()=>{}):Le(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 wr(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let n=await Pp(e,t,r);if(n.capability!=="EXACT_PUSHDOWN")throw new j(`WHERE predicate cannot be represented by kintone REST (${Kt(n)})`)}async function It(e,t,r,n,i,o=!1,a=!1){let s;if(await ho(e,t,n,i),cy(e))return s=fy(e),o&&ge.set(s,await ss(e,s.columns,t,n,i,a)),s;let l=await hs(e,t,n,i);await td(e,t,r,n,i);let p=await On(e,t,n,i);if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(p)}).`);let u=be(e),d,c;if(p.capability==="SUPERSET_PREFILTER"){let g=await Cr(e,t,n,i),S=ja(e,g);S.eligible&&Ya(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=Yi({select:e,selectMode:u,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:Mt(e.where)})??void 0,c&&(d=c.prefilterPlan)}let f=p.capability==="EXACT_PUSHDOWN"?u:"FULL_SCAN",E=await _n(e,t,n,i),R=lo(e)?(e.orderMode==="KINTONE_NATIVE"?fn:dn)({stmt:e,staticMode:f,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:E.semantics,maxRecords:r.maxRecords??1e4,hasKlike:ae(e.where)}):null;await Ry(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,n);let m=Np(e,r,R),h=c!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?wp(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await Ey(e,h,m.effectiveOptions,n,R,E):s=await Iy(e,h,m.effectiveOptions,n,i,p.capability==="EXACT_PUSHDOWN"&&d===void 0,E,d,l)}catch(g){Cp(m,g)}return o&&ge.set(s,await ss(e,s.columns,t,n,i,a)),s}async function hs(e,t,r,n){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=n?.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,r);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=cc(e,(p,u)=>o[u]),s=e.groupBy,l=pc(s,e.columns,a);return ay(e,s,l),l}function ay(e,t,r){let n=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(n)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;r.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 Ln=new WeakMap;async function sy(e,t,r){let n=new Set,i=async o=>{if(o===null||typeof o!="object"||n.has(o))return;if(n.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await ho(o,t,r);for(let s of Object.values(a))await i(s)};await i(e)}async function ly(e,t,r,n){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,r);return[u,new Map(d.map(c=>[c.code,c]))]}))),s=(u,d)=>{if(d==="$id")return"$id";let c=Ee(u,d);return a.get(u.appId)?.has(c)?c:null},l=(u,d)=>{if(u.cteName===null)return!1;let c=n?.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=_e(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=>_e(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 ho(e,t,r,n){Ln.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 ly(e,t,r,n),s=Kl(e,a,xl);s&&Ln.set(e,s)}function uy(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 Np(e,t,r){let n=r?.kind==="CANONICAL_REST_TOP_N"||r?.kind==="KORDER_NATIVE"||r?.kind==="KORDER_CURSOR"?Ct({...e,orderBy:[]}):Ct(e),i=n.size>0&&t.onLimitReached==="truncate";return{reasons:n,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Cp(e,t){throw e.reasons.size>0&&t instanceof Ie?new Ie(uy(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function ep(e,t){try{return await t()}catch(r){Cp(e,r)}}function at(e){return e?.type==="BOOLEAN"&&e.value===!1}function cy(e){return e.from.appId===0&&e.from.cteName===ut}function uo(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?uo(e.left)||uo(e.right):e.type==="STRING_FUNC"?gs(e):!1}function py(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Tn(e)}function Tn(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?gs(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Tn(e.left)||Tn(e.right):e.type==="CASE_WHEN"?[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]].some(r=>r.type!=="ARRAY"&&(r.type==="FIELD_REF"||r.type==="ARITH"?uo(r):Tn(r))):!1}function gs(e){return e.args.some(t=>py(t))}function dy(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(gs(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Tn(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 fy(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.");dy(e);let t=Fa([{}],e.columns),{rows:r,columns:n}=Hi(t,e.columns),i=Wi(r,e.limit,e.offset);return{type:"SELECT",rows:i,columns:n,rowCount:i.length,warnings:[]}}async function Ey(e,t,r,n,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?vp(e):e,s=ei(a),l=i?.kind==="CANONICAL_LOCAL"?Ot(e,e.from):s.fields,p=await Is(e,t,n),u=bs(e,p),d=e.columns.some(_=>_.type==="CASE_COL")?await Cr(e,t,n,void 0,ys(e)):void 0,c=r.maxRecords??1e4,f=new Set,E=r.onLimitReached??"error",R=r.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&&!ae(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 sc({client:t,app:s.app,fields:s.fields,query:_a(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 ye(t.getRecords,s.app,_,l,{parallel:R,maxRecords:c,stopAfter:h,onLimit:E,onTruncate:N=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${N} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${N} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=g.map(_=>nt(_,null));m||(S=Ma(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,xa(e.columns,void 0,u.row,d)),S=Wi(S,e.limit,e.offset));let{rows:O,columns:P}=Hi(S,e.columns,void 0,u.row,void 0,d);return{type:"SELECT",rows:O,columns:P,rowCount:O.length,warnings:[...f]}}async function Ry(e,t,r,n){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=ei(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,Ot(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(c=>!uc(c));if(l.length===0)continue;let p=await Q(a,r,n);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 Op(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?$r(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?$r(e.where,{tableAlias:e.from.alias}):null}function As(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let r=[e.from,...e.joins.map(u=>u.table)];if(r.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let n=r.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=ec(e.where,n),o=new Map,a=new Map;for(let u of i.items)a.set(u.targetAlias,tc(u,n)),o.set(u.targetAlias,u.predicate);let s=e.from.alias,l=o.get(s)??null,p=new Map(o);return p.delete(s),{joinPlan:i,queriesByAlias:a,mainCondition:l,joinConditions:p,appliedKlikes:i.appliedKlikes,allKlikes:i.allKlikes}}async function Ss(e,t,r){let n=new Map,i=(s,l)=>{if(l===null)return;let p=n.get(s);p?p.push(l):n.set(s,[l])};if(i(e.from.appId,Op(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=$r(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...n.entries()].map(async([s,l])=>{let[p,u]=await Promise.all([Re(s,t,r),Oy(s,t,r)]),d=my(l).filter(c=>p.get(c)==="STATUS");if(d.length>0){let c=await Ps(s,t,r);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 my(e){let t=new Set,r=n=>{if(n.type==="BINARY"){n.left.type==="FIELD"&&t.add(n.left.field);return}if(n.type==="LOGICAL"){r(n.left),r(n.right);return}(n.type==="GROUP"||n.type==="NOT")&&r(n.expr)};for(let n of e)r(n);return[...t]}function ot(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"&&co(e.left.expr,t),e.right.type==="CASE_VALUE"&&co(e.right.expr,t);return;case"LOGICAL":ot(e.left,t),ot(e.right,t);return;case"NOT":case"GROUP":ot(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function co(e,t){for(let r of e.branches)ot(r.condition,t)}function yy(e){let t=[];ot(e.where,t),ot(e.having,t);for(let r of e.columns)r.type==="CASE_COL"&&co(r.expr,t);return t}function _e(e){return e.alias??e.cteName}function Lp(e,t){return[e.from,...e.joins.map(r=>r.table)].find(r=>_e(r)===t)}function Ts(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Is(e,t,r){let n=yy(e);if(n.length===0)return new Map;let i=new Set,o=Ts(e);for(let s of n){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=Lp(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 Re(s,t,r)]));return new Map(a)}function Ke(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 _p(e,t,r){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||xt(t,r)}function xt(e,t){if(e.type==="FIELD_REF"){t.push(Ke(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 r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&xt(r,t);return}if(e.type==="CASE_WHEN")for(let r of[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]])r.type!=="ARRAY"&&xt(r,t)}function po(e,t){if(e.type==="AGG_REF"){_p(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(po(e.left,t),po(e.right,t))}function as(e,t){for(let r of e.args)r.type==="AGG_REF"||r.type==="AGG_ARITH"?po(r,t):In(r,t)}function In(e,t){if(e.type==="STRING_FUNC"){as(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){In(e.left,t),In(e.right,t);return}if(e.type==="CASE_WHEN"){let r=[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]];for(let n of r)n.type==="STRING_FUNC"?as(n,t):n.type!=="ARRAY"&&n.type!=="FIELD_REF"&&n.type!=="ARITH"&&In(n,t)}}function hy(e){let t=[];for(let r of e)r.type==="AGGREGATE"?_p(r.func,r.arg,t):r.type==="ARITH_AGG_COL"?po(r.expr,t):r.type==="STRFUNC_COL"?as(r.expr,t):r.type==="SCALAR_VALUE_COL"&&In(r.expr,t);return t}var gy=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Ay(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":gy.has(e.fieldType)?"string":void 0}async function Dp(e,t,r,n){let i=hy(e.columns);if(i.length===0)return;let o=new Set,a=Ts(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=Lp(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,r);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 Ns(f,t,r);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=>_e(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return n?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??F("string");E=s.get(m.appId)?.get(Ee(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??F("string");E=s.get(e.from.appId)?.get(Ee(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let g=n?.get(y.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??F("string")]:[]}let h=s.get(y.appId)?.get(Ee(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=>_e(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return d(E,R?.appId??e.from.appId)}}function Ee(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 je(e,t){let r=e.semantics??q(e);return{sortKind:Ay(e),fieldType:e.fieldType,semantics:t===void 0?r:Er(r,t,e.code)}}function vp(e){return e.orderBy.some(r=>r.key.type==="FIELD_NAME"&&r.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function Y(e){return{sortKind:e,semantics:F(e)}}function qe(){return{semantics:F("string","KSQL_UNKNOWN")}}function Up(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Ft(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 Sy=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function $t(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return Sy.has(e.func)?Y("number"):Y("string")}function Pr(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?Up():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?$t(e):e.type==="FIELD_REF"?t(Ke(e.field))??qe():e.type==="FIELD"?t(e)??qe():qe()}function go(e){if(e.length===0)return qe();let t=e[0],r=n=>{if(!n)return;let{source:i,...o}=n;return o};return e.every(n=>n.sortKind===t.sortKind&&n.fieldType===t.fieldType&&ui(r(n.semantics),r(t.semantics)))?e.every(i=>ui(i.semantics,t.semantics))?t:{...t,semantics:r(t.semantics)}:e.some(n=>n.semantics?.compareMode==="unsupported")?Up("KSQL_MIXED_UNSUPPORTED"):qe()}function ws(e,t){if(e.type==="FIELD_REF")return t(Ke(e.field))??qe();if(e.type==="FIELD")return t(e)??qe();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 $t(e);let r=e.branches.map(n=>Pr(n.result,t));return e.elseResult&&r.push(Pr(e.elseResult,t)),go(r)}function Ty(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 ss(e,t,r,n,i,o=!1){let a=new Map;Ty(e)&&await Promise.all(Ts(e).map(async R=>{if(a.has(R.appId))return;let m=await Q(R.appId,r,n);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?je(g,e.from.appId):void 0}let y=s.find(g=>_e(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(Ee(y,R.field));return h?je(h,y.appId):Ft(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(Ee(e.from,R.field));return y?je(y,e.from.appId):Ft(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(Ee(y,R.field)),g=h?je(h,y.appId):Ft(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&&_e(y)!==R.tableAlias)return!1;let h=Ee(y,R.field);return a.get(y.appId)?.has(h)===!0||Ft(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=Ke(R),y=d(p(m),m);y&&c.set(R,y)}return c}if(f)for(let R of t){let m=Ke(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=Ke(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=ws(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=$t(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=$t(R.expr);else if(R.type==="WINDOW_COL")h=Y("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Pr(S.result,p));R.expr.elseResult&&g.push(Pr(R.expr.elseResult,p)),h=go(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=qe());h&&c.set(y,h)}),c}function kp(e,t){let r=ge.get(e),n=ge.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=r?.get(o),l=t.columns[a],p=l===void 0?void 0:n?.get(l);if(s&&p){let u=go([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,qe())}),i}function bs(e,t){let r=[e.from,...e.joins.map(s=>s.table)],n=r.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=r.find(u=>_e(u)===s.tableAlias);return!p||p.cteName!==null?void 0:oo(p,s.field)??t.get(p.appId)?.get(Ee(p,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(Ee(e.from,s.field));if(r.some(p=>p.cteName!==null))return;let l=n.flatMap(p=>{let u=oo(p,s.field)??t.get(p.appId)?.get(Ee(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 Iy(e,t,r,n,i,o=!0,a,s,l){let p=r.maxRecords??1e4,u=new Set,d=r.fetchParallel??1;await Promise.all([Un(e.where,t,r,n,i),Un(e.having,t,r,n,i)]);let[c,f,E]=await Promise.all([Ss(e,t,n),Is(e,t,n),Dp(e,t,n,i)]),R=bs(e,f),m=await Cr(e,t,n,i,We(e.having)||ys(e)),y=bp(e,m),h=As(e,c)??ur(e,c);Wo(h);let g=t,S=h.mainCondition,O=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let P=s?s.prefilterWhere:S,_=await nd(e.columns,t,r,n,i),N=at(e.where),L=N?Promise.resolve([]):wn(e,e.from,g,p,d,!0,r.onLimitReached??"error",u,P,o,l),I=[],v=[];for(let H of e.joins){if(N){I.push({join:H,promise:Promise.resolve([])});continue}let ue=H.table.alias?O.get(H.table.alias)??null:null;ue!==null?I.push({join:H,promise:wn(e,H.table,g,p,d,!1,r.onLimitReached??"error",u,ue,!0,l)}):v.push(H)}let k=a?Promise.resolve(a):_n(e,t,n,i);k.catch(()=>{});let A=await L,b=new Map;b.set(e.from.alias,A);for(let{join:H,promise:ue}of I)b.set(H.table.alias,await ue);await Promise.all(v.map(async H=>{let D=await $p(e,H,b,g,p,d,r.onLimitReached??"error",u,null,l,"")??await wn(e,H.table,g,p,d,!1,r.onLimitReached??"error",u,null,!0,l,"");b.set(H.table.alias,D)}));let{optionOrders:C,sortKinds:w,semantics:U}=await k,{rows:K,columns:W}=$a({tables:b,stmt:e,scalarCache:_,optionOrders:C,sortKinds:w,orderSemantics:U,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:{},resolvedGroupingSpec:Ln.get(e),plainGroupByPlan:l});return{type:"SELECT",rows:K,columns:W,rowCount:K.length,warnings:[...u]}}async function Mp(e,t,r,n,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Mp(e.left,t,r,n,i,o):It(e.left,t,r,n,void 0,i,o),It(e.right,t,r,n,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:xp(d,l),f={type:"SELECT",rows:c,columns:l,rowCount:c.length};return i&&ge.set(f,kp(a,s)),f}function xp(e,t){let r=new Set;return e.filter(n=>{let i=JSON.stringify(t.map(o=>n[o]??""));return r.has(i)?!1:(r.add(i),!0)})}async function wy(e,t,r,n,i,o=!1){if((i==null||i.size===0)&&ft(e))return It(Et(e),t,r,n,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await Zp(t):s.query.type==="DESCRIBE"?l=await ed(s.query,t,n):l=await Gt(s.query,t,r,a,n,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:ge.get(l)})}return Gt(e.query,t,r,a,n,o)}async function Gt(e,t,r,n,i,o=!1){if(e.type==="UNION"){let[l,p]=await Promise.all([Gt(e.left,t,r,n,i,o),Gt(e.right,t,r,n,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:xp(f,u),R={type:"SELECT",rows:E,columns:u,rowCount:E.length};return o&&ge.set(R,kp(l,p)),R}if(!(e.from.cteName!=null&&e.from.cteName!==ut||e.joins.some(l=>l.table.cteName!=null)))return It(e,t,r,i,n,o,!1);let s=await by(e,t,r,n,i);return o&&ge.set(s,await ss(e,s.columns,t,i,n)),s}async function by(e,t,r,n,i){await ho(e,t,i,n);let o=Ln.get(e),a=await hs(e,t,i,n),s=new Set,l=D=>{if(D.alias!==null||D.cteName===null)return D;let x=_e(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 p=new Set;for(let D of[e.from,...e.joins.map(x=>x.table)]){let x=_e(D);if(x!==null){if(p.has(x))throw new Error(`ArgumentError: effective alias ${x} is used by multiple tables.`);p.add(x)}}let u=D=>{let x=n.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 d=r.maxRecords??1e4,c=new Set,f=r.fetchParallel??1;await Promise.all([Un(e.where,t,r,i,n),Un(e.having,t,r,i,n),td(e,t,r,i,n)]);let E=await On(e,t,i,n);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(E)}).`);let R=await _n(e,t,i,n),m=lo(e)?(e.orderMode==="KINTONE_NATIVE"?fn:dn)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:d,hasKlike:ae(e.where)}):null,y=Np(e,r,m),h=y.effectiveOptions,[g,S,O]=await Promise.all([Ss(e,t,i),Is(e,t,i),Dp(e,t,i,n)]),P=bs(e,S),_=await Cr(e,t,i,n,We(e.having)||ys(e)),N=bp(e,_),L=As(e,g)??ur(e,g);Wo(L);let I=t,v=await nd(e.columns,t,h,i,n),k=Promise.resolve(R);k.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(tp)),b.set(e.from.alias,D.columns)}else{let D=await ep(y,()=>wn(e,e.from,I,d,f,!0,h.onLimitReached??"error",c,L.mainCondition,E.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,D)}let C=e.joins.map(D=>ep(y,async()=>{if(D.table.cteName!=null){let x=u(D.table.cteName);A.set(D.table.alias,x.rows.map(tp)),b.set(D.table.alias,x.columns)}else{let x=D.table.alias?L.joinConditions.get(D.table.alias)??null:null,ve=await $p(e,D,A,I,d,f,h.onLimitReached??"error",c,x,a)??await wn(e,D.table,I,d,f,!1,h.onLimitReached??"error",c,x,!0,a);A.set(D.table.alias,ve)}}));await Promise.all(C);let{optionOrders:w,sortKinds:U,semantics:K}=await k,W=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:H,columns:ue}=$a({tables:A,stmt:e,scalarCache:v,optionOrders:w,sortKinds:U,orderSemantics:K,fieldTypeResolver:P.row,fieldSemanticsResolver:_,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:N,aggregateSortKindResolver:O,appliedKlikes:L.appliedKlikes,sourceColumns:W,tableColumns:b,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a});return{type:"SELECT",rows:H,columns:ue,rowCount:H.length,warnings:[...c]}}function tp(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{value:r??""}]))}async function wn(e,t,r,n,i,o,a,s,l=null,p=!0,u,d=""){let c=Ot(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?bl(e,t.appId).query:"",h=[l!==null?$(l):"",d].filter(P=>P!==""),g=h.length>1?h.map(P=>`(${P})`).join(" and "):h[0]??"",S=y&&g?`(${y}) and (${g})`:y||g;return(await ke(r.getRecords,t.appId,S,c,{parallel:i,maxRecords:n,onLimit:a,onTruncate:f})).records}let m=(await ke(r.getRecords,t.appId,"",c,{parallel:i,maxRecords:n,onLimit:a,onTruncate:f})).records;return bc(m,t.subtableCode)}var Fp=50;function Py(e){let t=we(e);return t!==null?JSON.stringify(t):e}function ls(e){return JSON.stringify(e)}function Vt(e,t){return JSON.stringify(e.map((r,n)=>t[n]?Py(r):r))}function Mn(e,t){let r=e.raw.get(ls(t));if(r!==void 0)return r;if(e.numericKey.some(Boolean))return e.normalized.get(Vt(t,e.numericKey))}async function xn(e,t,r,n,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,ls(m),y),l.some(Boolean)&&u(p.normalized,Vt(m,l),y)},c=new Set,f=[],E=new Set;for(let m of r){let y=ls(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 Or([...c],Fp)){let y=`${t[0]} in (${m.map(fo).join(",")})`,h=await ye(n.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(O=>Kp(g[O]?.value)),S)}}for(let m of f){let y=t.map((g,S)=>`${g} = ${fo(m[S])}`).join(" and "),h=await ye(n.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});h.length!==0&&d(m,Ny(h))}return p}function Ny(e){let t=Number.NEGATIVE_INFINITY;for(let r of e){let n=Number(r.$id?.value);Number.isFinite(n)&&n>t&&(t=n)}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 Kp(e){return typeof e=="string"?e:e==null?"":String(e)}function fo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Or(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var Bp=50,Cy=6,rp=Bp*Cy;async function $p(e,t,r,n,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=r.get(f);if(!m)return null;let y=new Set;for(let N of m){let L=N[E]?.value,I=Kp(L).trim();I.length>0&&y.add(I)}let h=[...y];if(h.length===0)return[];if(h.length>rp)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 ${rp} \u4EF6\uFF09\u3002`),null;let g=Ot(e,t.table,p),S=N=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${N} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${N} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},O=Or(h,Bp),P=[],_=new Set;for(let N of O){let L=`${R} in (${N.map(fo).join(",")})`,v=[l!==null?$(l):"",u].filter(A=>A!=="").reduce((A,b)=>`(${A}) and (${b})`,L),k=await ke(n.getRecords,t.table.appId,v,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let A of k.records){let b=`${A.$id?.value??""}:${JSON.stringify(A)}`;_.has(b)||(_.add(b),P.push(A))}}return P}var np=new Map,ip=new Map,op=new Map,ap=new Map,sp=new Map,lp=new Map;function Lr(e,t,r){return e.get(t)?.get(r)}function _r(e,t,r,n){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(r,n)}async function Q(e,t,r){let n=Lr(ap,r,e);if(n)return n;let i=t.getFields(e);return _r(ap,r,e,i),i}async function ze(e,t,r){let n=Lr(lp,r,e);if(n)return n;let i=t.getNumberPrecision(e);return _r(lp,r,e,i),i}async function Ps(e,t,r){let n=Lr(sp,r,e);if(n)return n;let i=t.getProcessStatuses(e);return _r(sp,r,e,i),i}async function Ns(e,t,r){let n=await Ps(e,t,r);return n.enable&&n.states!==null?new Map(n.states.map(i=>[i.name,i.index])):void 0}async function Re(e,t,r){let n=Lr(np,r,e);if(n)return n;let i=await Q(e,t,r),o=new Map(i.map(a=>[a.code,a.fieldType]));return _r(np,r,e,o),o}async function us(e,t,r){let n=Lr(ip,r,e);if(n)return n;let i=await Q(e,t,r),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 _r(ip,r,e,o),o}async function Oy(e,t,r){let n=await us(e,t,r);return new Map([...n.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function up(e,t,r){let n=Lr(op,r,e);if(n)return n;let i=await Q(e,t,r),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return _r(op,r,e,o),o}function Ly(e){let t=[...e.orderBy,...e.columns.flatMap(r=>r.type==="WINDOW_COL"?r.orderBy:[])];return[...new Set(t.flatMap(r=>r.key.type==="FIELD_NAME"?[r.key.name]:[]))]}async function _y(e,t,r,n){let i=Ly(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,r);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?je(R,e.from.appId):void 0}let f=o.find(R=>_e(R)===d.tableAlias);if(!f)return;if(f.cteName!==null)return n?.get(f.cteName)?.columnMeta?.get(d.field);let E=s.get(f.appId)?.get(Ee(f,d.field));return E?je(E,f.appId):Ft(d.field)}if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(d.field);let f=s.get(e.from.appId)?.get(Ee(e.from,d.field));return f?je(f,e.from.appId):Ft(d.field)}let c=o.flatMap(f=>{if(f.cteName!==null){let m=n?.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(Ee(f,d.field)),R=E?je(E,f.appId):Ft(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(Ke(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=$t(d.expr);else if(d.type==="SCALAR_SUBQUERY_COL")c=qe();else if(d.type==="CASE_COL"){let f=d.expr.branches.map(E=>Pr(E.result,l));d.expr.elseResult&&f.push(Pr(d.expr.elseResult,l)),c=go(f)}else d.type==="AGGREGATE"&&(d.func==="MIN"||d.func==="MAX"||d.func==="MODE"?d.arg.type!=="WILDCARD"&&(c=ws(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(Ke(d))?.semantics;if(!c){let E=Ke(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 Ps(c.source.appId,t,r);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 _n(e,t,r,n){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([Dy(e,t,r),vy(e,t,r),_y(e,t,r,n)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Dy(e,t,r){let n=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 us(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await us(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}async function vy(e,t,r){let n=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 up(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await up(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}function Gp(e,t){if(typeof e!="string")return e;let r=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),n=new Set(["CHECK_BOX","MULTI_SELECT"]);if(r.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(n.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 Uy=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ky(e,t,r){let n=new Map(r.map(i=>[i.code,i]));for(let i of t){let o=n.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||Uy.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Be(e,t,r,n){let i=await Q(e,r,n);return ky(e,t,i),i}async function st(e,t,r,n,i){let o=new Map(r.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ze(e,n,i):void 0}function Wt(e,t,r,n){let i=new Map(r.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),p=o[s]?.value??"",u=Se(p,l,n);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 My(e,t,r,n,i){let o=await Be(e.appId,e.fields,t,n),a=await nn({statement:e,fieldInfos:o,dmlMaxRows:De(r.dmlMaxRows,"dmlMaxRows",lt),dmlMaxSubtableRows:De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ze(e.appId,t,n)});return fh(e,a,o)}async function xy(e,t,r,n,i){let{fieldInfos:o,prepared:a}=await Vp(e,t,r,n,i);return Rh(e,a,o)}async function Vp(e,t,r,n,i){let o=await Be(e.appId,e.fields,t,n),a=new Map(o.map(m=>[m.code,m.fieldType])),s=Xp(e),l=new Set;for(let m of s){let y=Vt(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 xn(e.appId,e.keyFields,s,t,r,a),u=s.map(m=>Mn(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 Or(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 Mu({statement:e,matches:E,fieldInfos:o,dmlMaxRows:De(r.dmlMaxRows,"dmlMaxRows",lt),dmlMaxSubtableRows:De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ze(e.appId,t,n)});return{fieldInfos:o,prepared:R}}async function Fy(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Be(e.appId,e.fields,t,n),o=await nn({statement:e,fieldInfos:i,dmlMaxRows:De(r.dmlMaxRows,"dmlMaxRows",lt),dmlMaxSubtableRows:De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),loadNumberPrecision:()=>ze(e.appId,t,n)}),a=wa(o);if(r.confirm&&!await r.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Ao(a),applyDiagnostic:a}))throw new te("INSERT",o.guards.parentRows);let s=await $u(o,t,a);return{...s,diagnostic:Ce(a,s)}}async function Ky(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Vp(e,t,r,n,1),o=ba(i);if(r.confirm){let s=Ao(o);if(!await r.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 Gu(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:Ce(o,a)}}function By(e,t){let r=new Map;for(let n of[...e,...t]){let i=r.get(n.table);r.set(n.table,i?{table:n.table,patchRows:i.patchRows+n.patchRows,appendRows:i.appendRows+n.appendRows,removeRows:i.removeRows+n.removeRows}:{...n})}return[...r.values()]}function Ao(e,t=!0){let r=e.branches.find(c=>c.branch==="insert"),n=e.branches.find(c=>c.branch==="update"),i=e.branches.flatMap(c=>c.targets),o=By(r?io(r):[],n?io(n):[]),a=$y(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"&&r)return{...d,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(c=>c.targetKind==="SUBTABLE").reduce((c,f)=>c+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&r&&n){let c=io(r),f=io(n);return{...d,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:n.parentRows??0,applyBranches:{insert:{parentRows:r.parentRows??0,initialSubtableRows:c.reduce((E,R)=>E+R.appendRows,0),tables:c},update:{parentRows:n.parentRows??0,changedSubtableRows:n.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:n.deletedParentRows??0}}}}return d}function io(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let r=Bt(t,"APPEND"),n=Bt(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-r-n,appendRows:r,removeRows:n}})}function Bt(e,t){return e.operations.filter(r=>r.kind===t).reduce((r,n)=>r+(n.count??0),0)}function $y(e){let t=new Map;for(let r of e.filter(n=>n.targetKind==="MULTI_VALUE")){let n={field:r.field,fieldType:r.fieldType??"UNKNOWN",addedValues:Bt(r,"ADD"),removedValues:Bt(r,"REMOVE_VALUE"),changedValues:r.changedCount??0,parents:(r.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(r.field);t.set(r.field,i?{...i,addedValues:i.addedValues+n.addedValues,removedValues:i.removedValues+n.removedValues,changedValues:i.changedValues+n.changedValues,parents:[...i.parents,...n.parents]}:n)}return[...t.values()]}async function Wp(e,t,r,n,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return My(e,t,r,n,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return xy(e,t,r,n,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await zp(e,t,r,n,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Cs(e,t,r,n,i,o)).result}var Eo=class extends Error{constructor(r,n){super(`RejectLimitExceededError: ${r}`);this.diagnostic=n;this.name="RejectLimitExceededError"}};async function Cs(e,t,r,n,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 Be(e.appId,u,t,n);e.type==="UPDATE"&&await wr(e,t,n);let c=new Map(d.map(b=>[b.code,b])),f=await st(e.appId,u,d,t,n),E=Ge(d,p),R=Pc(E),m=(await Gy(e,l,t,r,n,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"?Hy:e.type.startsWith("UPSERT")?b=>Yy(b,t,r.maxRecords??1e4):void 0,g=r.loadUpdateModeSnapshots??h,S=y.length>0&&g!==void 0,O=new Map;if(S){ya(y,u,d);let b=await g({appId:e.appId,candidates:y,fields:R}),C=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let U=b.get(w.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let K=Nc(U,w.record??{});C.set(w.rowNumber,K)}f===void 0&&[...C.values()].some(w=>Ut(w,E))&&(f=await ze(e.appId,t,n));for(let w of y){let U=C.get(w.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);O.set(w.rowNumber,kt(U,E,f,o,w.rowNumber,l))}}let P=ha(m,l,p,u,d,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:_,invalidRows:N,invalidRowNumbers:L}=P;if(S){let b=new Map(P.candidateResults.map(C=>[C.rowNumber,C]));_=[],L=new Set;for(let C of m){let w=b.get(C.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${C.rowNumber}.`);if(C.mode==="create"){let W=[...w.preErrors,...w.builtInErrors,...w.checkErrors];_.push(...W),W.length>0&&L.add(C.rowNumber);continue}let U=O.get(C.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${C.rowNumber}.`);let K=Cc({rowNumber:C.rowNumber,setFields:u,normalizedPostImage:U.normalizedRecord,preErrors:w.preErrors,postImageErrors:U.errors,checkErrors:w.checkErrors});C.record=K.writeRecord,_.push(...K.errors);for(let W of K.invalidRowNumbers)L.add(W)}N=L.size}let I=[...p,...yr],v={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-N,invalidRows:N,errorCount:_.length,columns:I,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let b of p){if(b==="$id"){k.set(b,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:q({fieldType:"RECORD_NUMBER"})});continue}let C=c.get(b);C&&k.set(b,je(C,e.appId))}let A=new Set(["$err_statement","$err_row"]);for(let b of yr)k.set(b,Y(A.has(b)?"number":"string"));return Nr.set(v,k),{result:v,candidates:m,invalidRowNumbers:L,columnMeta:k}}async function cp(e,t,r,n,i,o){let a=await Cs(e,t,r,n,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Tt(i,s,a.result.columns,a.result.errors,r.tempTableMaxRows??St,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Eo(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(r.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await r.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 Gy(e,t,r,n,i,o,a,s){if(e.type==="UPDATE")return Wy(e,r,n,i,o,s);let l,p,u,d,c;if(e.type==="INSERT"||e.type==="UPSERT")pp(e,e.fields),c=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),Ht(e,c),l=e.values.map(S=>S.map((O,P)=>O.type==="CASE_VALUE"?ht(O.expr,{},a.get(e.fields[P])?.fieldType):O));else{let S=await Ls.materialize(e,r,n,i,o,[...a.values()]),O=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!O&&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(O&&new Set(S.columns).size!==S.columns.length)throw le("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");pp(e,S.columns),p=S.rows,u=S.importPresence,d=S.importRowErrors;let P=S.columnMeta;c=new Map(S.columns.map(_=>{let N=P?.get(_),L=N?.fieldType??(N?.semantics?.compareMode==="number"||N?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[_,L]})),Ht(e,c),l=S.rows.map(_=>S.columns.map(N=>_[N]??""))}let f=l.map((S,O)=>({rowNumber:O+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((P,_)=>u&&!u[O]?.has(P)?[]:[[P,S[_]]])),preErrors:[...d?.[O]??[]],record:{},evaluationRow:p?.[O]??Object.fromEntries(e.fields.map((P,_)=>[P,$e(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,O])=>[S,O.fieldType])),R=f.map(S=>e.keyFields.map(O=>$e(S.payload.get(O)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let O=Vt(S,m);y.set(O,(y.get(O)??0)+1)}let h=yo.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 xn(e.appId,e.keyFields,R,r,n,E);return f.forEach((S,O)=>{let P=R[O],_=Mn(g,P);S.mode=_===void 0?"create":"update",_!==void 0&&(S.targetId=_),e.keyFields.forEach((N,L)=>{P[L]===""&&S.preErrors.push({field:N,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${N} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(y.get(Vt(P,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 Os(e){return e.checkGroups?Rr(e.checkGroups):[]}function pp(e,t){let r=new Set(t);for(let n of Os(e)){if(n.tableAlias!==null)throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.tableAlias}.${n.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!r.has(n.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Vy=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Ht(e,t){if(e.checkGroups)for(let r of nu(e.checkGroups)){let n=r.tableAlias?`${r.tableAlias}.${r.field}`:r.field,i=t.get(n)??t.get(r.field);if(Vy.has(i??""))throw le(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${n} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Wy(e,t,r,n,i,o){if(e.from)return qy(e,e.from,t,r,n,i,o);await rd(e.assignments,t,r,n);let a=await Re(e.appId,t,n),s=Hp(e,a);Ht(e,cs(a,e.appId));let l,p=new Map,u=new Map;if(hi(e)){let d=ta(e),c=[...new Set([...d.fields,...s,...o??[]])],f=await ke(t.getRecords,d.app,d.query,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ao(f.records),p=u,l=na(e,f.records,a).flatMap(E=>E.records)}else{let d=qr(e);if(s.length>0){let c=[...new Set(["$id",...s,...o??[]])],f=await ke(t.getRecords,d.app,d.query,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ao(f.records),p=u,l=zr(e,[...p.keys()],a).flatMap(E=>E.records)}else if(o){let c=await ke(t.getRecords,d.app,d.query,[...o],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ao(c.records),l=zr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let c=await vi(t.getRecords,d.app,d.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1});l=zr(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:jy(p.get(d.id),e.appId),evaluationFieldTypes:cs(a,e.appId)}))}function ao(e){let t=new Map;for(let r of e){let n=r.$id?.value,i=Number(n);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(n)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,r)}return t}async function Hy(e){let t=new Map;for(let r of e.candidates){if(r.targetId===void 0||!r.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(r.targetId)}.`);if(t.has(r.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${r.targetId}.`);t.set(r.targetId,r.validationSnapshot)}return t}async function Yy(e,t,r){let n=[...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(n.length>r)throw new Ie(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${r} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(n),o=new Map;for(let a of Or(n,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 n)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Hp(e,t){if(e.from)return[];let r=new Set;for(let n of Os(e)){if(n.tableAlias!==null&&n.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${n.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(n.field!=="$id"&&!t.has(n.field))throw le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);r.add(n.field)}return[...r]}function jy(e,t){if(!e)return{};let r=nt(e,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([n,i])=>[`APP${t}.${n}`,i])])}function cs(e,t){return new Map([...e,...[...e].map(([r,n])=>[`APP${t}.${r}`,n]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function qy(e,t,r,n,i,o,a){let s=await ld(e,t,r,i,o);Ht(e,s.evaluationTypes);let l=await Yp(e,t,r,n,i,o,a),p=await Re(e.appId,r,i),u=oa(e,l,p).flatMap(f=>f.records),d=new Map(l.map(f=>[Number(f.target.$id?.value),f])),c=a?ao(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:zh(d.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var zy=Fp,Xy=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Yp(e,t,r,n,i,o,a){let s=await Jy(e,t,r,i),l=await ld(e,t,r,i,o),p=[...new Set(e.assignments.filter(O=>O.value.type==="SOURCE_FIELD").map(O=>O.value.type==="SOURCE_FIELD"?O.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...p])],d=await Qy(t,u,p,r,n,i,o),c=new Map,f=new Map;for(let O of d){if(!Object.prototype.hasOwnProperty.call(O,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let P=dp(O[t.joinKeyField],s,"source");if(c.has(P))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${P}.`);c.set(P,O),f.set(P,String(O[t.joinKeyField]).trim())}if(c.size===0)return[];let E=n.maxRecords??1e4,R=[...new Set([...yh(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":qr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],h=new Set,g=0;for(let O of Or([...f.values()],zy)){let P=`${t.targetJoinField} in (${O.map(fo).join(",")})`,_=m?`(${P}) and (${m})`:P,N=await ke(r.getRecords,e.appId,_,R,{maxRecords:E,parallel:n.fetchParallel??1,onLimit:"error"});if(g+=N.records.length,g>E)throw new Ie(`\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 L of N.records){let I=L.$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(L))}}let S=[];for(let O of y){let P=O[t.targetJoinField]?.value,_=dp(P,s,"target");if(_===null)continue;let N=c.get(_);N!==void 0&&S.push({target:O,source:N})}return S}async function Jy(e,t,r,n){if(t.targetJoinField==="$id")return"id";let i=(await Q(e.appId,r,n)).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 Qy(e,t,r,n,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 Re(e.appId,n,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 r){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(Xy.has(d??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${d} (${u}).`)}return(await ke(n.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>nt(u,null))}function dp(e,t,r){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(r==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&r==="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 ${r} key must be a positive safe integer: ${e}`);return String(o)}let n=we(e);if(n===null)throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a finite decimal: ${e}`);return JSON.stringify(n)}async function Fn(e,t,r,n,i){let o=await Cs(e,t,r,n,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(r.confirm&&a.length>0&&!await r.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 Zy(e,t,r,n){if(e.applyBlocks?.length)return Fy(e,t,r,n);if(e.checkGroups?.length)return Fn(e,t,r,n);if(e.subtableCode)return Ah(e,t,r,n);let i=await Be(e.appId,e.fields,t,n),o=await st(e.appId,e.fields,i,t,n),a=await Re(e.appId,t,n),s=yi(e,a);Wt(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 eh(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:ut},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function th(e,t,r,n,i){if(!r.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=kc(e.source.sourceName,r.importSource);if(e.targets?.some(d=>d.kind==="SUBTABLE")){if(!e.validateOnly&&!r.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(oe=>oe.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 d=e.targets,c=await Q(e.appId,t,n),f=d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=c.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await ze(e.appId,t,n):void 0,R=await Zi(o,new Map),m=e.source.kind==="JSON"?Bc(e.source,R,d,r.maxRecords??1e4):$c(e.source,R,d,e.replaceSubtables??[],r.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=Hc(m,d,c,E,y);if(e.source.kind==="CSV")return rh(e,m,h,c,t,r,i);Qa(h,e.rejectLimit);let g=[...new Set(d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],S=es(h.errors,g),O=[...g,...Za],P=h.invalidParentRows.size,_={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-P,invalid:P,mutationCandidates:h.parents.filter(D=>D.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},N={type:"VALIDATION",operation:y,validatedRows:h.parents.length,validRows:h.parents.length-P,invalidRows:P,errorCount:S.length,columns:O,errors:S,importDetail:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Tt(i,e.validationErrorTable,O,S,r.tempTableMaxRows??St,new Map),e.validateOnly)return N;if(jc(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.");Tt(i,e.errorTable,O,S,r.tempTableMaxRows??St,new Map)}let L=h.parents.filter(D=>D.valid),I=new Map(c.map(D=>[D.code,D.fieldType])),v=L.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=>I.get(Ae)==="NUMBER"),x=new Set,oe=L.map(Ae=>e.keyFields.map(zt=>String(Ae.top[zt]?.value??"")));for(let Ae of oe){let zt=Vt(Ae,D);if(x.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");x.add(zt)}let ve=await xn(e.appId,e.keyFields,oe,t,r,I);oe.forEach((Ae,zt)=>{v[zt]=Mn(ve,Ae)})}let k=d.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),A=new Map,b=v.filter(D=>D!==void 0);for(let D of Or([...new Set(b)],100)){let x=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let oe of x.records){let ve=Number(oe.$id?.value),Ae=Number(oe.$revision?.value);Number.isFinite(ve)&&A.set(ve,{id:ve,...Number.isFinite(Ae)?{revision:Ae}:{},record:oe})}}let C=qc(L,v,A),w={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(x=>x.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(!r.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await r.confirm(C.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new te(e.keyFields?"UPDATE":"INSERT",C.length)}let U=D=>new Map(Object.entries(D).map(([x,oe])=>[x,oe.value])),K=D=>Yc(U(D.top),new Map([...D.subtables].map(([x,oe])=>[x,oe.map(ve=>({values:U(ve)}))]))),W=C.filter(D=>D.mode==="INSERT"),H=C.filter(D=>D.mode==="UPDATE"),ue=[];for(let D=0;D<W.length;D+=100){let x=await t.postRecords({app:e.appId,records:W.slice(D,D+100).map(K)});ue.push(x.ids)}for(let D=0;D<H.length;D+=100)await t.putRecords({app:e.appId,records:H.slice(D,D+100).map(x=>({id:x.targetId,...x.revision===void 0?{}:{revision:x.revision},record:K(x)}))});return e.keyFields?{type:"UPSERT",insertedCount:ue.flat().length,updatedCount:H.length,affectedRows:C.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:ue,insertedCount:ue.flat().length,affectedRows:C.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return nh(e,o,t,r,n,i);let a={appId:e.appId,fields:e.fields,select:eh(),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};yo.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 Wp(s,t,{...r,onLimitReached:"error"},n,i,1);return s.validationErrorTable&&i&&Tt(i,s.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??St,Nr.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",cp(s,t,r,n,i,1));return p(d)}let u=await(s.type==="UPSERT_SELECT"?Qp(s,t,r,n,i):qp(s,t,r,n,i));return p(u)}async function rh(e,t,r,n,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");zc(t.records);let s=t.records.map(A=>A.recordNumberSourceValue??""),l=ns(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],u=[...new Set(n.filter(A=>!A.inSubtable&&A.fieldType==="SUBTABLE").map(A=>A.code))],d=await ye(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 w of u){let U=A[w]?.value;if(Array.isArray(U)){for(let K of U)if(K.id){let W=f.get(K.id)??[];W.push({parentId:b,table:w}),f.set(K.id,W)}}}}}let E=l.normalized.map(A=>A===null?void 0:Number(A)),R=r.parents.map((A,b)=>{let C=[...A.errors];for(let U of l.errors[b])C.push({operation:"UPDATE",parentRow:A.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[b].top});let w=E[b];return w!==void 0&&!c.has(w)&&C.push({operation:"UPDATE",parentRow:A.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[b].top}),{...A,valid:C.length===0,errors:C}}),m=Xc(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={...r,parents:R,errors:y,invalidParentRows:h};Qa(g,e.rejectLimit);let S=m.filter(A=>A.valid),O=m.flatMap(A=>A.tables),P=(A,b)=>O.filter(C=>C.table===A).reduce((C,w)=>C+Number(w[b]),0),_=Object.fromEntries(p.map(A=>[A,{existingRows:P(A,"existingRows"),inputRows:P(A,"inputRows"),updateRows:P(A,"updateRows"),addRows:P(A,"addRows"),deleteRows:P(A,"deleteRows"),rowIdNotFound:P(A,"rowIdNotFound")}])),N={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}))},L=[...new Set(e.targets.flatMap(A=>A.kind==="FIELD"?[A.field]:A.children))],I=es(y,L),v=[...L,...Za];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Tt(a,e.validationErrorTable,v,I,o.tempTableMaxRows??St,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:I.length,columns:v,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:_,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:N.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.");Tt(a,e.errorTable,v,I,o.tempTableMaxRows??St,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:N}))throw new te("UPDATE",S.length)}let k=A=>new Map(Object.entries(A).map(([b,C])=>[b,C.value]));for(let A of S){let b=ts(k(A.top),new Map([...A.subtables].map(([C,w])=>[C,w.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:k(U.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:N}}async function nh(e,t,r,n,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 Be(e.appId,e.fields,r,i),s=await st(e.appId,e.fields,a,r,i),l=await Zi(t,new Map),p=za(e.source,l,n.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=ns(u,e.recordNumberSourceHeader),c=new Set,f=[...new Set(d.normalized.filter(N=>N!==null))];for(let N=0;N<f.length;N+=100){let L=f.slice(N,N+100),I=await r.getRecords({app:e.appId,query:`$id in (${L.join(",")}) limit 500`,fields:["$id"]});for(let v of I.records){let k=v.$id?.value;typeof k=="string"&&k!==""&&c.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(N=>[N.code,N])),R=new Map(e.fields.map(N=>[N,E.get(N)?.fieldType??"SINGLE_LINE_TEXT"])),m=p.rows.map((N,L)=>{let I=d.normalized[L],v=[...p.importRowErrors?.[L]??[],...d.errors[L]];return I!==null&&!c.has(I)&&v.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`}),{rowNumber:L+1,operation:"UPDATE",mode:"update",...I!==null&&c.has(I)?{targetId:Number(I)}:{},payload:new Map([[e.recordNumberSourceHeader,u[L]],...e.fields.map(k=>[k,N[k]??""])]),preErrors:v,record:{},evaluationRow:N,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],h=ha(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),g=[...y,...yr],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&&Tt(o,e.validationErrorTable,g,h.errors,n.tempTableMaxRows??St,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let N=h.errors[0];throw new Error(`DmlValidationError: ${N.$err_code} ${N.$err_message} (row=${N.$err_row}, field=${N.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Tt(o,e.errorTable,g,h.errors,n.tempTableMaxRows??St,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new Eo(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let O=m.filter(N=>!h.invalidRowNumbers.has(N.rowNumber));if(n.confirm&&!await n.confirm(O.length,"UPDATE"))throw new te("UPDATE",O.length);let P=O.map(N=>({id:N.targetId,record:N.record}));for(let N=0;N<P.length;N+=100)await r.putRecords({app:e.appId,records:P.slice(N,N+100)});let _={type:"UPDATE",updatedCount:P.length,...e.onErrorSkip?{affectedRows:P.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(_,{insertedCount:0,importAudit:p.importAudit}),_}async function ih(e,t,r,n,i,o){let a=yo.get(e);if(!a){let R=i&&i.size>0?await Gt(e.select,t,r,i,n,!0):await It(e.select,t,r,n,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:ge.get(R)}}let s=await Zi(a.handle,a.cache),l=r.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"?qa(a.source,s,u,l):za(a.source,s,l,e.fields,o);if(a.audit=d.importAudit,a.source.kind==="JSON"||!a.source.projection)return d;let c=Jc(a.source.projection),f=new Map(i??[]);f.set(rs,d);let E=await Gt(c,t,{...r,onLimitReached:"error"},f,n,!0);return{rows:E.rows,columns:E.columns,columnMeta:ge.get(E)}}var Ls={materialize:ih};function jp(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let r=e.importRowErrors?.[t]?.[0];if(r)throw new Error(`DmlValidationError: ${r.code} ${r.message} (row=${t+1}, field=${r.field})`)}}async function qp(e,t,r,n,i){if(e.checkGroups?.length)return Fn(e,t,r,n,i);let o=await Be(e.appId,e.fields,t,n),a=await st(e.appId,e.fields,o,t,n),s=await Ls.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(jp(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(r.confirm&&!await r.confirm(l.length,"INSERT"))throw new te("INSERT",l.length);let u=await Re(e.appId,t,n),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:Gp(h,u.get(m))}}),R});d.forEach(f=>Wt([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 fp(e,t,r,n,i){if(e.applyBlocks?.length)return zp(e,t,r,n);if(e.checkGroups?.length&&at(e.where)){let E=await Be(e.appId,e.assignments.map(m=>m.field),t,n);await st(e.appId,e.assignments.map(m=>m.field),E,t,n);let R=await Re(e.appId,t,n);return Hp(e,R),Ht(e,cs(R,e.appId)),await wr(e,t,n),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Fn(e,t,r,n,i);if(e.subtableCode)return await wr(e,t,n),Sh(e,t,r,n);let o=await Be(e.appId,e.assignments.map(E=>E.field),t,n),a=e.assignments.map(E=>E.field),s=await st(e.appId,a,o,t,n);if(await wr(e,t,n),at(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return mh(e,e.from,t,r,n,i);let l=r.maxRecords??1e4;await rd(e.assignments,t,r,n);let p=await Re(e.appId,t,n);if(hi(e)){let E=ta(e),m=(await ke(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:r.fetchParallel??1})).records,y=na(e,m,p);if(Wt(y.flatMap(h=>h.records.map(g=>g.record)),a,o,s),r.confirm&&!await r.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=qr(e),c=(await vi(t.getRecords,u.app,u.query,{maxRecords:l,parallel:r.fetchParallel??1})).ids,f=zr(e,c,p);if(Wt(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),r.confirm&&!await r.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 zp(e,t,r,n,i=1){if(!e.validateOnly&&r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Qe(e.where))return oh(e,t,r,n,i);let o=await Q(e.appId,t,n),a=tt(e,o),s=Ai(e,o),l=pa(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}.`);wi(p.records[0]);let d=Au({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),c=Ge(o,e.assignments.map(O=>O.field)),f=Ut(d.postImage,c)?await ze(e.appId,t,n):void 0,E=kt(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=De(r.dmlMaxRows,"dmlMaxRows",lt),m=De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),y=d.parentRows>R||d.changedSubtableRows>m;if(e.validateOnly){let O=an({plans:[d],records:Zr(d).records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),P={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:Dn(O.branches[0]),guards:vn(O.branches[0]),deletedRows:{total:d.tables.reduce((_,N)=>_+N.deletedRows,0),parentRows:d.tables.some(_=>_.deletedRows>0)?1:0},diagnostic:O};return Nr.set(P,So(E.columns,o,e.appId)),P}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=Ti(d,E.normalizedRecord),g=Zr(h),S=an({plans:[h],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(r.confirm){let O=Ao(S,!1);if(!await r.confirm(d.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:O,applyDiagnostic:S}))throw new te("UPDATE",d.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:d.parentRows,diagnostic:Ce(S,{successfulChunks:1,successfulParents:d.parentRows})}}async function oh(e,t,r,n,i){let o=De(r.dmlMaxRows,"dmlMaxRows",lt),a=De(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),s=await Q(e.appId,t,n),l=tt(e,s),p;if(Ro(e))p=await uh(e,t,r,s,n);else{let f=Ai(e,s),E=qr(e).query,R=o+1;p=await ye(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:r.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 Ci({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ze(e.appId,t,n)});if(e.validateOnly)return Eh(e,u,s);ml("phase15b",e);let d=an(u);if(r.confirm){let f=Ao(d);if(!await r.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 Bu(u,t,d);return{...c,diagnostic:Ce(d,c)}}function Ro(e){return(e.applyBlocks?.length??0)>0&&!Qe(e.where)&&(ct(e.where)||ae(e.where))}function ah(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ro(t)&&ae(t.where)}var sh=`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
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 qy(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=jy(Yy(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}`)),qy(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 zy=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Jy=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 Xc(e,t,n){if(!zy.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Pr;return Jy.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 Qc(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new F("JSON source is not valid UTF-8.")}}function Zc(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
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(),y={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in y){c+=y[R];continue}R!=="u"&&ot(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let m=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(m)||ot("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(m,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=Zc(Qc(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 Xy=new Set(["CHECK_BOX","MULTI_SELECT"]),ep=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 Qy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Zy(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."),Qy(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."),!Xy.has(t.fieldType)&&!ep.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."),ep.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function os(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]=Zy(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 as(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((m,h)=>[m,h]));for(let m of r)if(!l.has(m))throw new F(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let p=new Map(i.map(m=>[m.code,m])),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=m=>a.rows.filter(h=>h[m]!=="").length,E=m=>m.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":m.inSubtable||m.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":m.writable===!1?`non-writable ${m.fieldType} field`:`known export-only ${m.fieldType} field`;for(let[m,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(m)});else if(e.ignoreUnknownColumns)c.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new F(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let m of r){let h=p.get(m);if(!h)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let h=[],g={};for(let S of r){let N=m[l.get(S)];try{g[S]=Xc(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(m=>[m,{fieldType:p.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns: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 tp(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 y=l.get(R);if(E.kind==="FIELD"){y instanceof Map&&Nr(u,R,"object is not accepted for a top-level field."),d.set(R,y);continue}Array.isArray(y)||Nr(u,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),h=y.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())m.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 np(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(y=>[y.field,c[s.get(y.field)]])),subtables:new Map(p.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:c[s.get(o)]}:{}},u.push(d)}else if(d){for(let y of l){let m=c[s.get(y.field)];if(m!==""&&m!==d.top.get(y.field))throw new F(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${E}.`)}if(o){let y=c[s.get(o)];if(y!==""&&y!==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 y of p){let m=c[s.get(y.rowIdSourceHeader)],h=new Map(y.children.map(S=>[S,c[s.get(S)]]));if(m===""&&[...h.values()].every(S=>S===""))continue;let g=d.subtables.get(y.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:h})}}),u.length===0)throw new F("CSV has no parent rows.");return{records:u}}var em=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),tm=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function us(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function ap(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)rp(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)rp(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=>nm(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 nm(e,t,n,r,i,o,a,s){let l=[],p={};for(let c of t)e.top.has(c.field)&&ls(e.top.get(c.field),r.get(c.field),o,p,c.field,l,ss(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)||ip(c,o,u,l,ss(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 y=l.length,m={},h=i.get(c.subtableCode);for(let g of c.children){let S=h.get(g),N=ss(e,a,g,c.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?ls(R.values.get(g),S,o,m,g,l,N):ip(S,o,m,l,N)}l.length===y?(f.validChildRows++,E.push(m)):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 rp(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&&tm.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function ip(e,t,n,r,i){let o=kt(e.defaultValue)?"":e.defaultValue;ls(o,e,t,n,e.code,r,i,!kt(e.defaultValue))}function ls(e,t,n,r,i,o,a,s=!1){let l=rm(e),p=Ie(l,t,n);p.ok?r[i]={value:im(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function rm(e){return op(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:op(t)?t.lexeme:t):e}function op(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function im(e,t){return em.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ss(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 cs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function ps(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":om(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 om(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 ds(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 sp(e,t){return ds(e,t,"DROP")}function lp(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 up(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 am(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function cp(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 pp(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=am(p.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),y=s.subtables.get(f)??[],m=o.subtables.get(f)??[],h=0,g=0,S=0,N=y.map((w,_)=>{let O=m[_]??{};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:y.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 fs="#__import_source";function dp(e){return{...e,from:{appId:0,alias:null,cteName:fs}}}function sm(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Es(e,t){let n=e.map(sm),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 lm="\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"}},Te=new WeakMap;function kp(e){return Te.get(e)}var vn=new WeakMap,No=new WeakMap,fp=new WeakMap,um=1;function cm(e,t){if(t)return t;let n=fp.get(e);return n||(n=`client:${um++}`,fp.set(e,n)),n}async function Ps(e,t,n={}){let r=Date.now(),i=cm(t,n.cacheContext),o=Hh(e,n.enableImport===!0),a=pm(),s=dm(t,a),l={aborted:!1},p=Mp(s,l,!fm(o)||rc(o)),u=await Rm(o,p,n,i);a.elapsedMs=Date.now()-r;let d={...Em(u,l),metrics:a};if(u.type==="SELECT"){let c=Te.get(u);c&&Te.set(d,c)}return d}function pm(){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 dm(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 Ep=Symbol("searchAbortFailClosed");function Mp(e,t,n){return n&&e[Ep]?e:{...e,...n?{[Ep]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new _n;return i}}}function fm(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Em(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(lm),{...e,warnings:[...n]}}async function Ns(e,t,n){return qc(e,{select:r=>kr(r,t,n),dml:r=>xp(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await Un(r,t,n);return is(r,i)},joinServerFunctionPlan:async r=>{let i=await Lo(r,t,n),o=Oo(r,i);return o===null?null:(Nn(o.joinPlan)&&Us.set(r,o),o.joinPlan)}})}async function Rm(e,t,n,r){let i=await Ns(e,t,r);e.type!=="EXPLAIN"&&zc(i);let o=hs(e);if(o!==null&&!Ih(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(oi("phase15b",e),Nl("phase15b",e),yn(e),e.type!=="EXPLAIN"&&await wm(e,t,r),e.type==="IMPORT")return hh(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 Cp(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 nd(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 mm(e,t,n,r);case"SELECT":return wt(e,t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return qp(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return $m(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return yh(e,t,n,r);case"INSERT_SELECT":return ad(e,t,n,r);case"UPSERT":return Mh(e,t,n,r);case"UPSERT_SELECT":return cd(e,t,n,r);case"UPDATE":return Cp(e,t,n,r);case"DELETE":return kh(e,t,n,r);case"REORDER":return Gh(e,t,n,r);case"SHOW_APPS":return pd(t);case"DESCRIBE":return dd(e,t,r);case"EXPLAIN":return Jh(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 Am(e,t,n,r)}}var Cs=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Os=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ls(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 ym(e=!1){let t=e?Os:Cs;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 mm(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return hm(e,t,n,r)}async function hm(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=_a(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=Ls(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 y=new Map([...o].map(([I,k])=>[I,k.fieldType])),m=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:y,fieldOptions:m,allowKlike:!1}),g=h===null?"":$(h),N=(await Ae(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?Os:Cs],rows:w,rowCount:w.length,validateStats:{errorRecords:v.size,errorCount:P}};return Te.set(C,ym(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])||!gm(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 gm(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||!yi(i.semantics,r.semantics))return!1}return!0}function hs(e){if(Array.isArray(e)){for(let t of e){let n=hs(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=hs(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 Am(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(gs(e));case"SCALAR_SUBQUERY":try{return await Sm(e.query,t,n,r,i)}catch(o){throw o instanceof On?new Ur(o.message):o}}}async function Sm(e,t,n,r,i){let{query:o,probed:a}=Tm(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 Tm(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 gs(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=gs(e.left),n=gs(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(y=>f.get(y)?.fieldType==="STATUS"))return;let R=await Bs(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(me(c,f));if(!R)return;let y=R.semantics??q(R),m=R.fieldType==="STATUS"&&u.has(c.appId)?{...y,optionOrder:u.get(c.appId)}:y;return hn(m,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=>yo(E,c.field)!==void 0))return f.length>1?x("string"):void 0}}function _s(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 Fp(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=Fs(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 xp(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 xp(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),Nm(e))return s=Lm(e),o&&Te.set(s,await Ss(e,s.columns,t,r,i,a)),s;let l=await Ds(e,t,r,i);await fd(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=is(e,g);S.eligible&&rs(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 Dm(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let y=Kp(e,n,R),h=c!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Mp(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await _m(e,h,y.effectiveOptions,r,R,E):s=await Bm(e,h,y.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&d===void 0,E,d,l)}catch(g){Bp(y,g)}return o&&Te.set(s,await Ss(e,s.columns,t,r,i,a)),s}async function Ds(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=Pc(e,(p,u)=>o[u]),s=e.groupBy,l=Nc(s,e.columns,a);return Im(e,s,l),l}function Im(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 wm(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 bm(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=me(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(m=>m.cteName===null&&s(m,c.field)!==null).length,R=i.some(m=>l(m,c.field)),y=ve(u);return{canonicalId:`source:${d}:APP${u.appId}:${f}`,directKey:c.tableAlias&&y?`${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(y=>ve(y)===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 bm(e,t,n,r),s=Zl(e,a,Xl);s&&Mr.set(e,s)}function Pm(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 Kp(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 Bp(e,t){throw e.reasons.size>0&&t instanceof Pe?new Pe(Pm(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function Rp(e,t){try{return await t()}catch(n){Bp(e,n)}}function st(e){return e?.type==="BOOLEAN"&&e.value===!1}function Nm(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"?vs(e):!1}function Cm(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"?vs(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 vs(e){return e.args.some(t=>Cm(t))}function Om(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(vs(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 Lm(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.");Om(e);let t=za([{}],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 _m(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Hp(e):e,s=ai(a),l=i?.kind==="CANONICAL_LOCAL"?Lt(e,e.from):s.fields,p=await Ms(e,t,r),u=xs(e,p),d=e.columns.some(_=>_.type==="CASE_COL")?await Un(e,t,r,void 0,_s(e)):void 0,c=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,y=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&m!==null&&m<=c&&!ue(e.where)?m:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let _=await Ic({client:t,app:s.app,fields:s.fields,query:Ga(e),offset:e.offset??0,limit:e.limit});g=_.records,_.cleanupWarning&&f.add(_.cleanupWarning)}else if(y)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let _=e.where?$(e.where):"";g=await Ae(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));y||(S=ja(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,qa(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 Dm(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=>!bc(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 $p(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 Us=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=Rc(e.where,r),o=yc(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,$p(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),Ym(s,t,n)]),d=vm(l).filter(c=>p.get(c)==="STATUS");if(d.length>0){let c=await Ks(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 vm(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 Um(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 Gp(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ve(n)===t)}function ks(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Ms(e,t,n){let r=Um(e);if(r.length===0)return new Map;let i=new Set,o=ks(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=Gp(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 Vp(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"){Vp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(To(e.left,t),To(e.right,t))}function As(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"){As(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"?As(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Or(r,t)}}function km(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Vp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?To(n.expr,t):n.type==="STRFUNC_COL"?As(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Or(n.expr,t);return t}var Mm=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Fm(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":Mm.has(e.fieldType)?"string":void 0}async function Wp(e,t,n,r){let i=km(e.columns);if(i.length===0)return;let o=new Set,a=ks(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=Gp(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(y=>E.get(y)?.fieldType==="STATUS"))return;let R=await Bs(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 y=u.find(m=>ve(m)===f.tableAlias);if(!y)return;if(y.cteName!==null)return r?.get(y.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(y.appId)?.get(me(y,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(me(e.from,f.field))}else{let y=u.flatMap(m=>{if(m.cteName!==null){let g=r?.get(m.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let h=s.get(m.appId)?.get(me(m,f.field));return h?[d(h,m.appId)]:[]});return y.length!==1?void 0:y[0]}if(!E)return;let R=f.tableAlias!==null?u.find(y=>ve(y)===f.tableAlias):e.joins.length===0?e.from:void 0;return d(E,R?.appId??e.from.appId)}}function me(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function yo(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:Fm(e),fieldType:e.fieldType,semantics:t===void 0?n:hn(n,t,e.code)}}function Hp(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 Yp(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 xm=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 xm.has(e.func)?Y("number"):Y("string")}function Dn(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?Yp():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&&yi(n(r.semantics),n(t.semantics)))?e.every(i=>yi(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Yp("KSQL_MIXED_UNSUPPORTED"):ze()}function Fs(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 Km(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 Ss(e,t,n,r,i,o=!1){let a=new Map;Km(e)&&await Promise.all(ks(e).map(async R=>{if(a.has(R.appId))return;let y=await Q(R.appId,n,r);a.set(R.appId,new Map(y.map(m=>[m.code,m])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),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 m=s.find(g=>ve(g)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let h=a.get(m.appId)?.get(me(m,R.field));return h?qe(h,m.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 m=a.get(e.from.appId)?.get(me(e.from,R.field));return m?qe(m,e.from.appId):$t(R.field)}let y=s.flatMap(m=>{if(m.cteName!==null){let S=i?.get(m.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(m.appId)?.get(me(m,R.field)),g=h?qe(h,m.appId):$t(R.field);return g?[g]:[]});return y.length===1?y[0]:void 0},u=R=>{if(!l)return;let y=s.filter(m=>{if(R.tableAlias!==null&&ve(m)!==R.tableAlias)return!1;let h=me(m,R.field);return a.get(m.appId)?.has(h)===!0||$t(R.field)!==void 0});return y.length===1?y[0].appId:void 0},d=(R,y)=>{let m=u(y);return R&&m!==void 0?{...R,publicSourceApp:m}: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 y=Be(R),m=d(p(y),y);m&&c.set(R,m)}return c}if(f)for(let R of t){let y=Be(R),m=d(p(y),y);m&&c.set(R,m)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,y)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[y];if(!m)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=Fs(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(m,h)}),c}function jp(e,t){let n=Te.get(e),r=Te.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 xs(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:yo(p,s.field)??t.get(p.appId)?.get(me(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:yo(e.from,s.field)??t.get(e.from.appId)?.get(me(e.from,s.field));if(n.some(p=>p.cteName!==null))return;let l=r.flatMap(p=>{let u=yo(p,s.field)??t.get(p.appId)?.get(me(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 Bm(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),Ms(e,t,r),Wp(e,t,r,i)]),R=xs(e,f),y=await Un(e,t,r,i,He(e.having)||_s(e)),m=Fp(e,y),h=Us.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);ta(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 Rd(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 Zp(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}=Qa({tables:K,stmt:e,scalarCache:L,optionOrders:H,sortKinds:oe,orderSemantics:de,fieldTypeResolver:R.row,fieldSemanticsResolver:y,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:m,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 qp(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?qp(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((y,m)=>{R[y]=E[p[m]??y]??""}),R}),d=[...a.rows,...u],c=e.all?d:zp(d,l),f={type:"SELECT",rows:c,columns:l,rowCount:c.length};return i&&Te.set(f,jp(a,s)),f}function zp(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 $m(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 pd(t):s.query.type==="DESCRIBE"?l=await dd(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:Te.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(y=>{let m={};return u.forEach((h,g)=>{m[h]=y[d[g]??h]??""}),m}),f=[...l.rows,...c],E=e.all?f:zp(f,u),R={type:"SELECT",rows:E,columns:u,rowCount:E.length};return o&&Te.set(R,jp(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 Gm(e,t,n,r,i);return o&&Te.set(s,await Ss(e,s.columns,t,i,r)),s}async function Gm(e,t,n,r,i){await Co(e,t,i,r);let o=Mr.get(e),a=await Ds(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),fd(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),y=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,m=Kp(e,n,y),h=m.effectiveOptions,[g,S,N]=await Promise.all([Lo(e,t,i),Ms(e,t,i),Wp(e,t,i,r)]),w=xs(e,S),_=await Un(e,t,i,r,He(e.having)||_s(e)),O=Fp(e,_),v=Oo(e,g)??En(e,g);ta(v);let P=t,L=await Rd(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(yp)),b.set(e.from.alias,D.columns)}else{let D=await Rp(m,()=>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=>Rp(m,async()=>{if(D.table.cteName!=null){let M=u(D.table.cteName);A.set(D.table.alias,M.rows.map(yp)),b.set(D.table.alias,M.columns)}else{let M=D.table.alias?v.joinConditions.get(D.table.alias)??null:null,se=await Zp(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}=Qa({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 yp(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=m=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${m} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let m=o&&p?xl(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=m&&g?`(${m}) and (${g})`:m||g;return(await Me(n.getRecords,t.appId,S,c,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let y=(await Me(n.getRecords,t.appId,"",c,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return $c(y,t.subtableCode)}var Jp=50;function Vm(e){let t=Ne(e);return t!==null?JSON.stringify(t):e}function Ts(e){return JSON.stringify(e)}function jt(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Vm(n):n))}function Gr(e,t){let n=e.raw.get(Ts(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(y=>o.get(y)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},u=(y,m,h)=>{let g=y.get(m);(g===void 0||h>g)&&y.set(m,h)},d=(y,m)=>{u(p.raw,Ts(y),m),l.some(Boolean)&&u(p.normalized,jt(y,l),m)},c=new Set,f=[],E=new Set;for(let y of n){let m=Ts(y);E.has(m)||(E.add(m),y.some(h=>h==="")?f.push(y):c.add(y[0]))}let R=["$id",...t];for(let y of kn([...c],Jp)){let m=`${t[0]} in (${y.map(Io).join(",")})`,h=await Ae(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&d(t.map(N=>Xp(g[N]?.value)),S)}}for(let y of f){let m=t.map((g,S)=>`${g} = ${Io(y[S])}`).join(" and "),h=await Ae(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});h.length!==0&&d(y,Wm(h))}return p}function Wm(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 Xp(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 Qp=50,Hm=6,mp=Qp*Hm;async function Zp(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 y=n.get(f);if(!y)return null;let m=new Set;for(let O of y){let v=O[E]?.value,P=Xp(v).trim();P.length>0&&m.add(P)}let h=[...m];if(h.length===0)return[];if(h.length>mp)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 ${mp} \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,Qp),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 hp=new Map,gp=new Map,Ap=new Map,Sp=new Map,Tp=new Map,Ip=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(Sp,n,e);if(r)return r;let i=t.getFields(e);return Fn(Sp,n,e,i),i}async function Je(e,t,n){let r=Mn(Ip,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Fn(Ip,n,e,i),i}async function Ks(e,t,n){let r=Mn(Tp,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Fn(Tp,n,e,i),i}async function Bs(e,t,n){let r=await Ks(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(hp,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(hp,n,e,o),o}async function Is(e,t,n){let r=Mn(gp,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(gp,n,e,o),o}async function Ym(e,t,n){let r=await Is(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function wp(e,t,n){let r=Mn(Ap,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(Ap,n,e,o),o}function jm(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 qm(e,t,n,r){let i=jm(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(me(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(me(e.from,d.field));return f?qe(f,e.from.appId):$t(d.field)}let c=o.flatMap(f=>{if(f.cteName!==null){let y=r?.get(f.cteName),m=y?.columns.includes(d.field)?y.columnMeta?.get(d.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(me(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=Fs(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 Ks(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([zm(e,t,n),Jm(e,t,n),qm(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function zm(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 Is(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 Is(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}async function Jm(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 wp(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 wp(a.appId,t,n);for(let[l,p]of s.entries())r.set(`${a.alias}.${l}`,p)}return r}function ed(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 Xm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Qm(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||Xm.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 Qm(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 Zm(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 Lh(e,a,o)}async function eh(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await td(e,t,n,r,i);return Dh(e,a,o)}async function td(e,t,n,r,i){let o=await $e(e.appId,e.fields,t,r),a=new Map(o.map(y=>[y.code,y.fieldType])),s=ld(e),l=new Set;for(let y of s){let m=jt(y,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(m))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(m)}let p=await Vr(e.appId,e.keyFields,s,t,n,a),u=s.map(y=>Gr(p,y)),d=new Map,c=[...new Set(u.filter(y=>y!==void 0))],f=["$id","$revision",...o.filter(y=>!y.inSubtable&&y.fieldType!=="FILE").map(y=>y.code)];for(let y of kn(c,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${y.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of m.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&d.set(g,h)}}let E=u.map((y,m)=>({sourceRowIndex:m,...y===void 0?{}:{targetId:y,snapshot:d.get(y)}})),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 th(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=ka(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 tc(o,t,a);return{...s,diagnostic:_e(a,s)}}async function nh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await td(e,t,n,r,1),o=Ma(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 nc(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 rh(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=rh(n?Ro(n):[],r?Ro(r):[]),a=ih(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 ih(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 nd(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Zm(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return eh(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await sd(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await $s(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 $s(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=Gc(E),y=(await oh(e,l,t,n,r,i,c,e.type==="UPDATE"?R:void 0)).sort((b,C)=>b.rowNumber-C.rowNumber),m=y.filter(b=>b.mode==="update"),h=e.type==="UPDATE"?lh:e.type.startsWith("UPSERT")?b=>uh(b,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=m.length>0&&g!==void 0,N=new Map;if(S){Ca(m,u,d);let b=await g({appId:e.appId,candidates:m,fields:R}),C=new Map;for(let I of m){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=Vc(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 m){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=Oa(y,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 y){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=Wc({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:y.length,validRows:y.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:y,invalidRowNumbers:v,columnMeta:U}}async function bp(e,t,n,r,i,o){let a=await $s(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 y=await t.postRecords({app:e.appId,records:p.slice(R,R+100).map(m=>m.record)});E.push(y.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(y=>y.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 oh(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return sh(e,n,r,i,o,s);let l,p,u,d,c;if(e.type==="INSERT"||e.type==="UPSERT")Pp(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 Vs.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");Pp(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)))),y=e.keyFields.map(S=>E.get(S)==="NUMBER"),m=new Map;for(let S of R){let N=jt(S,y);m.set(N,(m.get(N)??0)+1)}let h=No.has(e);if(h&&[...m.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await 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&&(m.get(jt(w,y))??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 Gs(e){return e.checkGroups?gn(e.checkGroups):[]}function Pp(e,t){let n=new Set(t);for(let r of Gs(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 ah=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 mu(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(ah.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 sh(e,t,n,r,i,o){if(e.from)return ph(e,e.from,t,n,r,i,o);await Ed(e.assignments,t,n,r);let a=await he(e.appId,t,r),s=rd(e,a);zt(e,ws(a,e.appId));let l,p=new Map,u=new Map;if(bi(e)){let d=da(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=mo(f.records),p=u,l=Ea(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=mo(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=mo(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:ch(p.get(d.id),e.appId),evaluationFieldTypes:ws(a,e.appId)}))}function mo(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 lh(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 uh(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 rd(e,t){if(e.from)return[];let n=new Set;for(let r of Gs(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 ch(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 ws(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function ph(e,t,n,r,i,o,a){let s=await Ad(e,t,n,i,o);zt(e,s.evaluationTypes);let l=await id(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?mo(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:fg(d.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var dh=Jp,fh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function id(e,t,n,r,i,o,a){let s=await Eh(e,t,n,i),l=await Ad(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 Rh(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=Np(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([...Uh(e),...l.targetFields,...a??[]])],y=t.targetFilter===null?"":tr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],h=new Set,g=0;for(let N of kn([...f.values()],dh)){let w=`${t.targetJoinField} in (${N.map(Io).join(",")})`,_=y?`(${w}) and (${y})`: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),m.push(v))}}let S=[];for(let N of m){let w=N[t.targetJoinField]?.value,_=Np(w,s,"target");if(_===null)continue;let O=c.get(_);O!==void 0&&S.push({target:N,source:O})}return S}async function Eh(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 Rh(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(fh.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 Np(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 $s(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 yh(e,t,n,r){if(e.applyBlocks?.length)return th(e,t,n,r);if(e.checkGroups?.length)return Wr(e,t,n,r);if(e.subtableCode)return Fh(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 mh(){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 hh(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),y=e.source.kind==="JSON"?tp(e.source,R,d,n.maxRecords??1e4):np(e.source,R,d,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=ap(y,d,c,E,m);if(e.source.kind==="CSV")return gh(e,y,h,c,t,n,i);us(h,e.rejectLimit);let g=[...new Set(d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],S=ps(h.errors,g),N=[...g,...cs],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:m,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(lp(y),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=up(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=>sp(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 Ah(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:mh(),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 nd(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",bp(s,t,n,r,i,1));return p(d)}let u=await(s.type==="UPSERT_SELECT"?cd(s,t,n,r,i):ad(s,t,n,r,i));return p(u)}async function gh(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");cp(t.records);let s=t.records.map(A=>A.recordNumberSourceValue??""),l=Es(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],u=[...new Set(r.filter(A=>!A.inSubtable&&A.fieldType==="SUBTABLE").map(A=>A.code))],d=await Ae(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}}),y=pp(t.records,R,E,c,f),m=y.flatMap(A=>[...A.errors]),h=new Set(y.filter(A=>!A.valid).map(A=>A.parentRow)),g={...n,parents:R,errors:m,invalidParentRows:h};us(g,e.rejectLimit);let S=y.filter(A=>A.valid),N=y.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=ps(m,v),L=[...v,...cs];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(m.length&&!e.onErrorSkip){let A=m[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=ds(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 Ah(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=as(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=Es(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"])),y=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}}),m=[e.recordNumberSourceHeader,...e.fields],h=Oa(y,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),g=[...m,...Sn],S={type:"VALIDATION",operation:"UPDATE",validatedRows:y.length,validRows:y.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=y.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 Sh(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:Te.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"?os(a.source,s,u,l):as(a.source,s,l,e.fields,o);if(a.audit=d.importAudit,a.source.kind==="JSON"||!a.source.projection)return d;let c=dp(a.source.projection),f=new Map(i??[]);f.set(fs,d);let E=await Yt(c,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Te.get(E)}}var Vs={materialize:Sh};function od(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 ad(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 Vs.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(od(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((y,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(y))return;let h=f[p[m]]??"";R[y]={value:ed(h,u.get(y))}}),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 Cp(e,t,n,r,i){if(e.applyBlocks?.length)return sd(e,t,n,r);if(e.checkGroups?.length&&st(e.where)){let E=await $e(e.appId,e.assignments.map(y=>y.field),t,r);await lt(e.appId,e.assignments.map(y=>y.field),E,t,r);let R=await he(e.appId,t,r);return rd(e,R),zt(e,ws(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),xh(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 vh(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Ed(e.assignments,t,n,r);let p=await he(e.appId,t,r);if(bi(e)){let E=da(e),y=(await Me(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=Ea(e,y,p);if(qt(m.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(y.length,"UPDATE"))throw new te("UPDATE",y.length);for(let h of m)await t.putRecords(h);return{type:"UPDATE",updatedCount:y.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 sd(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 Th(e,t,n,r,i);let o=await Q(e.appId,t,r),a=nt(e,o),s=Ni(e,o),l=Ta(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=Uu({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),y=Ue(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),m=d.parentRows>R||d.changedSubtableRows>y;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:y,wouldExceed:m}}),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>y)throw new Error(`ArgumentError: APPLY changed subtable rows (${d.changedSubtableRows}) exceed dmlMaxSubtableRows (${y}).`);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:y,wouldExceed:m}});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 Th(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 Ph(e,t,n,s,r);else{let f=Ni(e,s),E=tr(e).query,R=o+1;p=await Ae(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 _h(e,u,s);Ol("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 ec(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 Ih(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&bo(t)&&ue(t.where)}var wh=`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 lh(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${sh}`)}async function uh(e,t,r,n,i){let o=n.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=La(e.where,{fieldTypes:s,fieldOptions:l});lh(p);let u=p.prefilter===null?"":$(p.prefilter),d=new Set(Ai(e,n));for(let E of ch(e.where))d.add(E);let c=await ph(e.appId,e.where,a,t,i);return(await ye(t.getRecords,e.appId,u,[...d],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:nt(E,null)})).filter(({row:E})=>X(e.where,E,c.fieldTypeResolver,p.appliedKlikes,c.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function ch(e){return ms(e)}async function ph(e,t,r,n,i){let s=[...dh(t)].some(u=>r.get(u)?.fieldType==="STATUS")?await Ns(e,n,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":r.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return Er(q({fieldType:"__ID__"}),e,"$id");let d=r.get(u.field);if(!d)return;let c=d.semantics??q(d),f=d.fieldType==="STATUS"&&s?{...c,optionOrder:s}:c;return Er(f,e,d.code)}}}function dh(e){let t=new Set,r=n=>{if(Array.isArray(n)){n.forEach(r);return}if(n===null||typeof n!="object")return;let i=n;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(r)}};return r(e),t}function fh(e,t,r){let n=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]:[...Ge(r,e.fields).payloadFields,...rn],a=t.guards.parentRows,s=wa(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:n.length,columns:o,errors:n,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Dn(l),guards:vn(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Nr.set(p,So(o,r,e.appId)),p}function Eh(e,t,r){let n=t.validations,i=n.flatMap(p=>p.errors),o=n.reduce((p,u)=>p+(u.invalidRows>0?1:0),0),a=n[0]?.columns?[...n[0].columns]:[...Ge(r,e.assignments.map(p=>p.field)).payloadFields,...rn],s=an(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:Dn(s.branches[0]),guards:vn(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 Nr.set(l,So(a,r,e.appId)),l}function Rh(e,t,r){let n=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...n,...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??[...Ge(r,e.fields).payloadFields,...rn],l=ba(t),p=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),d=Dn(p),c=Dn(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:vn(p)},update:{apply:c,guards:vn(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 Nr.set(f,So([...s],r,e.appId)),f}function Dn(e){return e.targets.map(t=>{let r=t.operations.map(n=>({kind:n.kind,...n.matchedRows!==void 0?{matchedRows:n.matchedRows??void 0}:{},...n.changedRows!==void 0?{changedRows:n.changedRows??void 0}:{},...n.addedRows!==void 0?{addedRows:n.addedRows??void 0}:{},...n.removedRows!==void 0?{removedRows:n.removedRows??void 0}:{},...n.value!==void 0?{value:n.value}:{},...n.changed!==void 0?{changed:n.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:r,changedSubtableRows:t.changedCount??0,deletedRows:Bt(t,"REMOVE")}:{field:t.field,operations:r,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Bt(t,"ADD"),removedValues:Bt(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function vn(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 lt=100,Te=500;function De(e,t,r){let n=e??r;if(!Number.isSafeInteger(n)||n<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return n}function So(e,t,r){let n=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=n.get(a);if(s){o.set(a,je(s,r));continue}o.set(a,Y(i.has(a)?"number":"string"))}return o}async function mh(e,t,r,n,i,o){let a=await Yp(e,t,r,n,i,o),s=await Re(e.appId,r,i),l=oa(e,a,s),p=e.assignments.map(c=>c.field),u=await Q(e.appId,r,i),d=await st(e.appId,p,u,r,i);if(Wt(l.flatMap(c=>c.records.map(f=>f.record)),p,u,d),n.confirm&&!await n.confirm(a.length,"UPDATE"))throw new te("UPDATE",a.length);for(let c of l)await r.putRecords(c);return{type:"UPDATE",updatedCount:a.length}}function yh(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let r=n=>{if(Array.isArray(n)){n.forEach(r);return}if(n===null||typeof n!="object")return;let i=n;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))r(o)};for(let n of e.assignments)n.value.type!=="SOURCE_FIELD"&&r(n.value);return[...t]}async function hh(e,t,r,n){if(await wr(e,t,n),at(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Th(e,t,r,n);let i=du(e),a=(await vi(t.getRecords,i.app,i.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1})).ids;if(r.confirm&&!await r.confirm(a.length,"DELETE"))throw new te("DELETE",a.length);let s=fu(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function gh(e,t,r,n){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Ky(e,t,r,n);if(e.checkGroups?.length)return Fn(e,t,r,n);let i=await Be(e.appId,e.fields,t,n),o=await st(e.appId,e.fields,i,t,n),a=[],s=[],l=await Re(e.appId,t,n),p=Xp(e),u=await xn(e.appId,e.keyFields,p,t,r,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:ht(h.expr,{},l.get(m))}:E[m]={value:et(h,l.get(m))}});let R=Mn(u,p[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),Wt([...a,...s.map(c=>c.record)],e.fields,i,o),r.confirm&&a.length+s.length>0){let c=a.length+s.length;if(!await r.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 Xp(e){return e.values.map(t=>e.keyFields.map(r=>{let n=e.fields.indexOf(r);if(n===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${r}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[n];return i.type==="STRING"?i.value:i.type==="NUMBER"?G(i):i.type==="CASE_VALUE"?Ne(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function _s(e,t,r,n){if(t.length===0)return;let i=await Re(e,r,n);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 Ah(e,t,r,n){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 ye(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),s=To(a),l=new Map;for(let u of e.values){let d=Ep(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:Ep(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=[...Kn(c,i),...d];p.push(Jp(e.appId,u,Bn(c),i,E))}for(let u of p)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function Sh(e,t,r,n){let i=e.subtableCode;if(!bn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];ot(e.where,o);for(let c of e.assignments)c.value.type==="CASE_VALUE"&&co(c.value.expr,o);let a=await _s(e.appId,o,t,n),s=await ye(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=Ds(s,i).filter(c=>X(e.where,c.flat,a));if(r.confirm&&!await r.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:gi(R.value,c.flat,a)}}f.set(c.rowId,E)}let d=To(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let m=Kn(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(Ih(e.appId,c,Bn(E),i,m))}return{type:"UPDATE",updatedCount:p.length}}async function Th(e,t,r,n){let i=e.subtableCode;if(!bn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];ot(e.where,o);let a=await _s(e.appId,o,t,n),s=await ye(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=Ds(s,i).filter(c=>X(e.where,c.flat,a));if(r.confirm&&!await r.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=To(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let R=Kn(E,i),m=new Set(f),y=R.filter((h,g)=>!m.has(g));await t.putRecords(Jp(e.appId,c,Bn(E),i,y))}return{type:"DELETE",deletedCount:p.length}}function To(e){let t=new Map;for(let r of e){let n=String(r.$id?.value??"");n&&t.set(n,r)}return t}function Ds(e,t){let r=[];for(let n of e){let i=String(n.$id?.value??""),o=Bn(n),a=Kn(n,t);for(let s=0;s<a.length;s++){let l=a[s],p={...Si(l,s),_pid:i};for(let[u,d]of Object.entries(n))u!==t&&(p[`_p.${u}`]=ps(d?.value));r.push({parent:n,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return r}function Kn(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function Bn(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Jp(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function Ih(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function wh(e,t,r,n,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:r,record:{[n]:{value:i.map(o=>({id:o}))}}}]}}function Ep(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?G(e):e.type==="CASE_VALUE"?Ne(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 bn(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return bn(e.left)||bn(e.right);case"NOT":case"GROUP":return bn(e.expr);default:return!1}}async function bh(e,t,r,n){let i=[];ot(e.where,i);let o=await _s(e.appId,i,t,n),a=await Q(e.appId,t,n);if(at(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 F("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??F("string")},p=await ye(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),u=Ds(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&&X(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(r.confirm&&!await r.confirm(d.size,"UPDATE"))throw new te("UPDATE",d.size);let c=To(p);for(let f of d){let E=c.get(f);if(!E)continue;let m=Kn(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:Ph(E,e.subtableCode,h,g)}));m.sort((h,g)=>Nh(h.flat,g.flat,e.by,l));let y=m.map(h=>h.row.id??"");await t.putRecords(wh(e.appId,f,Bn(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:d.size}}function Ph(e,t,r,n){let i={_pid:String(e.$id?.value??""),_rid:r.id??"",_idx:String(n)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=ps(a?.value));for(let[o,a]of Object.entries(r.value??{}))i[o]=ps(a?.value);return i}function Nh(e,t,r,n){for(let i of r){let o=Rp(i.key,e),a=Rp(i.key,t),s=i.key.type==="FIELD_NAME"?n(Ke(i.key.name)):i.key.type==="ARITH_KEY"?F("number"):i.key.type==="FUNC_KEY"?$t(i.key.expr).semantics??F("string"):F("number"),l=Lt(o,a,s??F("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Rp(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ne(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 Qp(e,t,r,n,i){if(e.checkGroups?.length)return Fn(e,t,r,n,i);let o=await Be(e.appId,e.fields,t,n),a=await st(e.appId,e.fields,o,t,n),s=await Ls.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(jp(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 Re(e.appId,t,n),f=l.map((y,h)=>{let g={};return e.fields.forEach((S,O)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let P=y[p[O]]??"";g[S]={value:Gp(P,c.get(S))}}),g});f.forEach(y=>Wt([y],e.fields.filter(h=>h in y),o,a));let E=f.map(y=>e.keyFields.map(h=>String(y[h]?.value??"")));if(yo.has(e)){let y=e.keyFields.map(g=>c.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=Vt(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 xn(e.appId,e.keyFields,E,t,r,c);if(f.forEach((y,h)=>{let g=Mn(R,E[h]);g!==void 0?d.push({id:g,record:y}):u.push(y)}),r.confirm&&u.length+d.length>0){let y=u.length+d.length;if(!await r.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 Zp(e){let t=await e.getApps(),r=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],n=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:n,columns:r,rowCount:n.length}}async function ed(e,t,r){let n=await Q(e.appId,t,r),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=n.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 Ch(e,t=!1){try{let r=new Jt(e).tokenize(),n=new er(r,{import:t}).parse();return Zn("phase15b",n),dr(n),n}catch(r){throw r instanceof ce||r instanceof T,r}}async function Un(e,t,r,n,i){let o=[];so(e,t,r,n,o,i),await Promise.all(o)}async function td(e,t,r,n,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Un(s.condition,t,r,n,i));await Promise.all(o)}function Pn(e,t,r,n,i){return i!==void 0&&i.size>0?Gt(e,t,r,i,n):It(e,t,r,n)}function so(e,t,r,n,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Pn(a.query,t,r,n,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(Pn(a.query,t,r,n,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":so(e.left,t,r,n,i,o),so(e.right,t,r,n,i,o);break;case"NOT":case"GROUP":so(e.expr,t,r,n,i,o);break;case"EXISTS":{let a=e;i.push(Pn(a.query,t,r,n,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function rd(e,t,r,n){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await It(i.value.query,t,r,n);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 nd(e,t,r,n,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=Pn(u.query,t,r,n,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 id=new WeakMap,od=new WeakMap,ad=new WeakMap;async function Oh(e,t,r,n=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 fs(e,l,r),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 ho(h,l,r);let g=[h.from,...h.joins.map(I=>I.table)].some(I=>I.cteName!==null);if(Z(h).type==="PLAIN"&&!g){let I=await hs(h,l,r);I&&d.set(h,I)}let S=[h.from,...h.joins.map(I=>I.table)].filter(I=>I.cteName===null).map(I=>I.appId);(We(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 P=await On(h,l,r),_=E(h);if(P.capability==="UNSUPPORTED"&&!_)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(P)}).`);p.set(h,P);let N=await Ss(h,l,r),L=As(h,N);if(L&&id.set(h,L),h.orderBy.length>0||h.columns.some(I=>I.type==="WINDOW_COL"&&I.orderBy.length>0)){let I=await _n(h,l,r);if(h.orderMode!=="KINTONE_NATIVE")for(let v of I.semantics.values())v.fieldType==="STATUS"&&v.source&&a.add(v.source.appId);if(lo(h)&&!g&&_?.allowed!==!1){let v=P.capability==="EXACT_PUSHDOWN"?be(h):"FULL_SCAN";u.set(h,(h.orderMode==="KINTONE_NATIVE"?fn:dn)({stmt:h,staticMode:v,whereCapability:P.capability,whereReasons:P.reasons,orderSemantics:I.semantics,maxRecords:n,hasKlike:ae(h.where)}))}}}else if(y.type==="VALIDATE"){let h=m;o.add(h.appId);let g=await Q(h.appId,l,r),S=new Map(g.filter(C=>!C.inSubtable).map(C=>[C.code,C])),O=new Set(g.filter(C=>C.inSubtable).map(C=>C.code)),P=Aa(h,g),_=Rr(h.checkGroups??[]),N=ms(h.where);for(let C of _){if(C.field!=="$id"&&!S.has(C.field)&&!O.has(C.field))throw le(`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)&&O.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 N){if(C!=="$id"&&!S.has(C)&&!O.has(C))throw new Error(`ArgumentError: WHERE field ${C} does not exist in APP${h.appId}.`);if(C!=="$id"&&!S.has(C)&&O.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 L=new Map([...S].map(([C,w])=>[C,w.fieldType]));L.set("$id","RECORD_NUMBER"),Ht(h,L);let I=Le(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(I.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(I)}).`);let v=new Map([...S].map(([C,w])=>[C,w.fieldType])),k=new Map([...S.values()].flatMap(C=>C.optionOrder?[[C.code,new Set(Object.keys(C.optionOrder))]]:[])),A=h.where===null?null:I.capability==="EXACT_PUSHDOWN"?h.where:sr(h.where,{allowUnqualifiedFields:!0,fieldTypes:v,fieldOptions:k,allowKlike:!1}),b=P.some(C=>C.field.fieldType==="NUMBER");b&&(s.add(h.appId),await ze(h.appId,l,r)),od.set(h,{targetFields:P.map(C=>C.subtableCode?`${C.subtableCode}(${C.field.code})`:C.field.code),fetchFields:[...new Set(["$id",...P.map(C=>C.subtableCode??C.field.code),...N,..._.map(C=>C.field)])],subtables:new Map([...new Set(P.flatMap(C=>C.subtableCode?[C.subtableCode]:[]))].map(C=>[C,P.filter(w=>w.subtableCode===C).length])),capability:I,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,r);if(tt(g,S),Ro(g)){let O=S.filter(_=>!_.inSubtable),P=La(g.where,{fieldTypes:new Map(O.map(_=>[_.code,_.fieldType])),fieldOptions:new Map(O.flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[]))});ad.set(g,P)}}let h=m;(h.type!=="UPDATE"||!Ro(h))&&E(h)?.allowed!==!1&&await wr(h,l,r)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&ft(e)){let m=Et(e),y=await On(m,l,r),h=E(m);if(y.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kt(y)}).`);if(p.set(m,y),lo(m)&&h?.allowed!==!1){let g=await _n(m,l,r);u.set(m,(m.orderMode==="KINTONE_NATIVE"?fn:dn)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?be(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:n,hasKlike:ae(m.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function mp(e){return[...[...e.fieldApps].sort((t,r)=>t-r).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,r)=>t-r).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,r)=>t-r).map(t=>` metadata API: number precision APP${t}`)]}function Lh(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 yp(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 Sn(e){try{let t=e;switch(t.type){case"BINARY":return`${xe(t.left)} ${Lh(t.op)} ${xe(t.right)}`;case"NULL_CHECK":return`${xe(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Sn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Sn(t.right)})`;case"NOT":return`NOT (${Sn(t.expr)})`;case"GROUP":return`(${Sn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function _h(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection)return[` ${z(e.rejection.functionName)?"relative date function":"kintone function"}: ${e.rejection.functionName}`," plan status: rejected",` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"];let t=[];for(let r of e.nodes){let n=r.fullScanExactPlan;if(r.allowed&&r.allowForm==="FULL_SCAN_EXACT"&&n){for(let a of n.prefilterPlan.exactRelativeLeaves){let s=gp(a),l=a.left.type==="FIELD"?a.left.field:void 0,p=yp(a.op),u=r.capability?.reasons.find(d=>d.functionName===s&&(l===void 0||d.field===l)&&d.operator===p);t.push(` ${hp(s)}: ${s}`,` ${Ap(s)}: kintone server whole-WHERE exact`,` field: ${u?.field??l??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let o=n.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${o}`," client residual: (none)",` ${Sp(n.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${o}`);continue}let i=r.prefilterPlan;if(r.allowed&&i?.prefilterWhere&&i.residualWhere){for(let a of i.exactRelativeLeaves){let s=gp(a),l=a.left.type==="FIELD"?a.left.field:void 0,p=yp(a.op),u=r.capability?.reasons.find(d=>d.functionName===s&&(l===void 0||d.field===l)&&d.operator===p);t.push(` ${hp(s)}: ${s}`,` ${Ap(s)}: kintone server exact prefilter`,` field: ${u?.field??l??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let o=$(i.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${o}`,` client residual: ${Sn(i.residualWhere)}`,` ${Sp(i.exactRelativeLeaves)}: 0`,` kintone query: ${o}`);continue}for(let o of r.functionNames){let a=r.capability?.reasons.find(s=>s.functionName===o);if(!z(o)){t.push(` kintone function: ${o}`," kintone function evaluation: kintone server",` field: ${a?.field??"(unknown)"} (${a?.fieldType??"unknown"})`,` operator: ${a?.operator??"(unknown)"}`,` where capability: ${r.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${r.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${o}`," evaluation: kintone server",` field: ${a?.field??"(unknown)"} (${a?.fieldType??"unknown"})`,` operator: ${a?.operator??"(unknown)"}`,` where capability: ${r.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${r.restQuery||"(\u306A\u3057)"}`)}}return t}function hp(e){return z(e)?"relative date function":"kintone function"}function gp(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 Ap(e){return z(e)?"relative date evaluation":"kintone function evaluation"}function Sp(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&z(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Dh(e,t,r,n,i,o=100,a=Te,s){let l=s??await fs(e.query,t,r),p=await Oh(e.query,t,r,n,l),u=_h(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...mp(p),...u]:[...mp(p),...u,...vh(sd(e.query,void 0,p.capabilities,p.orderPlans,o,a,n,p.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:d.map(c=>({plan:c})),rowCount:d.length}}function vh(e,t){let r=[];for(let n of e)if(r.push(n),n.trim()==="cursor page size: 500"){let i=n.match(/^\s*/)?.[0]??"";r.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return r}function sd(e,t,r,n,i=100,o=Te,a=1e4,s){if(e.type==="UNION")return kh(e,r,n,s);if(e.type==="WITH")return Mh(e,r,n,s);if(e.type==="INSERT")return Kh(e,t,i,o);if(e.type==="INSERT_SELECT")return Bh(e,t,r,n,s);if(e.type==="UPSERT")return Wh(e,t,i,o);if(e.type==="UPSERT_SELECT")return Hh(e,t,r,n,s);if(e.type==="UPDATE")return $h(e,t,r,n,i,o,a);if(e.type==="DELETE")return Vh(e,t);if(e.type==="REORDER")return Yh(e,t);if(e.type==="VALIDATE")return Uh(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 Fe(e,t,r,n,s)}function Uh(e,t){let r=od.get(e),n=[];return t&&n.push(t),n.push(`VALIDATE APP${e.appId}`),n.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),n.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),n.push(" complete input: required (onLimit=truncate disabled)"),r?(n.push(` WHERE capability: ${r.capability.capability}`),n.push(` kintone query: ${r.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":$(r.prefilter)}`),n.push(` audit fields: ${r.targetFields.length===0?"(\u306A\u3057)":r.targetFields.join(", ")}`),n.push(` fetch fields: ${r.fetchFields.join(", ")}`),n.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),r.subtables.size>0&&n.push(` subtable audit: ${[...r.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),n.push(` output schema: ${(e.summary?Rs:Es).join(", ")}`),n.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)"),n.push(` number precision: ${r.numberPrecision?"required":"not required"}`),n.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),n.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),n):(n.push(" metadata: form definition required; number precision required for NUMBER targets"),n)}function Fe(e,t,r,n,i){let o=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=n?.get(e)??(n?[...n].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":be(e),p=xh(e);o&&o.capability!=="EXACT_PUSHDOWN"&&p.push(...o.reasons.map(m=>m.code));let u=[],d=Wu(e,Ln.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=Ct(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=at(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=ei(a?.kind==="CANONICAL_REST_TOP_N"?vp(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?_a(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=id.get(e),y=m??ur(e);if(e.joins.length>0)if(m){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)"),u.push(" residual: original WHERE"),u.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`);for(let L of m.joinPlan.rejections)u.push(` join pushdown not applied: ${L.reason}`)}else{let L=e.joins.some(I=>I.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(I=>I.table)].some(I=>I.cteName!==null||!!I.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${L}`)}let h=Ot(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",S=y.mainCondition,O=Op(e),P=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!dt(e.where)?$(e.where):"",_=S!==null?$(S):P||"(\u5168\u4EF6\u53D6\u5F97)";u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${_}`);let N=m?.joinPlan.items.find(L=>L.targetAlias===e.from.alias);N?(u.push(` pushdown applied: ${m.queriesByAlias.get(N.targetAlias)}`),u.push(` relation: ${N.relation}`)):!m&&O!==null&&u.push(` pushdown candidate: ${$(O)}\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 I=Ot(e,L.table,s),v=L.table.alias?` AS ${L.table.alias}`:"",k=L.type==="INNER"?"JOIN":`${L.type} JOIN`,A=L.table.alias?y.joinConditions.get(L.table.alias)??null:null,b=L.table.alias&&!L.table.subtableCode&&L.table.cteName===null&&e.where?$r(e.where,{tableAlias:L.table.alias}):null,C=A!==null?$(A):"(\u5168\u4EF6\u53D6\u5F97)";u.push(` ${k}: APP${L.table.appId}${v} (${L.table.appId})`),u.push(` kintone query: ${C}`);let w=m?.joinPlan.items.find(U=>U.targetAlias===L.table.alias);w?(u.push(` pushdown applied: ${m.queriesByAlias.get(w.targetAlias)}`),u.push(` relation: ${w.relation}`)):!m&&b!==null&&u.push(` pushdown candidate: ${$(b)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${I.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":I.join(", ")}`)}}return u.push(...Fh(e,r,n,i)),u}function kh(e,t,r,n){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(...Fe(s,`[union:${l+1}]`,t,r,n))}),a}function Mh(e,t,r,n){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...Fe(o.query,`[cte: ${o.name}]`,t,r,n)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...sd(e.query,"[main]",t,r,100,Te,1e4,n)),ft(e)){i.push("");let o=Et(e);i.push(...Fe(o,"[effective: inlined CTE]",t,r,n))}return i}function xh(e){let t=[];(e.from.subtableCode||e.joins.some(n=>n.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 r=Z(e);return r.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):r.type==="GROUPING_SETS"&&t.push(r.source==="ROLLUP"?"ROLLUP \u3042\u308A":r.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(n=>n.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(n=>n.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),dt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),ct(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(n=>n.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function Fh(e,t,r,n){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...Fe(s.right.query,`[subquery:${o++}]`,t,r,n))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...Fe(s.right.query,`[subquery:${o++}]`,t,r,n)));break;case"EXISTS":i.push(""),i.push(...Fe(s.query,`[subquery:${o++}]`,t,r,n));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(...Fe(s.query,`[subquery:${o++}]`,t,r,n)));return e.having&&a(e.having),i}function Kh(e,t,r=lt,n=Te){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,...vs(_i(e,r,n))]:a}function Bh(e,t,r,n,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(...Fe(e.select,"[source SELECT]",r,n,i)),o}function $h(e,t,r,n,i=100,o=Te,a=1e4){if(e.applyBlocks?.length)return Gh(e,t,i,o,a);let s=lu(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=hi(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?kn(e.from.targetFilter):"(none)"}`)}else d.push(` kintone query: ${kn(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(at(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=qh(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(` ${Xh(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(d.push(""),d.push(...Fe(f.value.query,`[subquery: ${f.field}]`,r,n)));return d}function Gh(e,t,r,n,i){let o=_i(e,r,n),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=ad.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=${r} 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: ${kn(e.where)}`,`parent cardinality: ${Qe(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: ${r}`,`dmlMaxSubtableRows: ${n}`,"MCP mutation: disabled in v1",...vs(o)]}function Vh(e,t){let r=[];return t&&r.push(t),r.push(" [DELETE]"),r.push(` target: APP${e.appId} (${e.appId})`),r.push(` kintone query: ${kn(e.where)}`),e.subtableCode||(r.push(" selection: exact native pushdown; JS residual none"),r.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),r.push(at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),r}function Wh(e,t,r=lt,n=Te){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,...vs(_i(e,r,n))]:a}function vs(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let r of e.branches){t.push(`apply branch: ${r.branch}`,` parent rows: ${r.parentRows===null?"unknown (records API not called)":r.parentRows}`,` chunks: ${r.chunk.plannedChunks===null?"unknown":r.chunk.plannedChunks} \xD7 max ${r.chunk.size}`,` revision guard: ${r.guards.revisionRequired?"required":"not required"}`);for(let n of r.targets)t.push(` target: ${n.field} (${n.targetKind})`,` operations: ${n.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${n.changedCount===null?"unknown":n.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function Hh(e,t,r,n,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(...Fe(e.select,"[source SELECT]",r,n,i)),o}function Yh(e,t){let r=`APP${e.appId}$${e.subtableCode}`,n=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(jh).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${r}`,` scope: ${n}`,` by: ${i}`,at(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${kn(e.where)}`),o}function jh(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function kn(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 qh(e){let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"&&mo(r,t),r.type==="STRING_FUNC"&&mo(r,t),(r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP")&&Nn(r,t);return[...t]}function mo(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(mo(e.left,t),mo(e.right,t)),e.type==="STRING_FUNC")for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&Nn(r,t)}async function ld(e,t,r,n,i){let o=Os(e),a=await Re(e.appId,r,n),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 Re(t.appId,r,n),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 le(`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 le(`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 le(`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 le(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${c.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw le(`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 zh(e,t,r){if(!e)return{};let n=nt(e.target,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${r}.${i}`,o])])}function Nn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&Nn(r,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Nn(e.left,t),Nn(e.right,t))}function Xh(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} = ${ud(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 ud(e){return`${Tp(e.left)} ${e.op} ${Tp(e.right)}`}function Tp(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?G(e):e.type==="ARITH"?`(${ud(e)})`:"..."}var te=class extends Error{constructor(r,n){super(`${r} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${n} \u4EF6\uFF09`);this.operation=r;this.affectedCount=n;this.name="OperationCancelledError"}};var me=class extends Error{constructor(t,r,n){super(r),this.name="KsqlEngineError",this.code=t,n!==void 0&&(this.cause=n),Object.setPrototypeOf(this,new.target.prototype)}};function Yt(e){return new me("READ_ONLY_VIOLATION",e)}function Io(e,t){return new me("PARSE_ERROR",e,t)}function cd(){let e=new br;return new me("SEARCH_ABORTED",e.message,e)}function $n(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function Jh(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 Gn(e){return e instanceof me?e:e instanceof ce||e instanceof T?new me("PARSE_ERROR",$n(e),e):e instanceof br||e?.name==="SearchAbortedError"?new me("SEARCH_ABORTED",$n(e),e):e instanceof Ie||e?.name==="FetchAllLimitError"?new me("FETCH_LIMIT_EXCEEDED",$n(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new me("CLIENT_ERROR",e.message,e.cause):Jh(e)?new me("CLIENT_ERROR",$n(e),e):new me("EXECUTION_ERROR",$n(e),e)}var Qh=2,wo=5,Zh=3e4,eg=10*6e4+3e4,bo=class{constructor(t,r={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let n=r.maxActive??Qh;if(!Number.isSafeInteger(n)||n<1||n>wo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wo}.`);this.maxActive=n,this.waitTimeoutMs=r.waitTimeoutMs??Zh,this.quarantineMs=r.quarantineMs??eg}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,r)=>{let n={};n.resolve=t,n.reject=r,n.timer=setTimeout(()=>{let i=this.waiters.indexOf(n);i>=0&&this.waiters.splice(i,1),r(new Fi(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),n.timer.unref?.(),this.waiters.push(n)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let r=this.createTail,n;this.createTail=new Promise(i=>{n=i}),await r;try{return await t()}finally{n()}}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:(r=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},r).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>wo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wo}.`)}};function tg(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function rg(e,t=n=>new Promise(i=>setTimeout(i,n)),r=tg){try{await e();return}catch(n){if(r(n))return}await t(250);try{await e()}catch(n){if(r(n))return;throw n}}async function ng(e,t){let r,n=new Promise((i,o)=>{r=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),r.unref?.()});try{return await Promise.race([e,n])}finally{r&&clearTimeout(r)}}function pd(e,t){let r=!1,n=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(n||r)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(n||r)return{records:[],next:!1};let p=await t.get();return p.next||(r=!0,t.onReleased?.()),p});return i=l.then(()=>{},()=>{}),l},close:()=>r?Promise.resolve():o||(n=!0,o=i.then(async()=>{if(!r)try{await ng(rg(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),r=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function dd(e){return fd(e,og(e))}function fd(e,t,r=!1,n){let i=[];for(let o of Object.values(e)){let a=ag(o.options),s=sg(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Po(o.minValue),maxValue:Po(o.maxValue),minLength:Po(o.minLength),maxLength:Po(o.maxLength),defaultValue:o.defaultValue,inSubtable:r,...n?{subtableCode:n}:{},writable:!t.has(o.code)&&!ig.has(o.type)};l.semantics=q(l),i.push(l),o.fields&&i.push(...fd(o.fields,t,!0,o.type==="SUBTABLE"?o.code:n))}return i}var ig=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function og(e){let t=new Set,r=n=>{for(let i of Object.values(n)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&r(i.fields)}};return r(e),t}function Po(e){return e==null||e===""?void 0:e}function ag(e){if(!e||typeof e!="object")return;let t={},r=!1;for(let[n,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[n]=o,r=!0)}return r?t:void 0}function sg(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Ed(e){return e===null?null:Object.values(e).map(t=>{let r=Number(t.index);if(!Number.isSafeInteger(r)||r<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:r}})}var lg="Filter aborted because of too many search results";function Rd(e){return e?.includes(lg)===!0}var md="/k/v1/records.json",No="/k/v1/records/cursor.json",ug=4096,cg=2,Us=e=>kintone.api.url(e,!0);function pg(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},n=kintone.api.urlForGet(md,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(n).byteLength<=ug?{url:n,init:{method:"GET",credentials:"include",headers:i}}:{url:Us(md),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 Vn(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 r=t,n=[typeof r.code=="string"&&r.code!==""?`${r.message}\uFF08${r.code}\uFF09`:r.message];if(r.errors!==null&&typeof r.errors=="object")for(let[o,a]of Object.entries(r.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&n.push(`${o}: ${s.join(" / ")}`)}let i=new Error(n.join(`
12
- `));return typeof r.code=="string"&&r.code!==""&&(i.name=r.code),typeof r.code=="string"&&Object.assign(i,{code:r.code}),typeof r.status=="number"&&Object.assign(i,{status:r.status}),Object.assign(i,{cause:e}),i}async function dg(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let n=t;return Vn({code:n.code,message:n.message,errors:n.errors,status:e.status})}let r=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(r,{status:e.status,cause:t}),Vn(r)}catch(t){let r=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(r,{status:e.status,cause:t}),Vn(r)}}function fg(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function jt(e,t,r){try{return await kintone.api(Us(e),t,r)}catch(n){throw Vn(n)}}function Eg(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function ks(e={}){let t=e.cursorMaxActive??cg;Eg(t);let r=null,n=null,i=new Set;return{async getRecords(a){try{let s=pg(a),l=await fetch(s.url,s.init);if(!l.ok)throw await dg(l);let p=await l.json();return Rd(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(s){throw Vn(s)}},async openCursor(a){let s=Us(No),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(n!==null&&n!==l)throw new Error(`CursorRouteError: factory route changed from ${n} to ${l}.`);if(n=l,r??(r=new bo(l,{maxActive:t})),r.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 r.acquire(),u;try{u=await r.runCreate(()=>jt(No,"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 Ki(R))}let d=u.id,c=pd(Number(u.totalCount),{get:()=>jt(No,"GET",{id:d}),delete:()=>jt(No,"DELETE",{id:d}),isAlreadyReleasedError:fg,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 jt("/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 jt("/k/v1/app/form/fields.json","GET",{app:a});return dd(s.properties)},async getNumberPrecision(a){let s=await jt("/k/v1/app/settings.json","GET",{app:a});return Nu(s)},async getProcessStatuses(a){let s=await jt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Ed(s.states)}}}}var yd=new Set(["postRecords","putRecords","deleteRecords"]),Wn=class extends Error{constructor(t){let r=t instanceof Error?t.message:String(t);super(r),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function wt(e){try{return await e()}catch(t){throw new Wn(t)}}function Rg(e){return()=>{throw Yt(`${String(e)} is blocked by the readonly client`)}}function Ms(e){let t=e.getRecords.bind(e),r=e.openCursor.bind(e),n=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 wt(()=>t(l));if(p.searchAborted===!0)throw cd();return p},openCursor:async l=>{let p=await wt(()=>r(l)),u=p.nextPage.bind(p),d=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>wt(()=>u()),close:()=>wt(()=>d())}},getApps:()=>wt(()=>n()),getFields:l=>wt(()=>i(l)),getNumberPrecision:l=>wt(()=>o(l)),getProcessStatuses:l=>wt(()=>a(l))});return new Proxy(s,{get(l,p,u){return yd.has(p)?Rg(p):Reflect.get(l,p,u)},has(l,p){return yd.has(p)?!1:Reflect.has(l,p)}})}function mg(e){let t=new Set,r=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 r||(r=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new Wn(o.reason)})(),r)}}}async function xs(e,t){let r=mg(e),n=!1;try{return await t(r.client)}catch(i){throw n=!0,i}finally{try{await r.close()}catch(i){if(!n)throw i}}}var hd=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),yg=new Set([...hd,"onLimitReached"]);function hg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Fs(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function gg(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let r of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[r]!="function")throw new TypeError(`client.${r} must be a function`)}function Ks(e,t){hg(e);let r=t==="run"?yg:hd;for(let i of Reflect.ownKeys(e))if(typeof i!="string"||!r.has(i))throw new TypeError(`Unknown ${t==="run"?"runQuery":"explainQuery"} option: ${String(i)}`);if(gg(e.client),e.maxRecords!==void 0&&Fs(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Fs(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Fs(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");let n=e;if(t==="run"&&n.onLimitReached!==void 0&&n.onLimitReached!=="error"&&n.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"&&n.onLimitReached!==void 0?{onLimitReached:n.onLimitReached}:{}}}}function gd(e,t={}){let r=new Jt(e).tokenize(),n=new er(r,t).parse();return dr(n),n}function Ag(e){if(e instanceof re)return Io(e.message,e);let t=Gn(e);return t.code==="PARSE_ERROR"?t:Io("SQL statement could not be parsed",e)}function Ad(e){if(e.trim()==="")throw Io("SQL statement is empty");try{return gd(e,{import:!0})}catch(t){throw Ag(t)}}function Sg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw Yt("Unclassifiable statement branch is not allowed");return e.type}function qt(e,t){let r=Sg(e);switch(r){case"SELECT":return;case"SHOW_APPS":case"DESCRIBE":if(t==="run")return;break;case"WITH":{let n=e;if(!Array.isArray(n.ctes))throw Yt("WITH contains an unclassifiable CTE list");for(let i of n.ctes){if(i===null||typeof i!="object"||!("query"in i))throw Yt("WITH contains an unclassifiable CTE body");qt(i.query,t)}qt(n.query,t);return}case"UNION":{let n=e;qt(n.left,t),qt(n.right,t);return}default:break}throw Yt(`${r} statements are not allowed in ${t} queries`)}function Tg(e){qt(e,"run")}function Sd(e){Tg(Ad(e))}function Td(e){let t=e.trim(),r=Ad(t);return r.type==="EXPLAIN"?(qt(r.query,"explain"),t):(qt(r,"explain"),`EXPLAIN ${t}`)}function Id(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function wd(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function Ig(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,String(r)]))}function wg(e,t){let r=t?.get(e),n=r?.fieldType??r?.semantics?.fieldType,i=r?.semantics?.compareMode,o=r?.sortKind??(i==="number"||i==="string"?i:void 0),a=r?.publicSourceApp;return{name:e,valueType:"string",...n!==void 0?{fieldType:n}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}async function Bs(e,t){try{let r=Ks(t,"run");Sd(e);let n=await xs(r.client,o=>ds(e,Ms(o),{...r.executeOptions,captureColumnMeta:!0}));wd(n);let i=Ip(n);return{type:"query",rows:n.rows.map(Ig),columns:n.columns.map(o=>wg(o,i)),rowCount:n.rowCount,warnings:[...n.warnings??[]],metrics:Id(n.metrics)}}catch(r){throw Gn(r)}}async function $s(e,t){try{let r=Ks(t,"explain"),n=await xs(r.client,o=>ds(Td(e),Ms(o),r.executeOptions));wd(n);let i=n.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
- `),metrics:Id(n.metrics)}}catch(r){throw Gn(r)}}var Gs="3.27.0";var bd=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function bg(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return bd(e,t)?e[t]:void 0}})}function Pg(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function Pd(e,t,r,n=console){let i;if(e.ksql===void 0){i=bg();try{e.ksql=i}catch(a){n.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(Pg(e.ksql))i=e.ksql;else{n.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(bd(i.versions,t))return n.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(r);try{i.versions[t]=o}catch(a){n.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var Ng={version:Gs,createReadonlyKintoneClient:ks,explainQuery:$s,KsqlEngineError:me,runQuery:Bs};Pd(window,Gs,Ng);})();
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 bh(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${wh}`)}async function Ph(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=$a(e.where,{fieldTypes:s,fieldOptions:l});bh(p);let u=p.prefilter===null?"":$(p.prefilter),d=new Set(Ni(e,r));for(let E of Nh(e.where))d.add(E);let c=await Ch(e.appId,e.where,a,t,i);return(await Ae(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 Nh(e){return Ls(e)}async function Ch(e,t,n,r,i){let s=[...Oh(t)].some(u=>n.get(u)?.fieldType==="STATUS")?await Bs(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 Oh(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 Lh(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=ka(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 _h(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 Dh(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=Ma(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((y,m)=>y+m.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 vh(e,t,n,r,i,o){let a=await id(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 Uh(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 Kh(e,t,n,r);let i=Pu(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=Nu(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function Mh(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return nh(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=ld(e),u=await Vr(e.appId,e.keyFields,p,t,n,l);if(e.values.forEach((c,f)=>{let E={};e.fields.forEach((y,m)=>{let h=c[m];h.type==="CASE_VALUE"?E[y]={value:gt(h.expr,{},l.get(y))}:E[y]={value:tt(h,l.get(y))}});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 ld(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 Ws(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 Fh(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 Ae(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=Op(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,y)=>{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:Op(u[y])}}});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(ud(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 xh(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 Ws(e.appId,o,t,r),s=await Ae(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Hs(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 y=Hr(E,i).map(m=>{let h=m.id??"";if(!h)return m;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(Bh(e.appId,c,Yr(E),i,y))}return{type:"UPDATE",updatedCount:p.length}}async function Kh(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 Ws(e.appId,o,t,r),s=await Ae(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Hs(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),y=new Set(f),m=R.filter((h,g)=>!y.has(g));await t.putRecords(ud(e.appId,c,Yr(E),i,m))}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 Hs(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}`]=bs(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 ud(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Bh(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function $h(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 Op(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 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 _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 Gh(e,t,n,r){let i=[];at(e.where,i);let o=await Ws(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 Ae(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Hs(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 y=Hr(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:Vh(E,e.subtableCode,h,g)}));y.sort((h,g)=>Wh(h.flat,g.flat,e.by,l));let m=y.map(h=>h.row.id??"");await t.putRecords($h(e.appId,f,Yr(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:d.size}}function Vh(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}`]=bs(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=bs(a?.value);return i}function Wh(e,t,n,r){for(let i of n){let o=Lp(i.key,e),a=Lp(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 Lp(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 cd(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 Vs.materialize(e,t,n,r,i,o),{rows:l,columns:p}=s;if(od(s),p.length!==e.fields.length){let m=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${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],d=[],c=await he(e.appId,t,r),f=l.map((m,h)=>{let g={};return e.fields.forEach((S,N)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let w=m[p[N]]??"";g[S]={value:ed(w,c.get(S))}}),g});f.forEach(m=>qt([m],e.fields.filter(h=>h in m),o,a));let E=f.map(m=>e.keyFields.map(h=>String(m[h]?.value??"")));if(No.has(e)){let m=e.keyFields.map(g=>c.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=jt(g,m);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((m,h)=>{let g=Gr(R,E[h]);g!==void 0?d.push({id:g,record:m}):u.push(m)}),n.confirm&&u.length+d.length>0){let m=u.length+d.length;if(!await n.confirm(m,"UPDATE"))throw new te("UPDATE",m)}let y=[];for(let m=0;m<u.length;m+=100){let h=await t.postRecords({app:e.appId,records:u.slice(m,m+100)});y.push(h.ids)}for(let m=0;m<d.length;m+=100)await t.putRecords({app:e.appId,records:d.slice(m,m+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:d.length}}async function pd(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 dd(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 Hh(e,t=!1){try{let n=new tn(e).tokenize(),r=new on(n,{import:t}).parse();return oi("phase15b",r),yn(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 fd(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 Ed(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 Rd(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 yd=new WeakMap,md=new WeakMap,hd=new WeakMap;async function Yh(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async y=>(o.add(y),t.getFields(y)),getProcessStatuses:async y=>(a.add(y),t.getProcessStatuses(y)),getNumberPrecision:async y=>(s.add(y),t.getNumberPrecision(y))},p=new Map,u=new Map,d=new Map,c=new Set,f=i??await Ns(e,l,n),E=y=>f.nodes.find(m=>m.source===y||JSON.stringify(m.source)===JSON.stringify(y)),R=async y=>{if(y===null||typeof y!="object"||c.has(y))return;if(c.add(y),Array.isArray(y)){await Promise.all(y.map(R));return}let m=y;if(m.type==="SELECT"){let h=y;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 Ds(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=Us.get(h)??Oo(h,await Lo(h,l,n));if(v&&yd.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(m.type==="VALIDATE"){let h=y;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=_a(h,g),_=gn(h.checkGroups??[]),O=Ls(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)),md.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(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(y.appId),m.type==="UPDATE"&&y.applyBlocks?.length){let g=y,S=await Q(g.appId,l,n);if(nt(g,S),bo(g)){let N=S.filter(_=>!_.inSubtable),w=$a(g.where,{fieldTypes:new Map(N.map(_=>[_.code,_.fieldType])),fieldOptions:new Map(N.flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[]))});hd.set(g,w)}}let h=y;(h.type!=="UPDATE"||!bo(h))&&E(h)?.allowed!==!1&&await Ln(h,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Et(e)){let y=Rt(e),m=await kr(y,l,n),h=E(y);if(m.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vt(m)}).`);if(p.set(y,m),go(y)&&h?.allowed!==!1){let g=await Fr(y,l,n);u.set(y,(y.orderMode==="KINTONE_NATIVE"?Ar:gr)({stmt:y,staticMode:m.capability==="EXACT_PUSHDOWN"?Ce(y):"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:ue(y.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function _p(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 jh(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 Dp(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)} ${jh(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(` ${Rs(p)}: ${p}`,` ${ms(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=Dp(s.op),d=n.capability?.reasons.find(c=>c.functionName===l&&(p===void 0||c.field===p)&&c.operator===u);t.push(` ${Rs(l)}: ${l}`,` ${ms(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)",` ${vp(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=Dp(s.op),d=n.capability?.reasons.find(c=>c.functionName===l&&(p===void 0||c.field===p)&&c.operator===u);t.push(` ${Rs(l)}: ${l}`,` ${ms(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)}`,` ${vp(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 Rs(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 ms(e){return j(e)?"relative date evaluation":"kintone function evaluation"}function vp(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&j(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Jh(e,t,n,r,i,o=100,a=be,s){let l=s??await Ns(e.query,t,n),p=await Yh(e.query,t,n,r,l),u=qh(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[..._p(p),...u]:[..._p(p),...u,...Xh(gd(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 Xh(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 gd(e,t,n,r,i=100,o=be,a=1e4,s){if(e.type==="UNION")return Zh(e,n,r,s);if(e.type==="WITH")return eg(e,n,r,s);if(e.type==="INSERT")return rg(e,t,i,o);if(e.type==="INSERT_SELECT")return ig(e,t,n,r,s);if(e.type==="UPSERT")return lg(e,t,i,o);if(e.type==="UPSERT_SELECT")return ug(e,t,n,r,s);if(e.type==="UPDATE")return og(e,t,n,r,i,o,a);if(e.type==="DELETE")return sg(e,t);if(e.type==="REORDER")return cg(e,t);if(e.type==="VALIDATE")return Qh(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 Qh(e,t){let n=md.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?Os:Cs).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(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),a=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ce(e),p=tg(e);o&&o.capability!=="EXACT_PUSHDOWN"&&p.push(...o.reasons.map(y=>y.code));let u=[],d=ic(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 y=c.allItems;if(s)s.items.forEach((m,h)=>{let g=y[h];g?.type==="FIELD_NAME"&&m.kind==="PHYSICAL"&&u.push(` group key ${g.name}: PHYSICAL (source=${m.sourceIndex}, field=${m.fieldCode})`)});else if([e.from,...e.joins.map(m=>m.table)].some(m=>m.cteName!==null))for(let m of y)m.type==="FIELD_NAME"&&u.push(` group key ${m.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 y=ai(a?.kind==="CANONICAL_REST_TOP_N"?Hp(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let m=a?.kind==="KORDER_CURSOR"?Ga(e):y.query;u.push(` kintone query: ${m||"(\u306A\u3057)"}`),u.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=yd.get(e),m=y??En(e);if(e.joins.length>0)if(y){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),y.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Gt(y.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let L of y.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=m.mainCondition,N=$p(e),w=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ft(e.where)?$(e.where):"",_=e.from.alias?y?.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=y?.joinPlan.items.find(L=>L.targetAlias===e.from.alias),P=y?.joinPlan.serverFunctionConsumptions.find(L=>L.targetAlias===e.from.alias);v||P?(u.push(` pushdown applied: ${_}`),u.push(` relation: ${v?.relation??"exact"}`)):!y&&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?m.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?y?.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=y?.joinPlan.items.find(de=>de.targetAlias===L.table.alias),oe=y?.joinPlan.serverFunctionConsumptions.find(de=>de.targetAlias===L.table.alias);H||oe?(u.push(` pushdown applied: ${k}`),u.push(` relation: ${H?.relation??"exact"}`)):!y&&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(...ng(e,n,r,i)),u}function Zh(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 eg(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(...gd(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 tg(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 ng(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 rg(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,...Ys(xi(e,n,r))]:a}function ig(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 og(e,t,n,r,i=100,o=be,a=1e4){if(e.applyBlocks?.length)return ag(e,t,i,o,a);let s=Tu(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=dg(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(` ${Eg(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 ag(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=hd.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",...Ys(o)]}function sg(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 lg(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,...Ys(xi(e,n,r))]:a}function Ys(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 ug(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 cg(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(pg).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 pg(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 dg(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 Ad(e,t,n,r,i){let o=Gs(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 fg(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 Eg(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} = ${Sd(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 Sd(e){return`${Up(e.left)} ${e.op} ${Up(e.right)}`}function Up(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?G(e):e.type==="ARITH"?`(${Sd(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 ge=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 ge("READ_ONLY_VIOLATION",e)}function ko(e,t){return new ge("PARSE_ERROR",e,t)}function Td(){let e=new _n;return new ge("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 Rg(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 ge?e:e instanceof fe||e instanceof T?new ge("PARSE_ERROR",jr(e),e):e instanceof _n||e?.name==="SearchAbortedError"?new ge("SEARCH_ABORTED",jr(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new ge("FETCH_LIMIT_EXCEEDED",jr(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ge("CLIENT_ERROR",e.message,e.cause):Rg(e)?new ge("CLIENT_ERROR",jr(e),e):new ge("EXECUTION_ERROR",jr(e),e)}var yg=2,Mo=5,mg=3e4,hg=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??yg;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??mg,this.quarantineMs=n.quarantineMs??hg}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 gg(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Ag(e,t=r=>new Promise(i=>setTimeout(i,r)),n=gg){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 Sg(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 Id(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 Sg(Ag(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function wd(e){return bd(e,Ig(e))}function bd(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=wg(o.options),s=bg(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)&&!Tg.has(o.type)};l.semantics=q(l),i.push(l),o.fields&&i.push(...bd(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Tg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Ig(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 wg(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 bg(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Pd(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 Pg="Filter aborted because of too many search results";function Nd(e){return e?.includes(Pg)===!0}var Cd="/k/v1/records.json",Ko="/k/v1/records/cursor.json",Ng=4096,Cg=2,js=e=>kintone.api.url(e,!0);function Og(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},r=kintone.api.urlForGet(Cd,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=Ng?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:js(Cd),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 Lg(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 _g(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(js(e),t,n)}catch(r){throw zr(r)}}function Dg(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function qs(e={}){let t=e.cursorMaxActive??Cg;Dg(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=Og(a),l=await fetch(s.url,s.init);if(!l.ok)throw await Lg(l);let p=await l.json();return Nd(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(s){throw zr(s)}},async openCursor(a){let s=js(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??(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=Id(Number(u.totalCount),{get:()=>Xt(Ko,"GET",{id:d}),delete:()=>Xt(Ko,"DELETE",{id:d}),isAlreadyReleasedError:_g,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 wd(s.properties)},async getNumberPrecision(a){let s=await Xt("/k/v1/app/settings.json","GET",{app:a});return $u(s)},async getProcessStatuses(a){let s=await Xt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Pd(s.states)}}}}var Od=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 vg(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 Td();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 Od.has(p)?vg(p):Reflect.get(l,p,u)},has(l,p){return Od.has(p)?!1:Reflect.has(l,p)}})}function Ug(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=Ug(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 Ld=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),kg=new Set([...Ld,"onLimitReached"]);function Mg(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 Fg(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){Mg(e);let n=t==="run"?kg:Ld;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(Fg(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 _d(e,t={}){let n=new tn(e).tokenize(),r=new on(n,t).parse();return yn(r),r}function xg(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 Dd(e){if(e.trim()==="")throw ko("SQL statement is empty");try{return _d(e,{import:!0})}catch(t){throw xg(t)}}function Kg(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=Kg(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 Bg(e){Qt(e,"run")}function vd(e){Bg(Dd(e))}function Ud(e){let t=e.trim(),n=Dd(t);return n.type==="EXPLAIN"?(Qt(n.query,"explain"),t):(Qt(n,"explain"),`EXPLAIN ${t}`)}function kd(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function Md(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function $g(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function Gg(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 Zs(e,t){try{let n=Qs(t,"run");vd(e);let r=await Js(n.client,o=>Ps(e,zs(o),{...n.executeOptions,captureColumnMeta:!0}));Md(r);let i=kp(r);return{type:"query",rows:r.rows.map($g),columns:r.columns.map(o=>Gg(o,i)),rowCount:r.rowCount,warnings:[...r.warnings??[]],metrics:kd(r.metrics)}}catch(n){throw qr(n)}}async function el(e,t){try{let n=Qs(t,"explain"),r=await Js(n.client,o=>Ps(Ud(e),zs(o),n.executeOptions));Md(r);let i=r.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
+ `),metrics:kd(r.metrics)}}catch(n){throw qr(n)}}var tl="3.28.0";var Fd=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function Vg(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Fd(e,t)?e[t]:void 0}})}function Wg(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function xd(e,t,n,r=console){let i;if(e.ksql===void 0){i=Vg();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(Wg(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(Fd(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var Hg={version:tl,createReadonlyKintoneClient:qs,explainQuery:el,KsqlEngineError:ge,runQuery:Zs};xd(window,tl,Hg);})();