@rex0220/kintone-sql-tools 3.19.0 → 3.20.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 Re(e,t,r,n,i={}){let o=i.pageSize??tp,s=Math.max(1,i.parallel??rp),a=i.maxRecords??np,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>a))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=p??a,c=n.length>0&&!n.includes("$id")?[...n,"$id"]:n,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${a} \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,g=ta(r,R),y=await ea(e,t,g,c,o,m);if(Zs(y,i),u.push(...y.records),p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>a){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(a),f=!0),u.slice(0,a);throw new ye(E)}if(y.records.length<o)return u;for(m+=o,m>=Hi&&(R=ra(y.records),m=0);;){if(p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>=a){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(a),f=!0),u.slice(0,a);throw new ye(E)}let T=d-u.length,A=Math.ceil(T/o),N=Math.max(1,Math.min(s,A)),w=[];for(let P=0;P<N;P++){let h=m+P*o;if(h>=Hi)break;w.push(h)}let L=ta(r,R),I=await Promise.all(w.map(P=>ea(e,t,L,c,o,P)));for(let P of I)Zs(P,i);let D=!1;for(let P of I){if(u.push(...P.records),p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>a){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(a),f=!0),u.slice(0,a);throw new ye(E)}if(P.records.length<o){D=!0;break}}if(D)break;if(m+=o*w.length,m>=Hi){let P=I[I.length-1];R=ra(P.records),m=0}}return u}function Zs(e,t){e.searchAborted&&t.onSearchAborted?.()}function na(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 tp=500,rp=1,np=1e4,Hi=1e4;async function ea(e,t,r,n,i,o){let s=ip(r,i,o);return e({app:t,query:s,fields:n})}function ta(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 ip(e,t,r){let n=e.trimEnd(),i=`limit ${t} offset ${r}`;return n?`${n} ${i}`:i}function ra(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 ye=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var An=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 le=class extends Error{constructor(r,n,i,o=!1){let s=i.slice(Math.max(0,n-10),n+10);super(`${r}\uFF08\u4F4D\u7F6E ${n}\u3001\u524D\u5F8C: \u300C${s}\u300D\uFF09`);this.pos=n;this.input=i;this.unterminated=o;this.name="LexError"}},Ft=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(Yi(r))return this.readIdentOrKeyword(t);if(r==="#")return this.readHashIdent(t);if(r==="@")return this.readVariable(t);throw new le(`\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 le("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let 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 le("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&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 le("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&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&&ia(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos),n=r.toUpperCase(),i=An.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(!Yi(r))throw new le("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&ia(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new le(`@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 le("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new le("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";(()=>{async function Re(e,t,r,n,i={}){let o=i.pageSize??Tp,a=Math.max(1,i.parallel??wp),s=i.maxRecords??Ip,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=n.length>0&&!n.includes("$id")?[...n,"$id"]:n,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,g=0,m=fs(r,R),h=await ds(e,t,m,c,o,g);if(ps(h,i),u.push(...h.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new ye(E)}if(h.records.length<o)return u;for(g+=o,g>=eo&&(R=Es(h.records),g=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new ye(E)}let T=p-u.length,S=Math.ceil(T/o),P=Math.max(1,Math.min(a,S)),w=[];for(let C=0;C<P;C++){let y=g+C*o;if(y>=eo)break;w.push(y)}let _=fs(r,R),I=await Promise.all(w.map(C=>ds(e,t,_,c,o,C)));for(let C of I)ps(C,i);let k=!1;for(let C of I){if(u.push(...C.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new ye(E)}if(C.records.length<o){k=!0;break}}if(k)break;if(g+=o*w.length,g>=eo){let C=I[I.length-1];R=Es(C.records),g=0}}return u}function ps(e,t){e.searchAborted&&t.onSearchAborted?.()}function Rs(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 Tp=500,wp=1,Ip=1e4,eo=1e4;async function ds(e,t,r,n,i,o){let a=bp(r,i,o);return e({app:t,query:a,fields:n})}function fs(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 bp(e,t,r){let n=e.trimEnd(),i=`limit ${t} offset ${r}`;return n?`${n} ${i}`:i}function Es(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 ye=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var Cn=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 le=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"}},Wt=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(Gt(r))return this.readNumber(t);let n=this.tryReadOperator(t);if(n)return n;if(to(r))return this.readIdentOrKeyword(t);if(r==="#")return this.readHashIdent(t);if(r==="@")return this.readVariable(t);throw new le(`\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 le("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let 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 le("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&Gt(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Gt(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Gt(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||!Gt(this.input[this.pos]))throw new le("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&Gt(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&&ms(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos),n=r.toUpperCase(),i=Cn.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(!to(r))throw new le("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&ms(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new le(`@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 le("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new le("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
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 le("\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 Yi(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||op(t)}function ia(e){let t=e.codePointAt(0);return Yi(e)||t>=48&&t<=57}function xt(e){let t=e.codePointAt(0);return t>=48&&t<=57}function op(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var sp=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function ap(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 Ae(e){let t=sp.exec(e.trim());if(t===null)return null;let r=ap(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 s=/0+$/.exec(i)?.[0].length??0;return s>0&&(i=i.slice(0,-s),o-=s,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function lp(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 sa(e){let t=Ae(e);return t===null?null:lp(t)}function up(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 s=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,a=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(s!==a)return s<a?-1:1}return 0}function Sn(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let r=up(e,t);return e.sign===-1?r===0?0:r===-1?1:-1:r}function Tn(e,t){let r=Ae(e),n=Ae(t);if(r===null||n===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Sn(r,n)}var nt="__NO_FROM__";function ue(e){return{type:"NUMBER",value:Number(e),raw:e}}function G(e){let t=e.raw??String(e.value);return sa(t)??t}function aa(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 cp(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,r=[];for(let i of e.grouping.sets)for(let o of i.items){let s=cp(o);t.has(s)||(t.add(s),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 la(e){return ne(e).type!=="NONE"}function ua(e,t){let r=ne(e);if(r.type!=="GROUPING_SETS")return null;let n=new Map,i=a=>{let l=t(a),p=n.get(l.canonicalId);if(p)return p;let d={...l,field:a};return n.set(d.canonicalId,d),d},o=r.allItems.map(i).filter((a,l,p)=>p.findIndex(d=>d.canonicalId===a.canonicalId)===l),s=r.sets.map(a=>({items:a.items.map(i)}));return{type:"GROUPING_SETS",source:r.source,allItems:o,sets:s}}function wn(e){return`'${e.replace(/'/g,"''")}'`}function Kt(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return G(e);if(e.type==="STRING_FUNC")return qi(e);let r=`${Kt(e.left)}${e.op}${Kt(e.right)}`;return t?r:`(${r})`}function ca(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return qi(e.expr);if(e.type==="ARITH_FIELD")return Kt(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ji(e.expr)}function da(e){switch(e.type){case"STRING":return wn(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=>wn(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(da).join(",")})`;case"ARITH_VALUE":return Kt(e.expr);case"CASE_VALUE":return ji(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function yr(e){switch(e.type){case"BINARY":return`${ca(e.left)} ${e.op.replace("_"," ")} ${da(e.right)}`;case"NULL_CHECK":return`${ca(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${yr(e.left)} ${e.op} ${yr(e.right)})`;case"NOT":return`NOT (${yr(e.expr)})`;case"GROUP":return`(${yr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function pa(e){return e.type==="ARRAY"?`[${e.elements.map(t=>wn(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?Kt(e):mt(e)}function ji(e){let t=e.branches.map(n=>`WHEN ${yr(n.condition)} THEN ${pa(n.result)}`).join(" "),r=e.elseResult===null?"":` ELSE ${pa(e.elseResult)}`;return`CASE ${t}${r} END`}function pp(e){return e.type==="AGG_REF"?Se(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Ar(e):mt(e)}function qi(e){return`${e.func}(${e.args.map(pp).join(",")})`}function mt(e){switch(e.type){case"STRING":return wn(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 qi(e);case"CASE_WHEN":return ji(e);case"SCALAR_ARITH":return`(${mt(e.left)}${e.op}${mt(e.right)})`;case"CONCAT_OP":return`(${mt(e.left)}||${mt(e.right)})`}}function dp(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Kt(e,!0):mt(e)}function Se(e,t,r){let n=dp(r);return t?`${e}(DISTINCT ${n})`:`${e}(${n})`}function Ar(e){return e.type==="NUMBER"?G(e):e.type==="AGG_REF"?Se(e.func,e.distinct,e.arg):`${Ar(e.left)}${e.op}${Ar(e.right)}`}var fa=20,zi=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"}),Ra=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Xi=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"}),Ig=Object.freeze(Object.values(Xi).filter(e=>e!==void 0)),fp=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Ep=new Set(fp);function Rp(e){return Ep.has(e)}var ma=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),bn=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function Ea(e){return bn[e]!==void 0}var Pg=Object.freeze(Array.from(new Set([...Object.keys(zi),...Ra,...Object.keys(Xi),...Object.keys(ma),...Object.keys(bn),"IF"]))),mp=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 gp(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!mp.has(e.kind):!0}var S=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"}},Bt=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.cteNames=new Set;this.tempTableRefs=[]}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let r=this.tempTableRefs[0];throw new S(`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>fa)throw new S(`batch exceeds ${fa} statements.`,r);let n=this.peek();if(n.kind!==";"&&n.kind!=="EOF")throw new S("\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 S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let 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 S("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseScalarExpr(t,r){let n=this.peek();if(n.kind==="VARIABLE")throw new S(`${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 S(`${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 S("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 s=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!s.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&s.columns.length!==1)throw new S("scalar subquery in SET must return exactly 1 column.",n);return{type:"SCALAR_SUBQUERY",query:s}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};let i=bn[n.kind];if(i==="LOGINUSER")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,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 S(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,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 S(`${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 S(`${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 S("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 S(r,n)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new S("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Ve(t,this.prev());if(n)throw new S("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:r}}parseExplain(){this.advance();let t=this.peek(),r;if(t.kind==="WITH"){let n=this.parseWith();if(n.type!=="WITH")throw new S("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 S("IMPORT is not supported (capability is disabled).",t);r=this.parseImport()}else throw new S("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query: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}=Ve(r,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],s=[],a=new Set;for(;;){let w=this.parseIdentifier();if(a.has(w))throw new S(`IMPORT target ${w} is declared more than once.`,this.prev());if(a.add(w),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new S(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let D of["ID","SOURCE"]){if(!this.isSoftKeyword(D))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:L,...I?{rowIdSourceHeader:I}:{}})}else s.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 S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let p=this.parseIdentifier(),d,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());d=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 S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(c)throw new S("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==nt||f.joins.length>0)throw new S("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(w=>w.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==s.length)throw new S(`IMPORT projection has ${f.columns.length} columns; target has ${s.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let y;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(w=>w.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(w=>w.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(y);for(let L of T){if(!L.rowIdSourceHeader)throw new S(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(L.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of w)if(!T.some(I=>I.subtableCode===L))throw new S(`REPLACE SUBTABLES target ${L} is not declared in INTO.`,this.prev())}}else if(y)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),N=this.parseDmlControlSuffix();return{type:"IMPORT",appId:n,fields:s,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:d,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...m?{keyFields:m}:{},...A,...N}}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 S("IMPORT projection cannot use subqueries.",r);if(typeof n.tableAlias=="string")throw new S("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}=Ve(r,this.prev());if(i)throw new S(`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 c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let s;this.isSoftKeyword("SUMMARY")&&(this.advance(),s=!0);let a=this.consume("WHERE")?this.parseWhereExpr():null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);p=this.parseTableName()}let d={type:"VALIDATE",appId:n,targets:o,...s?{summary:s}:{},where:a,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(d,t),d}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 S("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 S("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 S("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 s=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 a=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:r,op:"BETWEEN",right:null,low:s,high:a,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new S("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",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 S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!r.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&r.columns.length>1)throw new S("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 S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new S("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,r){if(t.type==="FIELD_REF")throw new S(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,r);if(t.type==="STRING_FUNC")throw new S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",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 S("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,r){let n="";for(let i=t;i<r;i++){let o=this.tokens[i],s;o.kind==="STRING"?s=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?s=`\`${o.value}\``:s=o.value,n.length>0&&gp(this.tokens[i-1],o)&&(n+=" "),n+=s}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:nt},s=i?this.parseJoins():[],a=this.consume("WHERE")?this.parseWhereExpr():null,l=[],p,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?p=this.parseGroupingSetsClause():this.isRollupStart()?p=this.parseRollupClause():this.isCubeStart()?p=this.parseCubeClause():l=this.parseGroupByKeys(),p&&this.peek().kind===",")throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=n.some(g=>g.type==="WINDOW_COL"),m=n.some(g=>this.selectColumnHasAggregate(g));if(R&&(l.length>0||p!==void 0||m))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(p&&c==="KINTONE_NATIVE")throw new S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:r,columns:n,from:o,joins:s,where:a,groupBy:l,...p?{grouping:p}:{},having:d,orderMode:c,orderBy:u,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 S("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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:s}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:s}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new S("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());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),s=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:s}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:s}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let a=this.continueArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:l}}let s=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:s}}let r=this.tryAggregateFunc();if(r!==null){let o=this.parseAggregateRef(r);if(this.isArithOp(this.peek().kind)){let a=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:a,alias:l}}let s=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:s}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:s}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:s}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseArithAddSub(),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:s}}let n=this.parseColumnFieldRef();if(n==="_p.*")return{type:"PARENT_WILDCARD"};if(n==="_parent.*")throw new S("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:n},s=this.continueArith(o),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:a}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:n,alias:i}}tryWindowFunc(){return ma[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new S(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let 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 S("\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"?ue(`-${G(r)}`):{type:"AGG_ARITH",left:ue("0"),op:"-",right:r}}if(this.peek().kind==="NUMBER"){let r=this.advance();return ue(r.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new S("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}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 S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let 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 S("\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 S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseScalarPrimary(t);if(n.type==="NUMBER")return ue(`${r.kind==="-"?"-":"+"}${G(n)}`);if(r.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",r);return{type:"SCALAR_ARITH",left:ue("0"),op:"-",right:n}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};if(r.kind==="NUMBER")return this.advance(),ue(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 S("\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 S(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",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 S("\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 ue(`+${r.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseArithPrimary();return r.type==="NUMBER"?ue(`-${G(r)}`):{type:"ARITH",left:ue("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ue(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 S("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let 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 S("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 S("\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=zi[this.peek().kind];if(r==="LEFT"||r==="RIGHT")return r}let t=zi[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(Ra.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 S("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let n=hp(r);if(n===null)throw new S(`\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 Xi[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 S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);let i;if(this.consume("*")){if(!Rp(t))throw new S(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let s=this.advance();if(t!=="GROUP_CONCAT")throw new S("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",s);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 S){if(n.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",n.token);if(n.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n.token)}throw n}if(!this.isAggregateArgEnd())throw new S("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(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 S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))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}=Ve(r,this.prev());if(i){let a=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:n,alias:a,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),s=this.consume("AS")?this.parseTableAliasName():o??r;return{appId:n,alias:s,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let 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 S("\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){let r=this.groupingFieldContext;this.groupingFieldContext=t;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r}}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.parseSqlValue();this.expect("AND");let o=this.parseSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new S("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let r=this.parseCompareOp(),n=this.parseSqlValue();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 S("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new S("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let 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 S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:Se(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}}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(Ea(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:bn[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 S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query: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 S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let 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\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059";do{let n=this.advance();if(n.kind==="STRING")t.push({type:"STRING",value:n.value});else if(n.kind==="NUMBER")t.push(ue(n.value));else if(n.kind==="-"||n.kind==="+"){let i=this.peek();if(i.kind!=="NUMBER")throw new S(r,n);this.advance();let o=n.kind==="-"?"-":"+";t.push(ue(`${o}${i.value}`))}else if(n.kind==="VARIABLE")t.push({type:"VARIABLE",name:n.value.slice(1).toLowerCase()});else throw new S(r,n)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let r=new Set,n=[];for(let i of t)for(let o of i.items){let s=this.groupingItemSyntaxKey(o);r.has(s)||(r.add(s),n.push(o))}return n}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new S("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),r=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new S("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:r.tableAlias,field:r.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let 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 S("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 S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let r=aa(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 S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let r=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias: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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let 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}=Ve(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:r,fields:i,select:d,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length);this.expect(")"),o.push(d)}while(this.consume(","));let s=[];for(;this.isApplyBlockStart();)s.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(s.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(s.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let a=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&a.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n&&(l.validateOnly||l.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let p=s.length>0?{applyBlocks:s}:{};return n?{type:"INSERT",appId:r,subtableCode:n,fields:i,values:o,...p,...a,...l}:{type:"INSERT",appId:r,fields:i,values:o,...p,...a,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Ve(t,this.prev());if(n)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:r,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let s=this.parseOnDuplicate(),a=this.parseUpsertApplyBranches(),l=a.onInsertApplyBlocks!==void 0||a.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:r,fields:i,values:o,keyFields:s,...a,...p,...d}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new S("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,r;for(;this.isUpsertApplyBranchStart();){this.advance();let n=this.advance(),i=n.kind==="INSERT";if(i&&t||!i&&r)throw new S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,n);if(!this.isApplyBlockStart())throw new S(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:r=o}if(this.isApplyBlockStart())throw new S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...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(ue(`${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(ue(n.value));else throw new S("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",n)}while(this.consume(","));if(r.length!==t)throw new S(`\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}=Ve(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(n&&i.some(u=>u.value.type==="STRING_FUNC"))throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${r}`.toLowerCase())throw new S(`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:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let s=this.peek();if(!this.consume("WHERE"))throw new S("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",s);let a=this.parseWhereExpr(),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(n)throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",s);this.validateUpdateFromAssignments(i,o.alias,s);let u=this.decomposeUpdateFromWhere(a,r,o.alias,s);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",s);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new S("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",s)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&p.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n&&(d.validateOnly||d.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:r,assignments:i,where:a,from:o,...c,...p,...d}:n?{type:"UPDATE",appId:r,subtableCode:n,assignments:i,where:a,...c,...p,...d}:{type:"UPDATE",appId:r,assignments:i,where:a,...c,...p,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=[];for(;r.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let 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 S("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations: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 S("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let 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 S("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr()};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new S("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let r=this.parseExpectRowsCount();if(t>r)throw new S("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max: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 S("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new S("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let 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 S("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 S("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new S("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=null;if(this.consume("INTO")){let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new S("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);r=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new S("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:r}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new S("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",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 S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new S("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable: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 S("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 S(`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 S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",n);if(i.value.type==="SCALAR_SUBQUERY")throw new S("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.nodeContainsAnyQualifier(i.value))throw new S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",n)}}decomposeUpdateFromWhere(t,r,n,i){let o=this.flattenTopLevelAnd(t),s=[];if(o.forEach((d,c)=>{let u=this.matchUpdateFromJoin(d,r,n);u!==null&&s.push({index:c,...u})}),s.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let a=s[0];for(let d=0;d<o.length;d++){if(d!==a.index&&this.nodeContainsQualifiedField(o[d],n))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==a.index&&this.nodeContainsForeignQualifier(o[d],r))throw new S(`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((d,c)=>c!==a.index).reduce((d,c)=>d===null?c:{type:"LOGICAL",op:"AND",left:d,right:c},null);return{targetJoinField:a.targetField,joinKeyField:a.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 S("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(Ea(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 S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new S("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=Ve(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr();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}=Ve(r,this.prev());if(!i)throw new S("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new S("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let s=null;if(t){if(this.peek().kind==="WHERE")throw new S("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let a=this.peek();if(!this.consume("WHERE"))throw new S("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",a);s=this.parseWhereExpr()}return{type:"REORDER",appId:n,subtableCode:i,all:t,by:o,where:s}}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 S(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 S("\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 S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new S("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new S("\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 S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||An.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new S("\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 hp(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 Ve(e,t){let r=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!r)throw new S(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(r[1]),subtableCode:r[2]??null}}function ga(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var yp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function ce(e,t){for(let r of t)e.add(r)}function In(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"&&yp.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=>In(i,t)):In(n,t))}function gt(e){let t=new Set;if(ga(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":ce(t,Gt(e));break;case"UNION":ce(t,ha(e));break;case"WITH":for(let r of e.ctes)ce(t,gt(r.query));ce(t,gt(e.query));break;case"CREATE_TEMP_TABLE":ce(t,gt(e.query));break;default:break}return In(e)&&t.add("STATISTICAL_AGGREGATE"),t}function ha(e){let t=e.left.type==="SELECT"?Gt(e.left):ha(e.left);return ce(t,Gt(e.right)),t}function Gt(e){let t=new Set;ne(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"&&ce(t,Gt(r.query)),r.type==="CASE_COL")for(let n of r.expr.branches)ce(t,$t(n.condition));return ce(t,$t(e.where)),ce(t,$t(e.having)),In(e)&&t.add("STATISTICAL_AGGREGATE"),t}function $t(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&ce(t,Gt(e.right.query));break;case"LOGICAL":ce(t,$t(e.left)),ce(t,$t(e.right));break;case"NOT":case"GROUP":ce(t,$t(e.expr));break;case"EXISTS":ce(t,Gt(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var Ap=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})}),Zi=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})}),Sr="v1";function K(e){throw new Error(`UnsupportedError: APPLY ${Sr} scope does not support ${e}`)}function Sp(e,t){let r=Sr;Sr=e;try{return t()}finally{Sr=r}}function Tp(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 Cn(e,t){return Sp(e,()=>wp(t,Ap[e]))}function wp(e,t){let r=Tp(e);if(r===null)return;if(r.type==="UPSERT"){Ip(r,t);return}let n=r.applyBlocks;if(Ji(n),!t.multipleBlocks&&n.length!==1&&K("multiple APPLY blocks in this phase"),r.type==="INSERT"){Pp(r,n,t);return}let i=r;i.subtableCode&&K("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&K("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&K("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&K("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&K("REJECT LIMIT in this phase"),Cp(i.where,t.multipleParents),Aa(n,t)}function Aa(e,t){for(let r of e){for(let n of r.operations)t.operations.has(n.kind)||K(`${n.kind} in this phase`);Sa(r);for(let n of r.operations){if(n.kind==="APPEND"){for(let i of n.fields)Pn(i,"APPEND targets");Wt(n.values,"APPEND values");continue}if(n.kind==="REMOVE"){!t.expectRows&&n.expectRows&&K("EXPECT ROWS in this phase"),n.selector.kind==="WHERE"&&ya(n.selector.where,t.idxSelectors);continue}if(n.kind==="PATCH"){!t.expectRows&&n.expectRows&&K("EXPECT ROWS in this phase"),n.assignments.length===0&&K("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(".")&&K("parent or qualified PATCH targets in this phase")}Wt(n.assignments,"PATCH assignments"),n.selector.kind==="WHERE"&&ya(n.selector.where,t.idxSelectors)}}}}function Sa(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 bp=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ta(e,t){if(Sa(e),e.targetKind==="MULTI_VALUE"){if(!bp.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 Ji(e){let t=new Set;for(let r of e){if(t.has(r.field))throw new Error(`ArgumentError: APPLY ${Sr} scope allows only one block for table ${r.field}`);t.add(r.field)}}function Ip(e,t){t.upsert||K("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&K("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&K("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&K("REJECT LIMIT in this phase");let r=e.onInsertApplyBlocks??[],n=e.onUpdateApplyBlocks??[];Ji(r),Ji(n),!t.multipleBlocks&&(r.length>1||n.length>1)&&K("multiple APPLY blocks in this phase"),wa(r,"UPSERT ON INSERT"),Aa(n,{...t,idxSelectors:!1,expectRows:!1})}function wa(e,t){for(let r of e)for(let n of r.operations){n.kind!=="APPEND"&&K(`${n.kind} for ${t} in this phase`);for(let i of n.fields)Pn(i,"APPEND targets");Wt(n.values,"APPEND values")}}function Pp(e,t,r){r.insert||K("INSERT in this phase"),e.subtableCode&&K("a subtable INSERT as the parent statement in this phase"),!r.check&&e.checkGroups?.length&&K("CHECK in this phase"),!r.onErrorSkip&&e.onErrorSkip&&K("ON ERROR SKIP in this phase"),!r.rejectLimit&&e.rejectLimit!=null&&K("REJECT LIMIT in this phase"),wa(t,"INSERT")}function We(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 ba(e,t){let r=Zi[e],n="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!n&&Ia(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Vt(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 ${Vt(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 ${Vt(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!r.multipleParentPreflight&&!We(t.where))throw new Error(`UnsupportedError: APPLY ${Vt(e)} execution does not support multiple-parent APPLY`)}function Ia(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 Pa(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||We(t.where))&&!Zi[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Vt(e)} public multiple-parent write is not connected`)}function Ht(e){if(!Zi[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Vt(e)} internal prepared write is not available`)}function Vt(e){return`Phase ${e.slice(5)}`}function Cp(e,t){We(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&K("a parent $id that is not a positive safe integer in this phase"),t||K("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Qi(e,t))}function Qi(e,t){if(Array.isArray(e)){for(let o of e)Qi(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")&&K("KLIKE in parent WHERE"),(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="SUBQUERY_IN_LIST"||n==="EXISTS")&&K("subqueries in parent WHERE"),(n==="WINDOW_COL"||n==="AGGREGATE"||n==="AGG_REF"||n==="AGG_ARITH"||n==="ARITH_AGG_COL")&&K("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)&&K("aggregate or window expressions in parent WHERE"),n==="KINTONE_FUNC"&&K("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(r))Qi(o,t)}function ya(e,t){Wt(e,"child row selectors",t)}function Wt(e,t,r=!1){if(Array.isArray(e)){for(let a of e)Wt(a,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,s=typeof n.op=="string"?n.op:null;if((s==="KLIKE"||s==="NOT_KLIKE")&&K(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&K(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&K(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&K(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let a=n.tableAlias,l=n.field;a!=null&&K(`qualified or parent field references in ${t}`),Pn(l,t,r)}if(i==="FIELD_REF"&&Pn(n.field,t,r),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let a of Object.values(n))Wt(a,t,r)}function Pn(e,t,r=!1){if(typeof e!="string")return;let n=e.toLowerCase();n==="_idx"&&!r&&K(`_idx in ${t}`),(n.startsWith("_p.")||n.includes("."))&&K(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&K(`aggregate expressions in ${t}`)}function Tr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Np(e.op);if(t===null)throw new Z(`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:Tr(e.left),right:Tr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Tr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Np(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 Ca(e){return e.includes("%")||e.includes("_")}function wr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Yt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function it(e){if(e===null)return!1;if(wr(e))return!0;switch(e.type){case"LOGICAL":return it(e.left)||it(e.right);case"NOT":case"GROUP":return it(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function oe(e){if(e===null)return!1;if(Yt(e))return!0;switch(e.type){case"LOGICAL":return oe(e.left)||oe(e.right);case"NOT":case"GROUP":return oe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function W(e){switch(e.type){case"BINARY":return Op(e);case"NULL_CHECK":return _p(e);case"LOGICAL":return vp(e);case"NOT":return Dp(e);case"GROUP":return kp(e);case"EXISTS":throw new Z("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new Z("internal error: BOOLEAN predicate reached kintone query conversion")}}function Op(e){if(wr(e))throw new Z("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=Oa(e.left),r=Lp(e.op),n=Up(e.right,e.op);return`${t} ${r} ${n}`}function Lp(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 _p(e){let t=Oa(e.field);return e.not?`${t} != ""`:`${t} = ""`}function vp(e){let t=W(e.left),r=W(e.right),n=e.op==="AND"?"and":"or",i=Na(e.left)?`(${t})`:t,o=Na(e.right)?`(${r})`:r;return`${i} ${n} ${o}`}function Dp(e){return W(Tr(e.expr))}function kp(e){return`(${W(e.expr)})`}function Oa(e){if(e.type==="FUNC_FIELD")throw new Z(`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 Z("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 Z("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 Z("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Kp(e.field)}function Up(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 La(e);case"NUMBER":return G(e);case"KINTONE_FUNC":return Mp(e);case"IN_LIST":return xp(e,t);case"ARITH_VALUE":throw new Z("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 Z("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 Z("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Z("\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 Z("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function La(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Mp(e){return`${e.name}()`}function xp(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new Z("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Fp(e.values),`(${e.values.map(n=>n.type==="STRING"?La(n):G(n)).join(",")})`}function Fp(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Z(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Kp(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Na(e){return e.type==="LOGICAL"}var Z=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Bp(e){return e.some(t=>t.type==="WINDOW_COL")}function He(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||Bp(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Ua(t.expr)||t.type==="SCALAR_VALUE_COL"&&Ir(t.expr))||ot(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function ot(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return _a(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||wr(e);case"NULL_CHECK":return _a(e.field);case"LOGICAL":return ot(e.left)||ot(e.right);case"NOT":case"GROUP":return ot(e.expr);case"EXISTS":return!0}}function _a(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Nn(e){let t=[],n=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(W(e.where)),e.orderBy.length>0){let i=e.orderBy.map($p).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:Gp(e.columns),totalCount:!1}}function ka(e,t){let r=[];return e.where!==null&&e.joins.length===0&&!ot(e.where)&&r.push(W(e.where)),{app:t,query:r.join(" "),fields:[]}}function ht(e,t){let n=Yp(e).get(t);if(!n)return[];if(n.allFields)return[];let i=new Set(n.fields);return n.table.subtableCode&&i.add(n.table.subtableCode),i.size===0&&i.add("$id"),[...i]}function $p(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 Gp(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(to(n.field)):n.type==="ARITH_COL"?br(n.expr,r):n.type==="STRFUNC_COL"?ro(n.expr,r):n.type==="SCALAR_VALUE_COL"&&jt(n.expr,r);return[...new Set(r)]}function Vp(e,t){br(e.left,t),br(e.right,t)}function br(e,t){e.type==="FIELD_REF"?t.push(to(e.field)):e.type==="ARITH"?Vp(e,t):e.type==="STRING_FUNC"&&ro(e,t)}function to(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ro(e,t){for(let r of e.args)Wp(r,t)}function Wp(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){eo(e,t);return}jt(e,t)}function jt(e,t){if(e.type==="FIELD"){t.push(to(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ro(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){jt(e.left,t),jt(e.right,t);return}if(e.type==="CASE_WHEN"){for(let r of e.branches)va(r.result,t);e.elseResult&&va(e.elseResult,t)}}function va(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){br(e,t);return}jt(e,t)}}function eo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Hp(e.arg,t);return}e.type==="AGG_ARITH"&&(eo(e.left,t),eo(e.right,t))}function Hp(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?br(e,t):jt(e,t)}function Ua(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Ir(t))}function Ir(e){return e.type==="STRING_FUNC"?Ua(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ir(e.left)||Ir(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Da(t.result))||e.elseResult!==null&&Da(e.elseResult):!1}function Da(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Ir(e)}function Yp(e){let t=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),r=new Map;for(let h of t)r.set(h,{table:h,allFields:!1,fields:new Set});if(r.size===0)return r;let n=t[0]??null,i=t.find(h=>!!h.subtableCode)??null,o=new Map;for(let h of t)h.alias&&o.set(h.alias,h),h.subtableCode||(o.set(`APP${h.appId}`,h),o.set(`app${h.appId}`,h));let s=jp(e.columns),a=h=>{let C=r.get(h);C&&(C.allFields=!0,C.fields.clear())},l=()=>{for(let h of t)a(h)},p=()=>{for(let h of t)h.subtableCode&&a(h)},d=(h,C)=>{let O=r.get(h);if(!(!O||O.allFields)){if(h.subtableCode){if(C.startsWith("_p.")){let v=C.slice(3);v&&v!=="*"&&O.fields.add(v);return}return void 0}C&&O.fields.add(C)}},c=(h,C="select")=>{if(!h||h==="*")return;if(h==="_p.*"){p();return}if(h.endsWith(".*")){let v=h.slice(0,-2);if(!v){l();return}if(v==="_p"){p();return}let k=o.get(v);if(k){a(k);return}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&s.has(h)||(C==="orderBy"||C==="having"||C==="groupBy")&&qp(h))return;let O=h.indexOf(".");if(O>0){let v=h.slice(0,O),k=h.slice(O+1);if(v==="_p"){i&&d(i,`_p.${k}`);return}let b=o.get(v);if(b){d(b,k);return}}n&&d(n,h)},u=(h,C,O="select")=>{if(C){if(C==="_p"){i&&d(i,`_p.${h}`);return}let v=o.get(C);if(v){d(v,h);return}}c(h,O)},f=(h,C="select")=>{if(h.type==="FIELD_REF"){c(h.field,C);return}if(h.type==="ARITH"){f(h.left,C),f(h.right,C);return}if(h.type==="STRING_FUNC"){m(h,C);return}},E=(h,C="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&y(h.arg,C);return}h.type==="AGG_ARITH"&&(E(h.left,C),E(h.right,C))},R=(h,C="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){E(h,C);return}g(h,C)},m=(h,C="select")=>{for(let O of h.args)R(O,C)},g=(h,C="select")=>{if(h.type==="FIELD"){u(h.field,h.tableAlias,C);return}if(h.type==="STRING_FUNC"){m(h,C);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){g(h.left,C),g(h.right,C);return}h.type==="CASE_WHEN"&&A(h,C)},y=(h,C="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){f(h,C);return}g(h,C)},T=(h,C="select")=>{if(h.type!=="ARRAY"){if(h.type==="FIELD_REF"||h.type==="ARITH"){f(h,C);return}g(h,C)}},A=(h,C="select")=>{for(let O of h.branches)L(O.condition,C),T(O.result,C);h.elseResult&&T(h.elseResult,C)},N=(h,C="select")=>{if(h.type==="FIELD"){u(h.field,h.tableAlias,C);return}if(h.type==="FUNC_FIELD"){m(h.expr,C);return}if(h.type==="ARITH_FIELD"){f(h.expr,C);return}h.type!=="GROUPING_FIELD"&&A(h.expr,C)},w=(h,C="select")=>{if(h.type==="ARITH_VALUE"){f(h.expr,C);return}if(h.type==="CASE_VALUE"){A(h.expr,C);return}},L=(h,C="where")=>{if(h)switch(h.type){case"BINARY":N(h.left,C),w(h.right,C);return;case"NULL_CHECK":N(h.field,C);return;case"LOGICAL":L(h.left,C),L(h.right,C);return;case"NOT":case"GROUP":L(h.expr,C);return;case"EXISTS":case"BOOLEAN":return}},I=h=>{if(h.type==="FIELD_NAME"){c(h.name,"groupBy");return}if(h.type==="ARITH_KEY"){f(h.expr,"groupBy");return}m(h.expr,"groupBy")},D=(h,C="orderBy")=>{if(h.type==="FIELD_NAME"){c(h.name,C);return}if(h.type==="ARITH_KEY"){f(h.expr,C);return}h.type!=="GROUPING_KEY"&&m(h.expr,C)};for(let h of e.columns)switch(h.type){case"WILDCARD":l();break;case"PARENT_WILDCARD":p();break;case"FIELD":c(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&y(h.arg,"select");break;case"ARITH_AGG_COL":E(h.expr,"select");break;case"ARITH_COL":f(h.expr,"select");break;case"CASE_COL":A(h.expr,"select");break;case"STRFUNC_COL":m(h.expr,"select");break;case"SCALAR_VALUE_COL":g(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of h.partitionBy)u(C.field,C.tableAlias,"select");for(let C of h.orderBy)D(C.key,"select");break}for(let h of e.joins)u(h.on.left.field,h.on.left.tableAlias,"where"),u(h.on.right.field,h.on.right.tableAlias,"where");L(e.where,"where");let P=ne(e);if(P.type==="PLAIN")for(let h of P.allItems)I(h);else if(P.type==="GROUPING_SETS")for(let h of P.allItems)u(h.field,h.tableAlias,"select");L(e.having,"having");for(let h of e.orderBy)D(h.key);return r}function jp(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(Se(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 qp(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function qt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||He(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||la(r)||r.distinct?!1:!r.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")}function zt(e){let t=e.ctes[0].query,r=e.query,n=On(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(s=>s.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 On(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Ma(e.left,t)};case"NULL_CHECK":return{...e,field:Ma(e.field,t)};case"LOGICAL":return{...e,left:On(e.left,t),right:On(e.right,t)};case"NOT":case"GROUP":return{...e,expr:On(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Ma(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function Xt(e,t={}){return Pr(e,r=>zp(r,t))}function Cr(e,t={}){return Pr(e,r=>xa(r,t)||Fa(r,t))}function Pr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=Pr(e.left,t),n=Pr(e.right,t);return r&&n?{...e,left:r,right:n}:r??n??null}case"GROUP":return Pr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function zp(e,t){return Xp(e,t)||Zp(e,t)?!0:xa(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":Qp(e,t)}function Xp(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!no(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Jp=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Qp(e,t){if(!Fa(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||!Jp.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 Zp(e,t){return!ed(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function ed(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 xa(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!no(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 Fa(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!no(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 no(e,t){let r=t.tableAlias??null;return e.tableAlias===r?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function io(e,t={}){let r=e!==null&&t.extractCondition!==!1?Xt(e,t):null,n=new Set;Jt(r,n);let i=new Set;return Jt(e,i),{condition:r,appliedKlikes:n,allKlikes:[...i]}}function Qt(e,t={}){let n={allowKlike:e.joins.every(d=>d.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,s=io(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)}),a=s.condition,l=new Map;if(e.where!==null)for(let d of e.joins){if(!d.table.alias||d.table.subtableCode||d.table.cteName!==null)continue;let c=Xt(e.where,{...n,tableAlias:d.table.alias,fieldTypes:t.fieldTypesByApp?.get(d.table.appId),fieldOptions:t.fieldOptionsByApp?.get(d.table.appId)});c!==null&&l.set(d.table.alias,c)}let p=new Set(s.appliedKlikes);for(let d of l.values())Jt(d,p);return{mainCondition:a,joinConditions:l,appliedKlikes:p,allKlikes:s.allKlikes}}function oo(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Jt(e,t){if(e!==null){if(Yt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Jt(e.left,t),Jt(e.right,t);return;case"NOT":case"GROUP":Jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var ie=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function tr(e){Ka(e)}function ao(e){if(oo(e).length>0)throw new ie("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 Ka(e){switch(e.type){case"SELECT":er(e);return;case"UNION":uo(e);return;case"WITH":Ba(e);return;case"EXPLAIN":Ka(e.query);return;case"CREATE_TEMP_TABLE":lo(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Zt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!We(e.where)&&oe(e.where)){so(e.where),Zt(e);return}if(st(e)&&e.subtableCode)throw new ie("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&&oe(e.where)&&!rd(e,e.where)){so(e.where),Zt(e);return}if(st(e))throw new ie("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(st(e)&&e.subtableCode)throw new ie("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&&oe(e.where)){so(e.where),Zt(e);return}if(st(e))throw new ie("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(st(e))throw new ie("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(st(e))throw new ie("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(st(e))throw new ie("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(st(e))throw new ie("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 so(e){_n(e,t=>{if(!Yt(t))return;let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new ie("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 ie("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 lo(e){e.type==="SELECT"?er(e):e.type==="UNION"?uo(e):Ba(e)}function uo(e){lo(e.left),er(e.right)}function Ba(e){if(qt(e)){er(zt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?er(t.query):t.query.type==="UNION"&&uo(t.query);lo(e.query)}function er(e){if(td(e),oe(e.where)&&!(He(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(r=>r.table.cteName===null))){let r=Qt(e,{allowUnresolvedVariables:!0});if(oo(r).length===0){Zt(e);return}throw new ie("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")}Zt(e)}function td(e){_n(e,t=>{if(!Yt(t))return;if(!Ln(e.where,t))throw new ie("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 ie("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 ie("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 Zt(e){vn(e,t=>{t.type==="SELECT"&&er(t)},!0)}function st(e){let t=!1;return vn(e,r=>{r.type==="BINARY"&&(r.op==="KLIKE"||r.op==="NOT_KLIKE")&&(t=!0)}),t}function rd(e,t){let r=!1,n=i=>{if(r||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let s of i)n(s);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){r=!0;return}for(let s of Object.values(o))n(s)}};return n(e),r}function Ln(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ln(e.left,t)||Ln(e.right,t);case"NOT":case"GROUP":return Ln(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function _n(e,t){if(Array.isArray(e)){for(let n of e)_n(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&&nd(n)||_n(n,t)}function vn(e,t,r=!1){if(Array.isArray(e)){for(let i of e)vn(i,t);return}if(e===null||typeof e!="object")return;let n=e;r||t(n);for(let i of Object.values(n))vn(i,t)}function nd(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var $a=Symbol("ksql.groupingRowMeta"),Ga=new WeakMap;function Va(e,t){return Object.defineProperty(e,$a,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function id(e){return e[$a]}function od(e){return id(e)?.includedCanonicalIds}function Wa(e,t){Ga.set(e,t)}function rr(e,t){let r=od(t);if(!r)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let n=Ga.get(e);if(!n)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return r.has(n)?"0":"1"}var Ya=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 Un(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function fo(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 Te(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Te(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=>Te(n,t))}}function Mn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Mn(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="AGGREGATE"||r.type==="AGG_REF"){Te(r.arg,t);return}Object.values(r).forEach(n=>Mn(n,t))}}function Nr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Nr(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(fo(r.field));return}Object.values(r).forEach(i=>Nr(i,t))}}function po(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(po);let t=e;return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(po)}function sd(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"?po(e):!1}function ad(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Ha(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 ld(e,t,r){let n=t(e.field);if(!n.physical)throw new Error(`ArgumentError: B65 grouping reference ${Un(e.field)} must resolve to a physical APP field.`);if(!r.has(n.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Un(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Wa(e,n.canonicalId)}function co(e,t,r,n){let i=t(e);if(!i.physical||!r.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Un(e)} in ${n} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function ud(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[fo(e.name)];let t=[];return Nr(e,t),t}function ja(e){let t=ne(e),r=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Te(i,r);Te(e.having,r),Te(e.orderBy,r);let n=[];Te(e.where,n),Te(e.joins,n),Mn(e.columns,n),Mn(e.having,n);for(let i of e.columns)i.type==="WINDOW_COL"&&Te(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 qa(e,t,r=()=>{}){ja(e);let n=ne(e),i=[];for(let d of e.columns)d.type!=="WINDOW_COL"&&Te(d,i);if(Te(e.having,i),Te(e.orderBy,i),n.type!=="GROUPING_SETS")return null;let o=ua(e,t),s=new Set,a=[];for(let d of o.allItems){let c=d;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${Un(d.field)} must resolve to a physical APP field.`);s.has(c.canonicalId)||(s.add(c.canonicalId),a.push(c))}r({expandedSetCount:n.sets.length,canonicalItemCount:s.size});for(let d of i)ld(d,t,s);let l=ad(e.columns);for(let d of e.columns){if(d.type==="GROUPING_COL"||d.type==="AGGREGATE"||d.type==="ARITH_AGG_COL"||d.type==="LITERAL_COL"||d.type==="VARIABLE_COL"||d.type==="SCALAR_SUBQUERY_COL")continue;let c=[];d.type==="FIELD"?c.push(fo(d.field)):Nr(d,c);for(let u of c)co(u,t,s,"SELECT")}if(e.having){let d=[];Nr(e.having,d);for(let c of d)c.tableAlias===null&&l.has(c.field)||Ha(c)||co(c,t,s,"HAVING")}for(let d of e.orderBy)for(let c of ud(d.key))c.tableAlias===null&&l.has(c.field)||Ha(c)||co(c,t,s,"ORDER BY");let p=new Set;for(let d of a)p.add(d.directKey),d.unqualifiedBridgeKey!==null&&p.add(d.unqualifiedBridgeKey);for(let d of e.columns){if(!sd(d))continue;let c="alias"in d?d.alias:null;if(c!==null&&p.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var cd=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),pd=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function z(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":pd.has(e.fieldType)?t="option":cd.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 x(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function nr(e,t,r){return{...e,source:{appId:t,fieldCode:r}}}function xn(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 at(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 s=i.value.codePointAt(0)??0,a=o.value.codePointAt(0)??0;if(s<a)return-1;if(s>a)return 1}}function dd(e,t){return e<t?-1:e>t?1:0}function za(e){if(e==="")return{band:0};let t=Ae(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 fd(e,t){let r=za(e),n=za(t);return r.band!==n.band?r.band<n.band?-1:1:r.band===2&&n.band===2?Sn(r.value,n.value):r.band===5&&n.band===5?at(r.value,n.value):0}function Xa(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 Ed(e,t,r){let n=Xa(e,r),i=Xa(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=at(n.normalizedId,i.normalizedId);return o!==0?o:at(n.display,i.display)}function Rd(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 Ja(e,t){let r=t.optionOrder??new Map,i=[...new Set(Rd(e,t.fieldType))].map(o=>{let s=r.get(o);return s===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:s,label:o}});return i.sort(Qa),i}function Qa(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:at(e.label,t.label)}function md(e,t,r){let n=Ja(e,r),i=Ja(t,r),o=Math.min(n.length,i.length);for(let s=0;s<o;s++){let a=Qa(n[s],i[s]);if(a!==0)return a}return n.length<i.length?-1:n.length>i.length?1:0}function yt(e,t,r){switch(r.compareMode){case"string":return at(e,t);case"number":return fd(e,t);case"recordNumber":return Ed(e,t,r.fieldType==="RECORD_NUMBER");case"option":return md(e,t,r);case"unsupported":throw new Error(`ArgumentError: values of type ${r.fieldType} cannot be compared.`)}}function At(e,t,r,n=x("string")){let i=yt(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 Za(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,s)=>{if(n){let a=Ae(o),l=Ae(s),p=a!==null&&l!==null?Sn(a,l):dd(Number(o),Number(s));if(p!==0)return p}return at(o,s)};return r.reduce((o,s)=>{let a=i(s,o);return t==="greatest"?a>0?s:o:a<0?s:o})}function ee(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Ye(t,e.field));if(e.type==="STRING_FUNC")return Number(te(e,t));let r=ee(e.left,t),n=ee(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 Ye(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 te(e,t,r,n);case"CASE_WHEN":return we(e,t,r,n);case"CONCAT_OP":return te({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 lt(e,t,r,n){switch(e.type){case"CASE_WHEN":return nl(e,t,r,n);case"SCALAR_ARITH":{let i=lt(e.left,t,r,n),o=lt(e.right,t,r,n);if(i===null||o===null)return null;let s=Number(i),a=Number(o);switch(e.op){case"+":return s+a;case"-":return s-a;case"*":return s*a;case"/":return a!==0?s/a:NaN;case"%":return a!==0?s%a:NaN}}case"CONCAT_OP":{let i=lt(e.left,t,r,n),o=lt(e.right,t,r,n);return`${i??""}${o??""}`}default:return se(e,t,r,n)}}function Fn(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 gd(e){return e>=55296&&e<=56319}function hd(e){return e>=56320&&e<=57343}function Bn(e,t){return t>0&&t<e.length&&gd(e.charCodeAt(t-1))&&hd(e.charCodeAt(t))}function el(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 Ro(e,t){let r=Math.min(Math.max(0,t),e.length);return Bn(e,r)&&(r-=1),e.slice(0,r)}function yd(e,t){let r=Math.max(0,e.length-t);return Bn(e,r)&&(r+=1),e.slice(r)}function Ad(e,t,r){let n=el(t,e.length),i=el(r,e.length);return i<=n?"":(Bn(e,n)&&(n+=1),Bn(e,i)&&(i-=1),e.slice(n,Math.max(n,i)))}function Sd(e,t){let r=e.repeat(Math.ceil(t/e.length));return Ro(r,t)}var Td=200,Or=new Map;function wd(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 Eo(e,t,r=!1){let n=wd(t)+(r?"g":""),i=`${e}\0${n}`,o=Or.get(i);if(o!==void 0)return o.lastIndex=0,o;let s;try{s=new RegExp(e,n)}catch(a){let l=a instanceof Error?a.message:String(a);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(Or.size>=Td){let a=Or.keys().next().value;a!==void 0&&Or.delete(a)}return Or.set(i,s),s}function bd(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Id(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 Pd(e,t,r,n){let i="";for(let o=0;o<e.length;o+=1){let s=e[o];if(s!=="$"||o+1>=e.length){i+=s;continue}let a=e[o+1];if(a==="$"){i+="$",o+=1;continue}if(a==="&"){i+=t,o+=1;continue}if(a==="<"&&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(a)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(a+l);if(d>=1&&d<=r.length){i+=r[d-1]??"",o+=2;continue}}let p=Number(a);if(p>=1&&p<=r.length){i+=r[p-1]??"",o+=1;continue}}i+="$"}return i}function Cd(e,t,r,n){let i=0;return e.replace(t,(o,...s)=>{if(i+=1,i!==n)return o;let a=s[s.length-1],l=typeof a=="object"&&a!==null,p=s.length-(l?3:2),d=s.slice(0,p);return Pd(r,o,d,l?a:void 0)})}function te(e,t,r,n){let i=e.args.map(o=>Ud(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 pe("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",s=Math.max(0,Number(i[1]??"1")-1),a=i[2]!==void 0?Number(i[2]):void 0;return Ad(o,s,a!==void 0?s+a:o.length)}case"LEFT":{pe("LEFT",i,2,2);let o=i[0],s=Math.trunc(Number(i[1]));return Number.isNaN(s)||s<=0?"":Ro(o,s)}case"RIGHT":{pe("RIGHT",i,2,2);let o=i[0],s=Math.trunc(Number(i[1]));return Number.isNaN(s)||s<=0?"":yd(o,s)}case"INSTR":return pe("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{pe(e.func,i,2,3);let o=i[0],s=Math.trunc(Number(i[1]));if(Number.isNaN(s)||s<=0)return"";if(o.length>=s)return Ro(o,s);let a=i[2]??" ";if(a==="")return o;let l=Sd(a,s-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return pe(e.func,i,2),Za(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",s=i[1]??"",a=i[2]??"";return s===""?o:o.split(s).join(a)}case"REGEXP_LIKE":return pe("REGEXP_LIKE",i,2,3),Eo(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{pe("REGEXP_REPLACE",i,3,5),bd(i[2]);let o=Id(i[4]),s=Eo(i[1],i[3]??"",!0);return o===0?i[0].replace(s,i[2]):Cd(i[0],s,i[2],o)}case"REGEXP_SUBSTR":return pe("REGEXP_SUBSTR",i,2,3),Eo(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{pe("TRANSLATE",i,3,3);let o=[...i[1]],s=[...i[2]];if(o.length!==s.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=${s.length}\uFF09`);let a=new Map;return o.forEach((l,p)=>{a.has(l)||a.set(l,s[p])}),[...i[0]].map(l=>a.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 Fn("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Fn("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Fn("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return pe("TRUNCATE",i,1,2),Fn("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let a=Number(o);return isNaN(a)?o:String(a)}return o}case"FORMAT":{let o=Number(i[0]??"0"),s=i[1]??"0";return Dd(o,s)}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 pe(e.func,i,1,1),Kn(i[0])?String(mo(i[0])+1):"";case"QUARTER":return pe(e.func,i,1,1),Kn(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return pe(e.func,i,1,1),Kn(i[0])?String(rl(i[0])):"";case"DATE_FORMAT":return Od(i[0]??"",i[1]??"");case"DATEDIFF":return Ld(i[0]??"",i[1]??"");case"DATE_ADD":return _d(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return pe("LAST_DAY",i,1,1),vd(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),s=Number(i[1]??"0");return String(s!==0?o%s: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,s=o.getFullYear(),a=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${s}-${a}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function pe(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 Lr(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function $n(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 Kn(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let r=$n(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 mo(e){return $n(e).getUTCDay()}function tl(e){let t=$n(e),r=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-r),t}function Nd(e){return tl(e).getUTCFullYear()}function rl(e){let t=tl(e),r=t.getUTCFullYear(),n=$n(`${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 Od(e,t){if(!e||e.length<10)return"";let{y:r,mo:n,d:i,h:o,mi:s,sec:a}=Lr(e),l=Kn(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 s;case"%s":return a;case"%w":return l?String(mo(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][mo(e)]:"";case"%v":return l?String(rl(e)).padStart(2,"0"):"";case"%G":return l?String(Nd(e)).padStart(4,"0"):"";default:return p}})}function Ld(e,t){if(e.length<10||t.length<10)return"0";let r=Lr(e),n=Lr(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 _d(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}=Lr(e),s=new Date(Date.UTC(+n,+i-1,+o));switch(r){case"YEAR":s.setUTCFullYear(s.getUTCFullYear()+t);break;case"MONTH":s.setUTCMonth(s.getUTCMonth()+t);break;case"DAY":s.setUTCDate(s.getUTCDate()+t);break}let a=String(s.getUTCFullYear()).padStart(4,"0"),l=String(s.getUTCMonth()+1).padStart(2,"0"),p=String(s.getUTCDate()).padStart(2,"0");return`${a}-${l}-${p}`}function vd(e){if(!e||e.length<10)return e;let{y:t,mo:r}=Lr(e),n=new Date(Date.UTC(+t,+r,0)),i=String(n.getUTCFullYear()).padStart(4,"0"),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0");return`${i}-${o}-${s}`}function Dd(e,t){if(/^-?\d+$/.test(t.trim()))return kd(e,Math.max(0,Number(t)));let r=t.endsWith("%"),n=t.includes(","),i=r?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),s=o>=0?t.slice(o+1).replace(/%$/,""):"",a=(s.match(/0/g)??[]).length,l=(s.match(/#/g)??[]).length,p=a+l,d=i.toFixed(p),[c,u=""]=d.split(".");l>0&&(u=u.replace(/0+$/,""));let f=n?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return r?E+"%":E}function kd(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 Ud(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 Ye(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 q(e,t,r,n,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Md(e,t,r,n,i);case"NULL_CHECK":return Gd(e,t);case"LOGICAL":return Vd(e,t,r,n,i);case"NOT":return!q(e.expr,t,r,n,i);case"GROUP":return q(e.expr,t,r,n,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Md(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=pl(e.left,t,r,i),s=e.left.type==="FIELD"?r?.(e.left):void 0,a=Fd(e.left,s,i);return xd(e.op,o,e.right,t,s,r,a,i)}function xd(e,t,r,n,i,o,s=x("string"),a){if(e==="IN"||e==="NOT_IN"){let p=null;if(r.type==="IN_LIST"&&($d(r.values),p=new Set(r.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?G(c):String(c.value):c.value))),r.type==="SUBQUERY_IN_LIST"&&(p=r.resolved),p===null)return e==="NOT_IN";let d=Bd(t,p,i);return e==="IN"?d:!d}if(e==="LIKE"){let p=go(r,n,o);return cl(t,p)}if(e==="NOT_LIKE"){let p=go(r,n,o);return!cl(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=go(r,n,o,a);return At(e,t,l,s)}var il=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Fd(e,t,r){if(e.type==="FIELD")return r?.(e)??(t?z({fieldType:t}):x("string"));if(e.type==="ARITH_FIELD")return x("number");if(e.type==="FUNC_FIELD")return x(il.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(il.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let s=o.field.indexOf("."),a=s>0?{type:"FIELD",tableAlias:o.field.slice(0,s),field:o.field.slice(s+1)}:{type:"FIELD",tableAlias:null,field:o.field};return r?.(a)??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 ol=new Set(["CHECK_BOX","MULTI_SELECT"]),sl=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Kd=new Set(["CREATOR","MODIFIER"]);function Bd(e,t,r){let n=()=>t.has(e);if(r===void 0)return n();if(r==="NUMBER"){let o=x("number");return[...t].some(s=>At("=",e,s,o))}let i;if(ol.has(r)||sl.has(r)||Kd.has(r))try{i=JSON.parse(e)}catch{return n()}else return n();return ol.has(r)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):sl.has(r)?!Array.isArray(i)||!i.every(al)?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):al(i)?t.has(i.code):n()}function al(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function $d(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`)}function Gd(e,t){let r=pl(e.field,t);return e.not?r!=="":r===""}function Vd(e,t,r,n,i){return e.op==="AND"?q(e.left,t,r,n,i)&&q(e.right,t,r,n,i):q(e.left,t,r,n,i)||q(e.right,t,r,n,i)}function pl(e,t,r,n){if(e.type==="FUNC_FIELD")return te(e.expr,t);if(e.type==="ARITH_FIELD")return String(ee(e.expr,t));if(e.type==="CASE_FIELD")return we(e.expr,t,r,n);if(e.type==="GROUPING_FIELD")return rr(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ye(t,i)}function go(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 dl(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"?Ye(t,e.expr.field):e.expr.type==="STRING_FUNC"?te(e.expr,t):String(ee(e.expr,t));case"CASE_VALUE":return we(e.expr,t,r,n);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function we(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return ul(i.result,t,r,n);return e.elseResult!==null?ul(e.elseResult,t,r,n):""}function nl(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return ll(i.result,t,r,n);return e.elseResult===null?null:ll(e.elseResult,t,r,n)}function ll(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"?ee(e,t):lt(e,t,r,n)}function ul(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(ee(e,t)):String(se(e,t,r,n))}function dl(e){let t=new Date;switch(e){case"TODAY":{let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${r}-${n}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":return""}}var Gn=new Map,Wd=200;function cl(e,t){if(!Ca(t))return e.includes(t);let r=Gn.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"),Gn.size>=Wd&&Gn.clear(),Gn.set(t,r)}return r.test(e)}function ir(e){return El(e)}function fl(e){return El(e.flatMap(t=>t.rules.map(r=>r.condition)))}function El(e){let t=[],r=new Set,n=o=>{if(Array.isArray(o)){o.forEach(n);return}if(o===null||typeof o!="object")return;let s=o;if(s.type==="EXISTS"||s.type==="SUBQUERY_IN_LIST"||s.type==="SCALAR_SUBQUERY")throw ae("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(s.type==="FIELD"&&typeof s.field=="string")i(typeof s.tableAlias=="string"?s.tableAlias:null,s.field);else if(s.type==="FIELD_REF"&&typeof s.field=="string"){let a=s.field.indexOf(".");i(a>0?s.field.slice(0,a):null,a>0?s.field.slice(a+1):s.field)}for(let a of Object.values(s))n(a)},i=(o,s)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(s))throw ae("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let a=`${o??""}\0${s}`;r.has(a)||(r.add(a),t.push({tableAlias:o,field:s}))};return n(e),t}function ae(e){return new S(e,{kind:"EOF",value:"CHECK",pos:0})}function Vn(e,t,r){let n=[];return e.forEach((i,o)=>{for(let s of i.rules){if(!q(s.condition,t,r))continue;let a=se(s.message,t);n.push({groupIndex:o,message:a==null?"":String(a)});break}}),n}function yo(e){if(it(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 Hd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Yd=new Set(["CHECK_BOX","MULTI_SELECT"]);function Hn(e,t=new Map){let r=e.values.map(n=>jd(e.fields,n,t));return kr(r,100).map(n=>({app:e.appId,records:n}))}function jd(e,t,r){let n={};return e.forEach((i,o)=>{let s=t[o];s.type==="CASE_VALUE"?n[i]={value:ut(s.expr,{},r.get(i))}:n[i]={value:je(s,r.get(i))}}),n}function vr(e){yo(e.where);let t=Cl(e);return{app:e.appId,query:W(e.where),fields:["$id",...t],totalCount:!1}}function Dr(e,t,r=new Map){let n=qd(e.assignments,r);return kr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:n}))}))}function qd(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:je(i,t.get(n))});return r}function hl(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 Yn(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 Ao(e){yo(e.where);let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"?yl(r,t):r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP"?or(r,t):r.type==="STRING_FUNC"?So(r,t):r.type==="CASE_VALUE"&&Al(r.expr,t);return Cl(e).forEach(r=>t.add(r)),{app:e.appId,query:W(e.where),fields:["$id",...t],totalCount:!1}}function yl(e,t){_r(e.left,t),_r(e.right,t)}function _r(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?yl(e,t):e.type==="STRING_FUNC"&&So(e,t)}function So(e,t){for(let r of e.args)zd(r,t)}function zd(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ho(e,t);return}or(e,t)}function or(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){So(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){or(e.left,t),or(e.right,t);return}e.type==="CASE_WHEN"&&Al(e,t)}function ho(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Xd(e.arg,t);return}e.type==="AGG_ARITH"&&(ho(e.left,t),ho(e.right,t))}function Xd(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?_r(e,t):or(e,t)}function Rl(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){_r(e,t);return}or(e,t)}}function Al(e,t){for(let r of e.branches)Wn(r.condition,t),Rl(r.result,t);e.elseResult!==null&&Rl(e.elseResult,t)}function Wn(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&_r(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Wn(e.left,t),Wn(e.right,t);break;case"NOT":case"GROUP":Wn(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function To(e,t,r=new Map){let n=t.map(i=>{let o=Number(i.$id.value),s=Sl(i),a={};for(let{field:l,value:p}of e.assignments)a[l]={value:wo(p,s,r.get(l),i)};return{id:o,record:a}});return kr(n,100).map(i=>({app:e.appId,records:i}))}function wo(e,t,r,n){if(e.type==="ARITH")return String(n?Io(e,n):ee(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(se(e,t));if(e.type==="STRING_FUNC")return te(e,t);if(e.type==="CASE_VALUE")return ut(e.expr,t,r);if(e.type==="SOURCE_FIELD")throw new j("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return je(e,r)}function jn(e,t,r){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return G(e);if(e.type==="ARITH")return String(ee(e,t));if(e.type==="CASE_VALUE")return we(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 Jd=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function bo(e,t,r=new Map){let n=t.map(({target:i,source:o})=>{let s=Number(i.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new j("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let a=Sl(i),l={};for(let{field:p,value:d}of e.assignments){let c=r.get(p);if(d.type==="SOURCE_FIELD"){if(Jd.has(c??""))throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,d.field))throw new j(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${d.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[d.field];if(typeof u!="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: ${d.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new j(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[p]={value:je({type:"STRING",value:u},c)}}else{if(d.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");d.type==="ARITH"?l[p]={value:String(Io(d,i))}:d.type==="SCALAR_ARITH"||d.type==="CONCAT_OP"?l[p]={value:String(se(d,a))}:d.type==="CASE_VALUE"?l[p]={value:ut(d.expr,a,c)}:l[p]={value:je(d,c)}}}return{id:s,record:l}});return kr(n,100).map(i=>({app:e.appId,records:i}))}function Sl(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r.value=="string"?r.value:JSON.stringify(r.value??"")]))}function Io(e,t){let r=ml(e.left,t),n=ml(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 ml(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Io(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 Tl(e){return yo(e.where),{app:e.appId,query:W(e.where),fields:["$id"],totalCount:!1}}function wl(e,t){return kr(t,100).map(r=>({app:e,ids:r}))}function bl(e){return Hd.has(e??"")}function Qd(e){return Yd.has(e??"")}function Zd(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 ef(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Il(e,t){return bl(t)?e===""?[]:e.split(",").map(r=>({code:r.trim()})):Qd(t)?e===""?[]:e.split(",").map(r=>r.trim()):t==="DATETIME"?Zd(e):t==="DATE"?ef(e):e}function Pl(e,t){return bl(t)?e.map(r=>({code:r})):e}function gl(e,t,r){return e.type==="ARRAY"?Pl(e.elements.map(n=>n.value),r):e.type==="STRING"?Il(e.value,r):e.type==="STRING_FUNC"?te(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ee(e,t)):String(se(e,t))}function Cl(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(ir(e.checkGroups).filter(r=>r.tableAlias===null||r.tableAlias.toLowerCase()===t).map(r=>r.field).filter(r=>r!=="$id"))]}function ut(e,t,r){for(let n of e.branches)if(q(n.condition,t))return gl(n.result,t,r);return e.elseResult!==null?gl(e.elseResult,t,r):""}function je(e,t){let r=Po(e,t);if(!r.ok)throw new j(r.message);return r.value}function Po(e,t){try{return{ok:!0,value:tf(e,t)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:String(r)}}}function tf(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 Il(e.value,t);case"NUMBER":return G(e);case"ARRAY":return Pl(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 kr(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 Co=new Set(["CHECK_BOX","MULTI_SELECT"]),rf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ur(e){throw new Error(`ArgumentError: ${e}`)}function Nl(e,t,r){let n=nf(r.fieldType,e.field),i=of(t,n,e.field),o=new Set(i),s=[],a=new Set,l=new Set;for(let g of e.operations){let y=g.value;y!==""&&(g.kind==="ADD"?(a.has(y)||s.push(y),a.add(y)):l.add(y))}for(let g of a)l.has(g)&&Ur(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let p=i.filter(g=>!l.has(g)),d=s.filter(g=>!o.has(g)),c=[...p,...d],u=new Set(i.filter(g=>l.has(g))).size,f=new Set,E=new Set,R=e.operations.map(g=>{let y=g.kind==="ADD"?f:E,T=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&T&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),m=Co.has(n)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:n,operations:R,postImageValue:m,addedValues:d.length,removedValues:u,changedValues:d.length+u}}function nf(e,t){return Co.has(e)||rf.has(e)?e:Ur(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function of(e,t,r){if(!Array.isArray(e))return Ur(`APPLY snapshot for ${r} must be an array.`);let n=e.map((i,o)=>Co.has(t)?typeof i!="string"?Ur(`APPLY snapshot for ${r} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Ur(`APPLY snapshot for ${r} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(n.filter(i=>i!==""))]}function $(e){throw new Error(`ArgumentError: ${e}`)}function Lo(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?$("APPLY parent selector must be a single positive $id."):t.right.value}function qe(e,t){let r=e.applyBlocks;if(!r?.length)return $("APPLY block is missing.");let n=new Map(t.map(a=>[a.code,a])),i=new Map,o=new Map,s=new Map;for(let a of e.assignments)No(a.field,null,n),sf(a.value,n);for(let a of r){(i.has(a.field)||o.has(a.field))&&$(`APPLY has more than one block for field ${a.field}.`),e.assignments.some(c=>c.field===a.field)&&$(`APPLY target ${a.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===a.field&&!c.inSubtable);if(!l)return a.targetKind==="SUBTABLE"?$(`APPLY target ${a.field} is not a SUBTABLE.`):$(`APPLY target ${a.field} does not exist as a top-level field.`);if(Ta(a,l.fieldType),a.targetKind==="MULTI_VALUE"){l.writable===!1&&$(`APPLY target ${a.field} is not writable (${l.fieldType}).`),o.set(a.field,l);continue}let p=l,d=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===a.field).map(c=>[c.code,c]));i.set(a.field,p),s.set(a.field,d);for(let c of a.operations)if(c.kind==="PATCH"){for(let u of c.assignments)No(u.field,a.field,n,d),Oo(u.value,a.field,n,d);c.selector.kind==="WHERE"&&Oo(c.selector.where,a.field,n,d)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&$(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),No(f,a.field,n,d)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Oo(c.selector.where,a.field,n,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:s,fieldsByCode:n}}function sf(e,t){Mr(e,r=>{if(r==="$id"||r==="$revision")return;let n=t.get(r);(!n||n.inSubtable)&&$(`APPLY parent reference ${r} is not a top-level field.`),n.fieldType==="FILE"&&$(`APPLY parent FILE reference ${r} is not supported.`)})}function No(e,t,r,n){(e.startsWith("_")||e.startsWith("$"))&&$(`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&&$(`APPLY child ${e} does not belong to subtable ${t}.`),$(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&$(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Oo(e,t,r,n){Mr(e,i=>{if(i==="_rid"||i==="_idx"||n.has(i))return;r.get(i)?.inSubtable&&$(`APPLY child reference ${i} does not belong to subtable ${t}.`),$(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function qn(e,t){let r=qe(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)Mr(i.value,o=>{let s=r.fieldsByCode.get(o);!s?.inSubtable&&s?.fieldType!=="FILE"&&n.add(o)});return[...n]}function zn(e,t){let r={_rid:e.id??"",_idx:String(t)};for(let[n,i]of Object.entries(e.value??{}))r[n]=kl(i?.value);return r}function Ll(e){let{statement:t,snapshot:r,fieldInfos:n}=e,i=e.metadata??qe(t,n),o=Do(r.$id?.value,"APPLY snapshot $id"),s=Lo(t);return o!==s&&$(`APPLY snapshot $id ${o} does not match requested $id ${s}.`),vl(t,r,i,o)}function _l(e,t,r,n=qe(e,r)){let i=new Set;return t.map(o=>{let s=Do(o.$id?.value,"APPLY snapshot $id");return i.has(s)&&$(`APPLY snapshots contain duplicate parentId ${s}.`),i.add(s),vl(e,o,n,s)})}function vl(e,t,r,n){let i=Do(t.$revision?.value,"APPLY snapshot $revision"),o=[],s=[];for(let d of e.applyBlocks){if(d.targetKind==="MULTI_VALUE"){let P=r.targetMultiValueFields.get(d.field);P||$(`APPLY multi-value metadata for ${d.field} is missing.`),s.push(Nl(d,t[d.field]?.value,P));continue}let c=r.childrenByTable.get(d.field),u=df(t,d.field),f=new Set;for(let P of u)P.id||$(`APPLY snapshot for ${d.field} contains a row without _rid.`),f.has(P.id)&&$(`APPLY snapshot for ${d.field} contains duplicate _rid ${P.id}.`),f.add(P.id);let E=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":c.get(P.field)?.fieldType,R=[],m=[],g=[],y=new Set,T=new Set,A=new Set,N=d.operations.some(P=>P.kind==="REMOVE");for(let[P,h]of d.operations.entries()){if(h.kind==="APPEND"){let O=_o(h,c,d.field);g.push({kind:"APPEND",addedRows:O.length}),m.push(...O);continue}if(h.kind==="REMOVE"){let O=uf(h,u,E,d.field);h.expectRows&&Ol(h.expectRows,O.length,n,d.field,P,h.kind),g.push({kind:"REMOVE",removedRows:O.length});for(let v of O){let k=u[v].id;T.has(v)&&$(`APPLY row ${k} is selected by both PATCH and REMOVE.`),A.has(v)&&$(`APPLY removes row ${k} more than once.`),A.add(v)}continue}if(h.kind!=="PATCH")continue;let C=lf(h,u,E,d.field);h.expectRows&&Ol(h.expectRows,C.length,n,d.field,P,h.kind),g.push({kind:"PATCH",matchedRows:C.length,changedRows:C.length});for(let O of C){let v=u[O];A.has(O)&&$(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),T.add(O);let k=zn(v,O);for(let b of h.assignments){let U=`${v.id}\0${b.field}`;y.has(U)&&$(`APPLY patches cell ${v.id}.${b.field} more than once.`),y.add(U),R.push({rowIndex:O,field:b.field,value:jn(b.value,k,E)})}}}let w=new Map;for(let P of R){let h=w.get(P.rowIndex)??{};h[P.field]={value:P.value},w.set(P.rowIndex,h)}let I=[...u.flatMap((P,h)=>A.has(h)?[]:[{id:P.id,value:{...P.value,...w.get(h)??{}}}]),...m],D={table:d.field,operations:g,changedSubtableRows:w.size+A.size+m.length,deletedRows:A.size,snapshotRowIds:u.map(P=>P.id),postImageRows:I};N?o.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((P,h)=>A.has(h)?[P.id]:[]),payloadRows:I.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):o.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((P,h)=>{let C=w.get(h);return C?{id:P.id,value:C}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let a=ff(t),l={};for(let d of e.assignments){let c=r.fieldsByCode.get(d.field)?.fieldType;l[d.field]={value:wo(d.value,a,c,t)}}let p={...t};Object.assign(p,l);for(let d of o)p[d.table]={value:d.postImageRows};for(let d of s)p[d.field]={value:d.postImageValue};return{app:e.appId,parentId:n,revision:i,parentRows:1,changedSubtableRows:o.reduce((d,c)=>d+c.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:s}}function Ol(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 a=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}`;$(`APPLY EXPECT ROWS mismatch for parent $id ${r}, table ${n}, operation ${i+1} (${o}): expected ${a}, actual ${t}.`)}function Xn(e,t){let r=e.tables.map(o=>{let s=t[o.table]?.value;if(!Array.isArray(s)||s.length!==o.postImageRows.length)return $(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let a=o.payloadRows.map((l,p)=>{let d=s[p];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,d.value[c]]))}:$(`APPLY normalized post-image for ${o.table} row ${p+1} has no value.`)});return{...o,payloadRows:a,postImageRows:s}}),n=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let s=t[o.field]?.value;return Array.isArray(s)?{...o,postImageValue:s}:$(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:n,tables:r,multiValues:i,postImage:t}}function _o(e,t,r){return e.values.map(n=>({value:af(e,n,t,r)}))}function af(e,t,r,n){if(t.length!==e.fields.length)return $(`APPLY APPEND for ${n} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((s,a)=>[s,t[a]])),o={};for(let s of r.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let a=i.get(s.code);o[s.code]={value:a===void 0?vo(s):a.type==="CASE_VALUE"?ut(a.expr,{},s.fieldType):je(a,s.fieldType)}}return o}function vo(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 lf(e,t,r,n){return Dl(e.selector,t,r,n)}function uf(e,t,r,n){return Dl(e.selector,t,r,n)}function Dl(e,t,r,n){if(e.kind==="ALL_ROWS")return t.map((l,p)=>p);let i=e.where,o=t.flatMap((l,p)=>q(i,zn(l,p),r)?[p]:[]),s=cf(i);s!==null&&o.length===0&&$(`APPLY _rid ${s} does not exist in snapshot table ${n}.`);let a=pf(i);return a!==null&&o.length===0&&$(`APPLY _idx ${a} does not exist in snapshot table ${n}.`),o}function cf(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 pf(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 df(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:{}}}):$(`APPLY snapshot field ${t} is not a subtable value.`)}function Do(e,t){let r=Number(e);return(!Number.isSafeInteger(r)||r<=0)&&$(`${t} must be a positive integer.`),r}function ff(e){let t={};for(let[r,n]of Object.entries(e))t[r]=kl(n?.value);return t}function kl(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 Mr(e,t){if(Array.isArray(e)){e.forEach(n=>Mr(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))Mr(n,t)}function X(e){throw new Error(`ArgumentError: ${e}`)}function Qn(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?X("APPLY snapshot $revision must be a positive integer."):t}function xr(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},r=new Set(Object.keys(t));for(let i of e.multiValues)r.has(i.field)&&X(`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)&&X(`APPLY plan contains duplicate top-level field ${i.table}.`),n.has(i.table)&&X(`APPLY plan contains duplicate table ${i.table}.`),n.add(i.table),r.add(i.table),Ef(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Ul(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 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 Ef(e){let t=ko(e.snapshotRowIds,`${e.table} snapshot`),r=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&X(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(ko(r,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&X(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(u=>u.id??"");Jn(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");Jn(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||X(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let n=ko(e.removedRowIds,`${e.table} removed`);e.deletedRows!==n.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(d=>d.id===void 0?[]:[d.id]),o=new Set(n),s=new Set(i);for(let d of n)s.has(d)&&X(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let a=t.filter(d=>!o.has(d));Jn(a,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");Jn(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&X(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&X(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,c)=>!Uo(d.value,e.postImageRows[c]?.value))&&X(`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(d=>!p.has(d)))&&X(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function ko(e,t){let r=[...e],n=new Set;for(let i of r)i||X(`APPLY ${t} contains an empty row id.`),n.has(i)&&X(`APPLY ${t} contains duplicate row id ${i}.`),n.add(i);return r}function Jn(e,t,r){(e.length!==t.length||e.some((n,i)=>n!==t[i]))&&X(r)}function Uo(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((s,a)=>Uo(s,t[a]));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(s=>Object.prototype.hasOwnProperty.call(n,s)&&Uo(r[s],n[s]))}function Ml(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 xl(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let r=Ml(t.digits,"digits",1,30),n=Ml(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 Fl(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 Rf=new Set(["CHECK_BOX","MULTI_SELECT"]),mf=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function he(e,t,r){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=gf(e);if(i!==""&&!hf(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=Fr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:yf(t.fieldType),message:o}}if(t.required&&Zn(n))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Zn(n)&&t.fieldType==="NUMBER"){let i=String(n),o=Ae(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&&Tn(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&&Tn(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:s}=Fl(o),a=r.digits-r.decimalPlaces;if(s>a)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${s} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${a} \u6841\u307E\u3067\u3067\u3059 (digits=${r.digits}, decimalPlaces=${r.decimalPlaces})`}}}if(!Zn(n)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!St(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),s=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(s)&&i>s)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${s} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!Zn(n)&&mf.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 gf(e){return e==null?"":ei(e)&&e.type==="NUMBER"?G(e):ei(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function hf(e,t){if(t==="DATE")return St(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return St(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)?St(r.slice(0,10),"DATE")&&St(r.slice(11),"TIME"):St(r,"DATETIME")}function Fr(e,t){if(ei(e)){let n=Po(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(Rf.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 ei(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Tt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(ei(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Zn(e){return e===""||Array.isArray(e)&&e.length===0}function yf(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function St(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]),s=Number(n[3]),a=new Date(Date.UTC(i,o-1,s));if(a.getUTCFullYear()!==i||a.getUTCMonth()!==o-1||a.getUTCDate()!==s)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)&&St(l,"TIME")}var sr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Mo(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 s=i.payload.get(o),a=n.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(a)&&Array.isArray(s)&&s.every(d=>typeof d=="object"&&d!==null&&"code"in d),p=s;try{p=Fr(s,a)}catch{}i.record[o]={value:l?s:p}}}}function xo(e,t,r,n,i,o,s,a=[],l=!0,p=!0,d={}){let c=new Map(i.map(m=>[m.code,m])),u=[],f=new Set,E=[];d.validateUpdateBuiltIns===!1&&Mo(e,n,i);let R;for(let m of e){m.record??(m.record={});let g=p?[...m.preErrors]:[],y=[],T=[],A=m.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let I of n){if(!m.payload.has(I))continue;let D=m.payload.get(I),P=c.get(I).fieldType,h=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(P)&&Array.isArray(D)&&D.every(O=>typeof O=="object"&&O!==null&&"code"in O);if(!A)continue;let C=he(D,c.get(I),s);C.ok?m.record[I]={value:h?D:C.value}:y.push({field:I,code:C.code,message:C.message})}if(l&&m.mode==="create")for(let I of i){if(I.inSubtable||m.payload.has(I.code))continue;if(Tt(I.defaultValue)){let P=he("",I,s);P.ok?I.required&&y.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:I.code,code:P.code,message:P.message})}else{let P=he(I.defaultValue,I,s);P.ok||y.push({field:I.code,code:P.code,message:`\u65E2\u5B9A\u5024: ${P.message}`})}}if(a.length>0){let I=m.evaluationRow??Object.fromEntries([...m.payload].map(([h,C])=>[h,ve(C)])),D=m.evaluationFieldTypes,P=h=>{let C=h.tableAlias?`${h.tableAlias}.${h.field}`:h.field;return D?.get(C)??D?.get(h.field)};try{for(let h of Vn(a,I,P))T.push({field:"",code:"ERR_CHECK",message:h.message})}catch(h){R??(R=h)}}let N=I=>I.map(D=>{let P={};for(let h of r)P[h]=ve(m.payload.get(h));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(m.rowNumber),P.$err_field=D.field,P.$err_code=D.code,P.$err_message=D.message,P.$err_value="",P.$err_subtable="",P.$err_subrow="",P.$err_subrow_id="",P}),w={rowNumber:m.rowNumber,preErrors:N(g),builtInErrors:N(y),checkErrors:N(T)};E.push(w);let L=[...w.preErrors,...w.builtInErrors,...w.checkErrors];L.length>0&&f.add(m.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function ve(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 Fo(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 Af(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 Sf(e){return e.fieldType==="NUMBER"||Af(e)}function ti(e,t,r){return{subtable:e,subrow:t+1,subrowId:String(r.id??"")}}function Ko(e,t){let{topByCode:r,childrenByTable:n}=Fo(t),i=Sf;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=[],s=new Set,a=(l,p)=>{let d=p?`${p}\0${l.code}`:l.code;if(s.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(s.add(d),!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 c=n.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...n.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(g=>g.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}a(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 d=r.get(p);if(d?.fieldType==="SUBTABLE"){let c=(n.get(p)??[]).filter(i);if(c.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`);c.forEach(u=>a(u,p));continue}if(d){a(d);continue}throw[...n.values()].some(c=>c.some(u=>u.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 Kr(e,t){return Tt(e)?"":ve(Fr(e,t))}var Tf=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Br=sr;function De(e,t=["$id"]){let r=Fo(e),n=r.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!Tf.has(o.fieldType)),i=new Map;for(let[o,s]of r.childrenByTable)i.set(o,s.filter(a=>a.fieldType!=="FILE"));return{topLevel:n,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function wt(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 s=o?.value;if(n.some(a=>a.fieldType==="NUMBER"&&!!s&&a.code in s))return!0}}return!1}function bt(e,t,r,n,i=1,o="UPDATE"){let s=wf(e),a=[],l=new Set,p=[...t.payloadFields,...Br],d=ve(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let m={};for(let g of t.payloadFields)m[g]=g==="$id"?d:ve(e[g]?.value);m.$err_statement=String(n),m.$err_operation=o,m.$err_row=String(i),m.$err_field=u.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Kr(f,u.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",a.push(m)};for(let u of t.topLevel){let f=e[u.code]?.value,E=he(f,u,r);E.ok?s[u.code]={value:Kl(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=s[u]?.value;for(let m=0;m<E.length;m++){let g=E[m],y=R[m];for(let T of f){let A=g.value?.[T.code]?.value,N=he(A,T,r);N.ok?(y.value??(y.value={}),y.value[T.code]={value:Kl(A,T.fieldType,N.value)}):c(T,A,N,ti(u,m,g))}}}return{normalizedRecord:s,errors:a,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:a.length}}function Kl(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 wf(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 s=o;return s.value?{...s,value:Object.fromEntries(Object.entries(s.value).map(([a,l])=>[a,{...l}]))}:{...s}}):i}}return t}async function ri(e){let{statement:t,snapshots:r,fieldInfos:n,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:s,statementNumber:a=1}=e;Bl(o,"dmlMaxRows"),Bl(s,"dmlMaxSubtableRows");for(let T of r)Qn(T);let l=_l(t,r,n,i),p=De(n,t.assignments.map(T=>T.field)),d=l.some(T=>wt(T.postImage,p));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=d?await e.loadNumberPrecision():void 0,u=l.map((T,A)=>bt(T.postImage,p,c,a,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let T=u.flatMap(A=>A.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:T})}`)}let f=l.length,E=l.reduce((T,A)=>T+A.changedSubtableRows,0),R=f>o||E>s;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>s)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${s}).`);let m=l.map((T,A)=>Xn(T,u[A].normalizedRecord)),g=m.flatMap(T=>xr(T).records),y=u.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return $l({plans:m,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:s,wouldExceed:R}})}function Bl(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function $l(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))$l(r,t);return Object.freeze(e)}var Bo=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ni(e,t){if(new Set(e.fields).size!==e.fields.length)return ke("DML target fields contain duplicates.");let r=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Gl(o,null,r);let n=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(n.has(o.field))return ke(`APPLY has more than one block for table ${o.field}.`);let s=t.find(l=>l.code===o.field&&!l.inSubtable);if(!s||s.fieldType!=="SUBTABLE")return ke(`APPLY target ${o.field} is not a SUBTABLE.`);let a=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));n.set(o.field,s),i.set(o.field,a);for(let l of o.operations){if(l.kind!=="APPEND")return ke(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let d of l.fields){if(p.has(d))return ke(`APPLY APPEND specifies child ${d} more than once.`);p.add(d),Gl(d,o.field,r,a)}for(let d of l.values)if(d.length!==l.fields.length)return ke(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:n,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:r}}function bf(e,t,r=ni(e,t),n){let i=new Map(t.map(a=>[a.code,a.fieldType])),o=Hn(e,i).flatMap(a=>a.records);if(n&&n.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let s=(e.applyBlocks??[]).map(a=>{let l=r.childrenByTable.get(a.field),p=a.operations.flatMap(d=>_o(d,l,a.field));return{table:a.field,rows:p,addedRows:p.length}});return o.map((a,l)=>{let p={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Bo.has(c.fieldType)||(p[c.code]=a[c.code]??{value:vo(c)});let d={...a};for(let c of s){let u=c.rows.map(f=>({value:f.value}));p[c.table]={value:u},d[c.table]={value:u}}return{parentRowNumber:n?.[l]??l+1,tables:s,postImage:p,record:d}})}async function $r(e){let{statement:t,fieldInfos:r,dmlMaxRows:n,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Vl(n,"dmlMaxRows"),Vl(i,"dmlMaxSubtableRows");let s=e.metadata??ni(t,r),a=bf(t,r,s,e.parentRowNumbers),l=r.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Bo.has(A.fieldType)),p=De(l,t.fields),d=a.some(A=>wt(A.postImage,p));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=d?await e.loadNumberPrecision():void 0,u=a.map(A=>bt(A.postImage,p,c,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=u.flatMap(N=>N.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:A})}`)}let f=a.length,E=a.reduce((A,N)=>A+N.tables.reduce((w,L)=>w+L.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=a.map((A,N)=>{let w=u[N].normalizedRecord,L={};for(let I of t.fields)L[I]=w[I];for(let I of A.tables){let D=w[I.table]?.value;L[I.table]={value:I.rows.map((P,h)=>({value:Object.fromEntries(Object.keys(P.value).map(C=>[C,D[h]?.value?.[C]??P.value[C]]))}))}}return{...A,postImage:w,record:L}}),g=m.map(A=>A.record),y=[];for(let A=0;A<g.length;A+=100)y.push({app:t.appId,records:g.slice(A,A+100)});let T=u.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return Wl({applyBlocks:t.applyBlocks??[],candidates:m,records:g,batches:y,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:n,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function Gl(e,t,r,n){if(e.startsWith("_")||e.startsWith("$"))return ke(`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?ke(`APPLY child ${e} does not belong to subtable ${t}.`):ke(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Bo.has(i.fieldType))return ke(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Vl(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ke(e){throw new Error(`ArgumentError: ${e}`)}function Wl(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))Wl(r,t);return Object.freeze(e)}async function Yl(e){let{statement:t,matches:r,fieldInfos:n,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:s=1}=e;Hl(i,"dmlMaxRows"),Hl(o,"dmlMaxSubtableRows"),Of(t,r);let a=r.filter(g=>g.targetId===void 0),l=r.filter(g=>g.targetId!==void 0),p=If(t,a.map(g=>g.sourceRowIndex)),d=await $r({statement:p,fieldInfos:n,metadata:ni(p,n),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:s,parentRowNumbers:a.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let g of l){let y=g.targetId;u.has(y)&&$o(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),u.add(y),g.snapshot||$o(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let T=Number(g.snapshot.$id?.value);T!==y&&$o(`UPSERT APPLY snapshot $id ${T} does not match target $id ${y}.`);let A=Pf(t,g.sourceRowIndex,y),N=A.applyBlocks?.length?qe(A,n):Cf(n);c.push(await ri({statement:A,snapshots:[g.snapshot],fieldInfos:n,metadata:N,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:s,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=Nf(c,i,o),E=d.guards.parentRows+f.guards.parentRows,R=d.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let g=[...d.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}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 Go({create:d,update:f,createBatches:d.batches,updateBatches:Lf(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:d.guards,update:f.guards}})}function If(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(r=>e.values[r]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function Pf(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 Cf(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function Nf(e,t,r){let n=e.flatMap(a=>a.plans),i=e.flatMap(a=>a.records),o=e.flatMap(a=>a.validations),s=n.reduce((a,l)=>a+l.changedSubtableRows,0);return Go({plans:n,records:i,validations:o,guards:{revisionRequired:!0,parentRows:n.length,dmlMaxRows:t,subtableRows:s,dmlMaxSubtableRows:r,wouldExceed:n.length>t||s>r}})}function Of(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 Lf(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 Hl(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function $o(e){throw new Error(`ArgumentError: ${e}`)}function Go(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))Go(r,t);return Object.freeze(e)}function Vr(e){return ar("UPDATE",[zl(e)])}function Vo(e){return ar("INSERT",[ql(e)])}function Wo(e){return ar("UPSERT",[ql(e.create),zl(e.update)])}function be(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,s=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,a=r===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...s!==void 0?{successfulChunks:s}:{},...a&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...a&&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 oi(e,t,r){return e.type==="UPDATE"?ar("UPDATE",[ii("update",e.applyBlocks??[],null,!0,t,r)]):e.type==="INSERT"?ar("INSERT",[ii("insert",e.applyBlocks??[],e.values.length,!1,t,r)]):ar("UPSERT",[ii("insert",e.onInsertApplyBlocks??[],null,!1,t,r),ii("update",e.onUpdateApplyBlocks??[],null,!0,t,r)])}function ar(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function ql(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 zl(e){let t=new Map,r=0;for(let n of e.plans){let i=!1;for(let o of n.tables){let s=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:jl(s?.operations,o.operations.map(a=>({...a,count:a.kind==="PATCH"?a.changedRows:a.kind==="APPEND"?a.addedRows:a.removedRows}))),changedCount:(s?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of n.multiValues){let s=t.get(o.field),a={parentId:n.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:jl(s?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(s?.changedCount??0)+o.changedValues,postImages:[...s?.postImages??[],a]})}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 jl(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:Gr(i.count,r.count),...r.matchedRows!==void 0?{matchedRows:Gr(i.matchedRows,r.matchedRows)}:{},...r.changedRows!==void 0?{changedRows:Gr(i.changedRows,r.changedRows)}:{},...r.addedRows!==void 0?{addedRows:Gr(i.addedRows,r.addedRows)}:{},...r.removedRows!==void 0?{removedRows:Gr(i.removedRows,r.removedRows)}:{}}}):t.map(r=>({...r}))}function Gr(e,t){return e==null||t===null?null:e+t}function ii(e,t,r,n,i,o){let s=t.map(d=>{let c=d.operations.map(f=>_f(f,r)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:c,changedCount:u}}),a=s.filter(d=>d.targetKind==="SUBTABLE"),l=a.every(d=>d.changedCount!==null)?a.reduce((d,c)=>d+c.changedCount,0):null,p=r===null||l===null?null:r>i||l>o;return{branch:e,parentRows:r,targets:s,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 _f(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 ze=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 Xl(e,t,r){Ht("phase10c");let n=Ul(e),i=0,o=0;for(let s=0;s<n.length;s+=1){let a=n[s];try{await t.putRecords(a)}catch(l){throw new ze({successfulChunks:i,successfulParents:o,failedChunkIndex:s,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:be(r,{successfulChunks:i,successfulParents:o,failedChunkIndex:s,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=a.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Jl(e,t,r){Ht("phase13c");let n=[],i=0,o=0;for(let s=0;s<e.batches.length;s+=1){let a=e.batches[s];try{let l=await t.postRecords({app:a.app,records:[...a.records]});n.push(l.ids)}catch(l){throw new ze({successfulChunks:i,successfulParents:o,failedChunkIndex:s,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:be(r,{successfulChunks:i,successfulParents:o,failedChunkIndex:s,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=a.records.length}return{type:"INSERT",createdIds:n,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Ql(e,t,r){Ht("phase14c");let n=[],i=0,o=0,s=0,a=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let d=await t.postRecords({app:p.app,records:[...p.records]});n.push(d.ids)}catch(d){throw new ze({successfulChunks:i+o,successfulParents:s+a,successfulInserts:s,successfulUpdates:a,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:be(r,{successfulChunks:i+o,successfulParents:s+a,successfulInserts:s,successfulUpdates:a,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,s+=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(d){throw new ze({successfulChunks:i+o,successfulParents:s+a,successfulInserts:s,successfulUpdates:a,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:be(r,{successfulChunks:i+o,successfulParents:s+a,successfulInserts:s,successfulUpdates:a,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,a+=p.records.length}return{type:"UPSERT",createdIds:n,insertedCount:s,updatedCount:a,successfulChunks:i+o,successfulParents:s+a,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function Zl(e,t){let r=ne(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 Ue(e){if(e===null)return!1;switch(e.type){case"BINARY":return si(e.left);case"NULL_CHECK":return si(e.field);case"LOGICAL":return Ue(e.left)||Ue(e.right);case"NOT":case"GROUP":return Ue(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function si(e){if(Array.isArray(e))return e.some(si);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(si)}async function Ce(e,t,r,n,i){let o=await Re(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 ai(e,t,r,n){let{records:i,metrics:o}=await Ce(e,t,r,["$id"],n);return{ids:na(i),metrics:o}}function Yo(e,t){let r=io(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 vf(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Df(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function Wr(e){let{stmt:t}=e,r=[],n=t.columns.flatMap(s=>s.type==="WINDOW_COL"?s.orderBy:[]),i=[...t.orderBy,...n];for(let s of i){if(s.key.type!=="FIELD_NAME")continue;let a=vf(s,e.orderSemantics);if(!a){r.push("ORDER_KEY_UNRESOLVED");continue}a.fieldType==="KSQL_AMBIGUOUS"?r.push("ORDER_KEY_AMBIGUOUS"):a.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 s=r.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${s}).`)}return t.orderBy.length>0&&n.length===0&&t.orderBy.every(s=>s.key.type==="FIELD_NAME"&&s.key.name==="$id"&&!Df(t,s.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 kf=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 Uf(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function Hr(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("KORDER_WHERE_NOT_EXACT"),e.hasKlike&&r.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&r.push("KORDER_KEY_REQUIRED");for(let a of t.orderBy){if(a.key.type!=="FIELD_NAME"){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${a.key.type})`);continue}let l=a.key.name,p=e.orderSemantics.get(l);if(!p){r.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(Uf(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}kf.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 s=t.limit<=500&&n<=1e4&&t.limit<=e.maxRecords;if(!s&&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:s?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var li=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"}},ui=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}},ci=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 eu(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 s=await t.nextPage();for(let a of s.records)if(n<e.offset)n+=1;else if(r.length<e.limit)r.push(a);else break;if(!s.next)break}}catch(s){throw i=s,s}finally{try{await t.close()}catch(s){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:s,configurable:!0}):o=new ci(s).message}}return{records:r,cleanupWarning:o}}function jo(e){let t=[];e.where&&t.push(W(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(" ")}function Xe(e,t){let r={};for(let[n,i]of Object.entries(e)){let o=i.value,s=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(r[`${t}.${n}`]=s),r[n]=s}return r}function Mf(e,t,r,n={}){let{on:i,type:o}=r,s=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,a=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(tu(e,s,n.leftColumns),tu(t,a,n.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[s]??"",m=c.get(R);m?m.push(E):c.set(R,[E])}let u={};for(let E of n.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[a]??"",m=c.get(R)??[];if(m.length>0)for(let g of m)f.push({...g,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[a]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let p=[],d={};for(let c of n.rightColumns??Object.keys(t[0]??{}))d[c]="";for(let c of e){let u=c[s]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)p.push({...c,...E});else o==="LEFT"&&p.push({...c,...d})}return p}function tu(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 xf(e,t,r,n,i){return t===null?e:e.filter(o=>q(t,o,r,n,i))}function lu(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Yr(t.expr)||t.type==="SCALAR_VALUE_COL"&&ct(t.expr))}function Ff(e,t,r,n){let i=new Map;for(let s of e){let a=t.map(p=>Bf(p,s)).join("\0"),l=i.get(a);l?l.push(s):i.set(a,[s])}i.size===0&&t.length===0&&lu(r)&&i.set("",[]);let o=[];for(let s of i.values()){let a={...s[0]};for(let l of t)l.type==="ARITH_KEY"?a[es(l.expr)]=String(ee(l.expr,s[0])):l.type==="FUNC_KEY"&&(a[pt(l.expr)]=te(l.expr,s[0]));uu(a,s,r,n),o.push(a)}return o}function Kf(e,t,r,n,i={}){let o=[],s=0,a=()=>{if(s++,i.maxGeneratedRows!==void 0&&s>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${s} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let p={children:new Map},d=[];for(let u of e){let f=p;for(let E of l.items){let R=ru(E,u),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(a(),f.rows=[],d.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(a(),p.rows=[],d.push(p.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of d){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,ru(R,u[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}uu(f,u,r,n),Va(f,c),o.push(f)}}return o}function ru(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function uu(e,t,r,n){for(let i of r)if(i.type==="AGGREGATE"){let o=Se(i.func,i.distinct,i.arg),s=String(Xo(i.func,i.distinct,i.arg,i.separator,t,n));e[i.alias??o]=s,i.alias&&(e[o]=s)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??lr(i.expr);e[o]=String(pi(i.expr,t,n))}else if(i.type==="STRFUNC_COL"&&Yr(i.expr)){let o=i.alias??pt(i.expr),s=ts(i.expr,t,n);e[o]=te(s,e)}else if(i.type==="SCALAR_VALUE_COL"&&ct(i.expr)){let o=i.alias??Me(i.expr),s=di(i.expr,t,n);e[o]=String(se(s,e))}}function Bf(e,t){return e.type==="FIELD_NAME"?t[e.name]??"":e.type==="FUNC_KEY"?te(e.expr,t):String(ee(e.expr,t))}function Xo(e,t,r,n,i,o){if(r.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=[];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=ee(r,f);if(isNaN(R))continue;E=String(R)}else{let R=lt(r,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}s.push(E)}let a=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=a?s.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?a?[...new Set(l)]:[...new Set(s)]:a?l:s;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(n??",");let d=e==="MIN"||e==="MAX"||e==="MODE"?cu(r,o):void 0,c=typeof d=="string"?x(d):d??(r.type==="FIELD_REF"||r.type==="FIELD"||r.type==="STRING"||r.type==="CONCAT_OP"||r.type==="CASE_WHEN"?x("string"):x("number"));if(e==="MODE"){if(s.length===0)return"";let f=new Map;for(let m of s)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,g]of f){if(g>R){E=m,R=g;continue}if(g!==R)continue;let y=yt(m,E,c);(y<0||y===0&&at(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=yt(R,E,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let u=a?p:p.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,m=0,g=0;for(let T of u){let A=T-E;R++;let N=A-m;m+=N/R,g+=N*(A-m)}let y=Math.max(0,g/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function $f(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function pi(e,t,r){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Xo(e.func,e.distinct,e.arg,e.separator,t,r));let n=pi(e.left,t,r),i=pi(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 lr(e){return Ar(e)}function cu(e,t){if(e.type==="FIELD_REF")return t?.($f(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=>cu(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 Gf(e,t,r,n){return t===null?e:e.filter(i=>q(t,i,r,void 0,n))}function Vf(e,t,r,n,i){if(e.length===0)return e;let o=Wf(e,t,{scalarCache:r,resolveFieldType:n,resolveFieldSemantics:i}),s=new Set;return e.filter(a=>{let l=o(a);return s.has(l)?!1:(s.add(l),!0)})}function Wf(e,t,r){let n=[];if(t.some(s=>s.type==="WILDCARD")){let s=new Set;for(let a of e)for(let l of Object.keys(a))s.add(l);n=[...s].sort()}let i=[];if(t.some(s=>s.type==="PARENT_WILDCARD")){let s=new Set;for(let a of e)for(let l of Object.keys(a))l.startsWith("_p.")&&s.add(l);i=[...s].sort()}let o={...r,wildcardKeys:n,parentWildcardKeys:i};return s=>JSON.stringify(zf(t,s,o))}function Jo(e,t,r,n,i,o){return t.length===0?e:pu(e,t,r,n,i,o).rows.map(s=>s.row)}function pu(e,t,r,n,i,o){let s=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:x("number")};if(p.type==="FUNC_KEY")return{semantics:x(du.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:x("number")};let d=i?.get(p.name);if(d)return{semantics:d};let c=r?.get(p.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:x(n?.get(p.name)??"string")}}),a=e.map(p=>({row:p,keys:t.map(({key:d},c)=>({s:jf(d,p,o)}))})),l=(p,d)=>Hf(p,d,t,s);return a.sort(l),{rows:a,compare:l}}function Hf(e,t,r,n){for(let i=0;i<r.length;i++){let o=Yf(e.keys[i],t.keys[i],n[i]);if(o!==0)return r[i].direction==="ASC"?o:-o}return 0}function Yf(e,t,r){return yt(e.s,t.s,r.semantics)}var du=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function jf(e,t,r){switch(e.type){case"FIELD_NAME":return r?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ee(e.expr,t));case"FUNC_KEY":return te(e.expr,t);case"GROUPING_KEY":return rr(e.ref,t)}}function Qo(e,t,r,n){let i=new Map;for(let[o,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let a=s.alias;switch(s.type){case"FIELD":i.set(a,l=>Ye(l,s.field));break;case"LITERAL_COL":i.set(a,()=>s.value);break;case"AGGREGATE":{let l=Se(s.func,s.distinct,s.arg);i.set(a,p=>p[a]??p[l]??"0");break}case"ARITH_AGG_COL":{let l=lr(s.expr);i.set(a,p=>p[a]??p[l]??"0");break}case"WINDOW_COL":i.set(a,l=>l[a]??"");break;case"ARITH_COL":i.set(a,l=>String(ee(s.expr,l)));break;case"STRFUNC_COL":{let l=pt(s.expr);i.set(a,p=>Yr(s.expr)?p[a]??p[l]??te(s.expr,p,r,n):te(s.expr,p,r,n));break}case"CASE_COL":i.set(a,l=>we(s.expr,l,r,n));break;case"SCALAR_VALUE_COL":{let l=Me(s.expr);i.set(a,p=>ct(s.expr)?p[a]??p[l]??"":String(se(s.expr,p,r,n)));break}case"SCALAR_SUBQUERY_COL":i.set(a,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(a,l=>rr(s.ref,l));break;case"VARIABLE_COL":break}}return(o,s)=>i.get(o)?.(s)}function Zo(e,t,r,n,i){let o=t.filter(s=>s.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let s of o){let a=new Map;for(let l of e){let p=JSON.stringify(s.partitionBy.map(c=>qf(l,c))),d=a.get(p);d?d.push(l):a.set(p,[l])}for(let l of a.values()){let p=pu(l,s.orderBy,r,n,i),d=p.rows,c=1,u=1;for(let f=0;f<d.length;f++){f>0&&p.compare(d[f-1],d[f])!==0&&(c=f+1,u++);let E=s.func==="ROW_NUMBER"?f+1:s.func==="RANK"?c:u;d[f].row[s.alias]=String(E)}}}return e}function qf(e,t){let r=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ye(e,r)}function fi(e,t,r){let n=r??0;return t===null?e.slice(n):e.slice(n,n+t)}function zo(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 Ye(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??lr(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ee(e.expr,t));case"CASE_COL":return we(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics);case"GROUPING_COL":return rr(e.ref,t);case"STRFUNC_COL":{let i=pt(e.expr);return Yr(e.expr)?t[e.alias??i]??t[i]??te(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics):te(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=Me(e.expr);return ct(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 zf(e,t,r={}){return e.map((n,i)=>{let o=zo(n,t,i,r);return typeof o=="string"?o:o.entries.map(([,s])=>s)})}function Ei(e,t,r,n,i,o,s){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=su(iu(E),s),m=zo(t[0],E,0,{wildcardKeys:Object.keys(R)}),g={};if(typeof m!="string")for(let[y,T]of m.entries)T!==null&&(g[y]=T);return g}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let a=Qf(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),p=l?null:Xf(t,a),d=p??[];return l&&e.length===0?{rows:[],columns:Jf(t,a)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:r,resolveFieldType:n,resolveFieldSemantics:o,wildcardKeys:Object.keys(su(iu(u),s)),parentWildcardKeys:Object.keys(u).filter(m=>m.startsWith("_p.")).sort()};for(let[m,g]of t.entries()){let y=zo(g,u,m,R);switch(g.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof y!="string")for(let[T,A]of y.entries)A!==null&&(E[T]=A);break;case"PARENT_WILDCARD":{if(typeof y!="string")for(let[T,A]of y.entries)A!==null&&(E[T]=A),f===0&&d.push(T);break}case"FIELD":{let T=p?.[m]??g.alias??a.get(m)??g.field;E[T]=y,p===null&&f===0&&d.push(T);break}case"LITERAL_COL":{let T=p?.[m]??g.alias??`'${g.value}'`;E[T]=y,p===null&&f===0&&d.push(T);break}case"AGGREGATE":{let T=Se(g.func,g.distinct,g.arg),A=p?.[m]??g.alias??T;E[A]=y,p===null&&f===0&&d.push(A);break}case"ARITH_AGG_COL":{let T=p?.[m]??g.alias??lr(g.expr);E[T]=y,p===null&&f===0&&d.push(T);break}case"ARITH_COL":{let T=p?.[m]??g.alias??es(g.expr);E[T]=y,p===null&&f===0&&d.push(T);break}case"CASE_COL":{let T=p?.[m]??g.alias??"case";E[T]=y,p===null&&f===0&&d.push(T);break}case"GROUPING_COL":{let T=p?.[m]??g.alias??`GROUPING(${g.ref.field.tableAlias?`${g.ref.field.tableAlias}.`:""}${g.ref.field.field})`;E[T]=y,p===null&&f===0&&d.push(T);break}case"STRFUNC_COL":{let T=p?.[m]??g.alias??pt(g.expr);E[T]=y,p===null&&f===0&&d.push(T);break}case"SCALAR_VALUE_COL":{let T=p?.[m]??g.alias??Me(g.expr);E[T]=y,p===null&&f===0&&d.push(T);break}case"SCALAR_SUBQUERY_COL":{let T=p?.[m]??g.alias??"(subquery)";E[T]=y,p===null&&f===0&&d.push(T);break}case"WINDOW_COL":{let T=p?.[m]??g.alias;E[T]=y,p===null&&f===0&&d.push(T);break}}}return E}),columns:d}}function Xf(e,t){return e.map((r,n)=>fu(r,n,t))}function Jf(e,t){let r=[],n=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let s=fu(o,i,t);n.has(s)||(n.add(s),r.push(s))}return r}function fu(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??Se(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??lr(e.expr);case"ARITH_COL":return e.alias??es(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??pt(e.expr);case"SCALAR_VALUE_COL":return e.alias??Me(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 Qf(e){let t=new Map;for(let n of e){if(n.type!=="FIELD"||n.alias)continue;let i=nu(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=nu(i.field),s=(t.get(o)??0)>1,a=i.field.includes(".")&&!i.field.startsWith("_p.");r.set(n,s&&a?i.field:o)}return r}function nu(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function iu(e){let t={};for(let[r,n]of Object.entries(e))r.startsWith("_p.")||(t[r]=n);return t}function es(e){let t=r=>r.type==="FIELD_REF"?r.field:r.type==="NUMBER"?G(r):r.type==="STRING_FUNC"?pt(r):`(${t(r.left)}${r.op}${t(r.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function pt(e){let t=e.args.map(r=>r.type==="AGG_REF"||r.type==="AGG_ARITH"?lr(r):Me(r));return`${e.func}(${t.join(",")})`}function Me(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 pt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Me(e.left)}${e.op}${Me(e.right)}`;case"CONCAT_OP":return`${Me(e.left)}||${Me(e.right)}`}}function Zf(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:ct(e)}function ct(e){return e.type==="STRING_FUNC"?Yr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?ct(e.left)||ct(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>ou(t.result))||e.elseResult!==null&&ou(e.elseResult):!1}function ou(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:ct(e)}function Yr(e){return e.args.some(t=>Zf(t))}function eE(e,t,r){if(e.type==="AGG_REF"){let n=Xo(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=pi(e,t,r);return{type:"NUMBER",value:n,raw:String(n)}}return e.type==="STRING_FUNC"?ts(e,t,r):di(e,t,r)}function di(e,t,r){return e.type==="STRING_FUNC"?ts(e,t,r):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:di(e.left,t,r),right:di(e.right,t,r)}:e}function ts(e,t,r){return{type:"STRING_FUNC",func:e.func,args:e.args.map(n=>eE(n,t,r))}}function su(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 au(e,t){if(e!==void 0)return t?e.flatMap(r=>[`${t}.${r}`,r]):[...e]}function qo(e,t,r){if(!(e===void 0&&t===void 0&&r.length===0))return[...new Set([...e??[],...t??[],...Object.keys(r[0]??{})])]}function tE(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,x("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,x("number")):r.func==="GROUP_CONCAT"&&t.set(r.alias,x("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?t.set(r.alias,x("string")):r.type==="STRFUNC_COL"&&t.set(r.alias,x(du.has(r.expr.func)?"number":"string")));return t}function rs(e){let{stmt:t,tables:r,scalarCache:n,optionOrders:i,sortKinds:o,orderSemantics:s,fieldTypeResolver:a,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:d,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m}=e,g=tE(t.columns);for(let[L,I]of s??[])g.set(L,I);let y=[],T=t.from.alias;y=(r.get(T)??r.get(null)??[]).map(L=>Xe(L,T));let N=qo(au(E?.get(T),T),void 0,y);for(let L of t.joins){let I=L.table.alias,P=(r.get(I)??[]).map(C=>Xe(C,I)),h=qo(au(E?.get(I),I),void 0,P);y=Mf(y,P,L,{leftColumns:N,rightColumns:h}),N=qo(N,h,y)}y=xf(y,t.where,a,u,l);let w=ne(t);if(w.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");y=Kf(y,m,t.columns,c,{maxGeneratedRows:5e4})}else(w.type==="PLAIN"||lu(t.columns))&&(y=Ff(y,w.type==="PLAIN"?w.allItems:[],t.columns,c));return y=Gf(y,t.having,p,d),y=Zo(y,t.columns,i,o,g),t.distinct&&(y=Vf(y,t.columns,n,a,l)),y=Jo(y,t.orderBy,i,o,g,Qo(t.columns,n,a,l)),y=fi(y,t.limit,t.offset),Ei(y,t.columns,n,a,f,l,R)}function Eu(e,t){let r=[];for(let n of e){let i=ns(n.$id?.value),o=rE(n[t]?.value);if(o.length!==0)for(let s=0;s<o.length;s++){let a=o[s],l={_pid:{value:i},_rid:{value:a.id??""},_idx:{value:String(s)}};for(let[p,d]of Object.entries(n)){if(p===t)continue;let c=ns(d?.value);l[`_p.${p}`]={value:c}}for(let[p,d]of Object.entries(a.value??{}))l[p]={value:ns(d?.value)};r.push(l)}}return r}function rE(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function ns(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 Ru(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function mu(e,t){let r=jr(e);for(let[n,i]of Object.entries(t))r[n]=jr(i);return r}function gu(e){let t=[...e.preErrors.map(i=>is(i)),...e.postImageErrors.map(i=>is(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>is(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]=jr(e.normalizedPostImage[i])}return{errors:t,invalidRows:r.size,invalidRowNumbers:r,writeRecord:n}}function is(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 jr(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 s of e)o.push(jr(s,t));return o}let i={};t.set(r,i);for(let[o,s]of Object.entries(e))i[o]=jr(s,t);return i}var Je=["=","!=",">","<",">=","<="],nE=["=","!=","in","not in"],iE=new Map([["RECORD_NUMBER",new Set([...Je,"in","not in"])],["__ID__",new Set([...Je,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Je)],["UPDATED_TIME",new Set(Je)],["DATE",new Set(Je)],["TIME",new Set(Je)],["DATETIME",new Set(Je)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Je,"in","not in"])],["CALC",new Set([...Je,"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(nE)]]),hu=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"]),yu=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function oE(e){return iE.get(e)??new Set}function ur(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:qr(e,t)}function qr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return sE(e.op,e.left,e.right.type,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ss():aE(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ss();case"GROUP":return qr(e.expr,t);case"NOT":{let r=qr(e.expr,t);return r.capability==="SUPERSET_PREFILTER"?{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}:r}case"LOGICAL":{let r=qr(e.left,t),n=qr(e.right,t);return uE(e.op,r,n)}}}function sE(e,t,r,n){if(t.type!=="FIELD")return ss();let i=n(t);if(!i)return Ri("WHERE_FIELD_UNRESOLVED",t.field,void 0,os(e));if(!lE(i.fieldType,e))return Ri("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,os(e));let o=os(e),s=oE(i.fieldType),a=r==="STRING"||r==="NUMBER"||r==="IN_LIST"||r==="KINTONE_FUNC",l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return a&&l&&s.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 aE(e,t,r){let n=r(e);return n?!hu.has(n.fieldType)&&!yu.has(n.fieldType)?Ri("WHERE_OPERATOR_UNSUPPORTED",e.field,n.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:n.fieldType,operator:t}]}:Ri("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function lE(e,t){return hu.has(e)?!0:yu.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function os(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 uE(e,t,r){let n=[...t.reasons,...r.reasons];return t.capability==="UNSUPPORTED"||r.capability==="UNSUPPORTED"?{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")?{capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...n]}:{capability:"LOCAL_ONLY",reasons:n}}function ss(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Ri(e,t,r,n){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:r,operator:n}]}}var M=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function Au(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 mi(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 cE(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 pE(e){let t=[],r=[],n="",i=!1,o=!1,s=0,a=()=>{r.push(n),n="",o=!1},l=()=>{a(),t.push(r),r=[]};for(;s<e.length;){let p=e[s];if(i){if(p==='"'){if(e[s+1]==='"'){n+='"',s+=2;continue}i=!1,o=!0,s++;continue}n+=p,s++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
4
- `)throw new M(`unexpected character after closing quote at offset ${s}.`);if(p==='"'){if(n.length!==0)throw new M(`quote in unquoted cell at offset ${s}.`);i=!0,s++;continue}if(p===","){a(),s++;continue}if(p==="\r"||p===`
5
- `){p==="\r"&&e[s+1]===`
6
- `&&s++,l(),s++;continue}n+=p,s++}if(i)throw new M("unterminated quoted cell.");return(n.length>0||r.length>0||o)&&l(),t}function dE(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 gi(e,t){let r=pE(cE(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,s)=>`c${s+1}`)),dE(n),i.length===0)throw new M("CSV has no data rows.");return i.forEach((o,s)=>{if(o.length!==n.length)throw new M(`CSV row ${s+(t.hasHeader?2:1)} has ${o.length} cells; expected ${n.length}.`)}),{columns:n,rows:i}}var fE=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),EE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),zr=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 Su(e,t,r){if(!fE.has(t??""))return e;if(e==="")return[];let n=e.split(/\r\n|\n/);if(n.some(i=>i===""))throw new zr;return EE.has(t??"")?n.map(i=>({code:i})):n}function Qe(e,t,r,n){throw new M(`JSON ${e} (offset=${t}, line=${r}, column=${n}).`)}function Tu(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new M("JSON source is not valid UTF-8.")}}function wu(e){let t=[],r=0,n=1,i=1,o=()=>{let a=e[r++];return a===`
7
- `?(n++,i=1):i++,a},s=()=>({offset:r,line:n,column:i});for(;r<e.length;){let a=e[r];if(a===" "||a===" "||a==="\r"||a===`
8
- `){o();continue}let l=s();if("{}[]:,".includes(a)){o(),t.push({kind:"punct",value:a,...l});continue}if(a==='"'){o();let u="",f=!1;for(;r<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Qe("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}r>=e.length&&Qe("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
- `,r:"\r",t:" "};if(R in m){u+=m[R];continue}R!=="u"&&Qe(`has invalid escape \\${R}`,r-2,n,Math.max(1,i-2));let g=e.slice(r,r+4);/^[0-9a-fA-F]{4}$/.test(g)||Qe("has invalid unicode escape",r,n,i);for(let T=0;T<4;T++)o();let y=Number.parseInt(g,16);if(y>=55296&&y<=56319){(e.slice(r,r+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(r+2,r+6)))&&Qe("has an unpaired high surrogate",r,n,i),o(),o();let T=e.slice(r,r+4);for(let N=0;N<4;N++)o();let A=Number.parseInt(T,16);(A<56320||A>57343)&&Qe("has an invalid surrogate pair",r-4,n,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(y-55296<<10)+A-56320)}else y>=56320&&y<=57343?Qe("has an unpaired low surrogate",r-4,n,Math.max(1,i-4)):u+=String.fromCharCode(y)}f||Qe("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let p=e.slice(r),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(d){for(let u=0;u<d.length;u++)o();t.push({kind:"number",lexeme:d,...l});continue}let c=/^(true|false|null)/.exec(p)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Qe(`has an unexpected token ${JSON.stringify(a)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:r,line:n,column:i}),t}function hi(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function yi(e){if(e.byteLength===0)throw new M("JSON source is empty.");let t=wu(Tu(e)),r=0,n=(p,d=t[r])=>{throw new M(`JSON ${p} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(p,d)=>p.kind==="punct"&&p.value===d,o=p=>{let d=t[r];(d.kind!=="punct"||d.value!==p)&&n(`expected ${p}; found ${hi(d)}`,d),r++},s=()=>{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 d=new Map;if(i(t[r],"}"))return r++,d;for(;;){let c=t[r++];if(c.kind!=="string")return n(`object key must be a string; found ${hi(c)}`,c);let u=c.value;d.has(u)&&n(`duplicate key ${JSON.stringify(u)}`,c),o(":"),d.set(u,s());let f=t[r];if(i(f,"}")){r++;break}o(",")}return d}if(p.kind==="punct"&&p.value==="["){let d=[];if(i(t[r],"]"))return r++,d;for(;;){d.push(s());let c=t[r];if(i(c,"]")){r++;break}o(",")}return d}return n(`expected a value; found ${hi(p)}`,p)},a=s();t[r].kind!=="eof"&&n(`has trailing data; found ${hi(t[r])}`);let l=a instanceof Map?[a]:Array.isArray(a)?a: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,d)=>{if(!(p instanceof Map))throw new M(`JSON record ${d+1} must be an object.`)}),l}var RE=new Set(["CHECK_BOX","MULTI_SELECT"]),bu=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function xe(e,t,r){throw new M(`JSON field validation failed (row=${e}, field=${t}): ${r}`)}function mE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function gE(e,t,r){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&xe(r,t.code,"boolean is not accepted."),mE(e)){t.fieldType==="NUMBER"&&xe(r,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&xe(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)||xe(r,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&xe(r,t.code,"object is not accepted for a flat field."),Array.isArray(e)||xe(r,t.code,"unsupported value type."),!RE.has(t.fieldType)&&!bu.has(t.fieldType)&&xe(r,t.code,"array is accepted only for multi-value fields.");let n=e.map(i=>(typeof i!="string"&&xe(r,t.code,"array elements must be strings."),i));return new Set(n).size!==n.length&&xe(r,t.code,"array elements must not contain duplicates."),bu.has(t.fieldType)?JSON.stringify(n.map(i=>({code:i}))):JSON.stringify(n)}function as(e,t,r,n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let i=yi(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 s=[],a=[];return i.forEach((l,p)=>{for(let u of l.keys())o.has(u)||xe(p+1,u,"unknown key (not declared in INTO).");let d={},c=new Set;for(let u of r)l.has(u.code)&&(c.add(u.code),d[u.code]=gE(l.get(u.code),u,p+1));s.push(d),a.push(c)}),{rows:s,columns:r.map(l=>l.code),columnMeta:new Map(r.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:a}}function ls(e,t,r,n,i,o){let s=gi(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>r)throw new M(`source rows (${s.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(s.columns.map((g,y)=>[g,y]));for(let g of n)if(!l.has(g))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let p=new Map(i.map(g=>[g.code,g])),d=new Set(n);if(o&&d.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 c=[],u=[],f=g=>s.rows.filter(y=>y[g]!=="").length,E=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,y]of s.columns.entries()){if(d.has(y)||y===o)continue;let T=p.get(y);if(T)c.push({column:y,reason:E(T),nonEmptyCells:f(g)});else if(e.ignoreUnknownColumns)u.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(g)});else throw new M(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let g of n){let y=p.get(g);if(!y)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${y.fieldType}).`)}let R=[];return{rows:s.rows.map(g=>{let y=[],T={};for(let A of n){let N=g[l.get(A)];try{T[A]=Su(N,p.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof zr))throw w;T[A]=N,y.push({field:A,code:w.code,message:w.message})}}return R.push(y),T}),columns:[...n],columnMeta:new Map(n.map(g=>[g,{fieldType:p.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:s.rows.map(g=>g[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...n],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:s.rows.map(l=>Object.fromEntries(s.columns.map((p,d)=>[p,l[d]]))),columns:s.columns,columnMeta:new Map(s.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Xr=(e,t,r)=>{throw new M(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${r}`)};function Iu(e,t,r,n,i=n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let o=yi(t.bytes);if(o.length>n)throw new M(`source parent rows (${o.length}) exceed maxRecords (${n}).`);let s=new Map(r.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(s.size!==r.length)throw new M("IMPORT targets contain duplicates.");let a=0;return{records:o.map((l,p)=>{let d=p+1;for(let E of l.keys())s.has(E)||Xr(d,E,"unknown key (not declared in INTO).");let c=new Map,u=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&&Xr(d,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Xr(d,R,"subtable value must be an array."),f.add(R);let g=new Set(E.children),y=m.map((T,A)=>{T instanceof Map||Xr(d,R,`childRow=${A+1} must be an object.`);let N=T;for(let w of N.keys())g.has(w)||Xr(d,w,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(a++,a>i)throw new M(`source child rows (${a}) exceed limit (${i}).`);return{childRowNumber:A+1,values:N}});u.set(R,y)}return{rowNumber:d,top:c,subtables:u,replacementTables:f}})}}function Pu(e,t,r,n,i,o){let s=gi(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new M('ERR_IMPORT_MARKER: first CSV header must be "*".');let a=new Map(s.columns.map((u,f)=>[u,f]));if(o&&!a.has(o))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=r.filter(u=>u.kind==="FIELD"),p=r.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!a.has(u.field))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of p){if(!u.rowIdSourceHeader||!a.has(u.rowIdSourceHeader))throw new M(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!a.has(f))throw new M(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let d=[],c;if(s.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new M(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(d.length>=i)throw new M(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:d.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,u[a.get(m.field)]])),subtables:new Map(p.map(m=>[m.subtableCode,[]])),replacementTables:new Set(n),...o?{recordNumberSourceValue:u[a.get(o)]}:{}},d.push(c)}else if(c){for(let m of l){let g=u[a.get(m.field)];if(g!==""&&g!==c.top.get(m.field))throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=u[a.get(o)];if(m!==""&&m!==c.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 g=u[a.get(m.rowIdSourceHeader)],y=new Map(m.children.map(A=>[A,u[a.get(A)]]));if(g===""&&[...y.values()].every(A=>A===""))continue;let T=c.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:E,...g?{rowId:g}:{},values:y})}}),d.length===0)throw new M("CSV has no parent rows.");return{records:d}}var hE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),yE=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ps(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Lu(e,t,r,n,i){let o=new Map(r.filter(u=>!u.inSubtable).map(u=>[u.code,u])),s=new Map;for(let u of r)if(u.inSubtable&&u.subtableCode){let f=s.get(u.subtableCode);f||s.set(u.subtableCode,f=new Map),f.set(u.code,u)}let a=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of a)Cu(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=s.get(u.subtableCode)??new Map;for(let R of u.children)Cu(R,E.get(R),u.subtableCode)}let p=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(u=>AE(u,a,l,o,s,n,i,p)),c=d.flatMap(u=>[...u.errors]);return{parents:d,errors:c,invalidParentRows:new Set(d.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:p}}function AE(e,t,r,n,i,o,s,a){let l=[],p={};for(let u of t)e.top.has(u.field)&&cs(e.top.get(u.field),n.get(u.field),o,p,u.field,l,us(e,s,u.field));let d={};if(s==="INSERT")for(let u of n.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||Nu(u,o,d,l,us(e,s,u.code));let c=new Map;for(let u of r){if(!e.subtables.has(u.subtableCode))continue;let f=a.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let m=l.length,g={},y=i.get(u.subtableCode);for(let T of u.children){let A=y.get(T),N=us(e,s,T,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(T)?cs(R.values.get(T),A,o,g,T,l,N):Nu(A,o,g,l,N)}l.length===m?(f.validChildRows++,E.push(g)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:c,replacementTables:e.replacementTables,errors:l}}function Cu(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&&yE.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${r?`child ${r}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Nu(e,t,r,n,i){let o=Tt(e.defaultValue)?"":e.defaultValue;cs(o,e,t,r,e.code,n,i,!Tt(e.defaultValue))}function cs(e,t,r,n,i,o,s,a=!1){let l=SE(e),p=he(l,t,r);p.ok?n[i]={value:TE(l,t)?l:p.value}:o.push({...s,code:p.code,message:a?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function SE(e){return Ou(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Ou(t)?t.lexeme:t):e}function Ou(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function TE(e,t){return hE.has(t.fieldType)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)}function us(e,t,r,n,i,o){let s=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:r,...n?{subtable:n}:{},...i==null?{}:{subrow:i},...s==null?{}:{sourceRow:s},sourceValues:n?e.subtables.get(n)?.[i-1]?.values??new Map:e.top}}var ds=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function fs(e,t,r=1){return e.map(n=>{let i={};for(let o of t)i[o]=n.sourceValues.get(o)==null?"":wE(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 wE(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 Es(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(s=>({...r==="PRESERVE"&&s.rowId?{id:s.rowId}:{},value:Object.fromEntries([...s.values].map(([a,l])=>[a,{value:l}]))}))};return n}function _u(e,t){return Es(e,t,"DROP")}function vu(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 Du(e,t,r){return e.map((n,i)=>{let o=t[i],s=o===void 0?void 0:r.get(o);if(o!==void 0&&!s)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let a=[...n.subtables].map(([l,p])=>{let d=s?.record[l]?.value,c=Array.isArray(d)?d.length:0;return{table:l,existingRows:c,inputRows:p.length,addRows:p.length,deleteRows:c}});return{parentRow:n.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:s?.revision},top:n.top,subtables:n.subtables,tables:a}})}function bE(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function ku(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 s=`${n}\0${o.rowId}`;if(t.has(s))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${n}`);t.set(s,r.rowNumber)}}function Uu(e,t,r,n,i){return t.map((o,s)=>{let a=e[s],l=r[s],p=l===void 0?void 0:n.get(l),d=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let c=new Map,u=[];for(let f of o.replacementTables){let E=bE(p.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),m=a.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,T=0,A=0,N=m.map((w,L)=>{let I=g[L]??{};return w.rowId&&R.has(w.rowId)?(y++,{rowId:w.rowId,record:I}):(w.rowId&&((i.get(w.rowId)??[]).some(P=>P.parentId!==l||P.table!==f)&&d.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}),A++),T++,{record:I})});c.set(f,N),u.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:y,addRows:T,deleteRows:E.length-y,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:d.length===0,top:o.top,subtables:c,tables:u,errors:d}})}var Rs="#__import_source";function Mu(e){return{...e,from:{appId:0,alias:null,cteName:Rs}}}function IE(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function ms(e,t){let r=e.map(IE),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 PE="\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",fr=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"}},Be=new WeakMap,Rr=new WeakMap,ki=new WeakMap,xu=new WeakMap,CE=1;function NE(e,t){if(t)return t;let r=xu.get(e);return r||(r=`client:${CE++}`,xu.set(e,r)),r}async function Is(e,t,r={}){let n=Date.now(),i=NE(t,r.cacheContext),o=pm(e,r.enableImport===!0),s=OE(),a=LE(t,s),l={aborted:!1},p=_E(a,l,!vE(o)),d=await kE(o,p,r,i);return s.elapsedMs=Date.now()-n,{...DE(d,l),metrics:s}}function OE(){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 LE(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(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}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 s=await n.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||o(),s},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await n.close(),o()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},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))}}function _E(e,t,r){return{...e,getRecords:async n=>{let i=await e.getRecords(n);if(i.searchAborted&&(t.aborted=!0,r))throw new fr;return i}}}function vE(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function DE(e,t){if(!t.aborted||e.type!=="SELECT")return e;let r=new Set(e.warnings??[]);return r.add(PE),{...e,warnings:[...r]}}async function kE(e,t,r,n){let i=gs(e);if(i!==null&&!VR(e))throw new Error(`ParseError: variable @${i} is not defined in a batch.`);if(Cn("phase15b",e),ba("phase15b",e),tr(e),e.type!=="EXPLAIN"&&await GE(e,t,n),e.type==="IMPORT")return FR(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 Ju(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 yc(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 ME(e,t,r,n);case"SELECT":return Et(e,t,r,n);case"UNION":return pc(e,t,r,n);case"WITH":return sR(e,t,r,n);case"INSERT":return MR(e,t,r,n);case"INSERT_SELECT":return wc(e,t,r,n);case"UPSERT":return rm(e,t,r,n);case"UPSERT_SELECT":return Cc(e,t,r,n);case"UPDATE":return Ju(e,t,r,n);case"DELETE":return tm(e,t,r,n);case"REORDER":return lm(e,t,r,n);case"SHOW_APPS":return Nc(t);case"DESCRIBE":return Oc(e,t,n);case"EXPLAIN":return Em(e,t,n,r.maxRecords??1e4,r.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Pe(r.dmlMaxRows,"dmlMaxRows",rt):rt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie):Ie);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 KE(e,t,r,n)}}var Ps=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Cs=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ns(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 s=o;s.type==="FIELD"&&typeof s.field=="string"&&n(s.field),s.type==="FIELD_REF"&&typeof s.field=="string"&&n(s.field),Object.values(s).forEach(i)};return i(e),t}function UE(e=!1){let t=e?Cs:Ps;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:x(r==="$id"||r==="$err_count"?"number":"string")}]))}async function ME(e,t,r,n){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return xE(e,t,r,n)}async function xE(e,t,r,n){let i=await J(e.appId,t,n),o=new Map(i.filter(b=>!b.inSubtable).map(b=>[b.code,b])),s=new Set(i.filter(b=>b.inSubtable).map(b=>b.code)),a=Ko(e,i),l=e.checkGroups??[],p=ir(l);for(let b of p){if(b.field!=="$id"&&!o.has(b.field)&&!s.has(b.field))throw ae(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${b.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(b.field!=="$id"&&!o.has(b.field)&&s.has(b.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${b.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([b,U])=>[b,U.fieldType]));d.set("$id","RECORD_NUMBER"),vt(e,d);let c=Ns(e.where),u=[...new Set(["$id",...a.map(b=>b.subtableCode??b.field.code),...c,...p.map(b=>b.field)])];for(let b of c){if(b!=="$id"&&!o.has(b)&&!s.has(b))throw new Error(`ArgumentError: WHERE field ${b} does not exist in APP${e.appId}.`);if(b!=="$id"&&!o.has(b)&&s.has(b))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${b} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let f=a.some(b=>b.field.fieldType==="NUMBER")?await $e(e.appId,t,n):void 0,E=b=>b.field==="$id"?z({fieldType:"__ID__"}):o.get(b.field)?.semantics??(o.has(b.field)?z(o.get(b.field)):void 0),R=ur(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(R)}).`);let m=new Map([...o].map(([b,U])=>[b,U.fieldType])),g=new Map([...o.values()].flatMap(b=>b.optionOrder?[[b.code,new Set(Object.keys(b.optionOrder))]]:[])),y=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:Xt(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:g,allowKlike:!1}),T=y===null?"":W(y),N=(await Re(t.getRecords,e.appId,T,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(b=>({id:String(b.$id?.value??""),record:b,flat:Xe(b,null)})).filter(b=>e.where===null||q(e.where,b.flat,U=>d.get(U.field))),w=[],L=new Map,I=new Map,D=new Set,P=0,h=b=>{if(D.add(b.id),P+=1,e.summary){let H=JSON.stringify([b.id,b.subtable??"",b.field,b.code]),Ee=I.get(H);Ee?Ee.$err_count=String(Number(Ee.$err_count)+1):I.set(H,{$id:b.id,$err_subtable:b.subtable??"",$err_field:b.field,$err_code:b.code,$err_count:"1"});return}let U=JSON.stringify([b.id,b.subtable??"",b.field,b.code,b.message]),B=L.get(U);B?(B.$err_count=String(Number(B.$err_count)+1),b.subrow!==void 0&&(B.$err_subrow=`${B.$err_subrow},${b.subrow}`,B.$err_subrow_id=`${B.$err_subrow_id},${b.subrowId??""}`)):L.set(U,{$id:b.id,$err_field:b.field,$err_code:b.code,$err_message:b.message,$err_value:b.value,$err_subtable:b.subtable??"",$err_subrow:b.subrow===void 0?"":String(b.subrow),$err_subrow_id:b.subrowId??"",$err_count:"1"})},C=a.filter(b=>!b.subtableCode),O=new Map;for(let b of a){if(!b.subtableCode)continue;let U=O.get(b.subtableCode)??[];U.push(b),O.set(b.subtableCode,U)}for(let b of N){for(let U of C){let B=b.record[U.field.code]?.value,H=he(B,U.field,f);H.ok||h({id:b.id,field:U.field.code,code:H.code,message:H.message,value:Kr(B,U.field.fieldType)})}for(let[U,B]of O){let H=b.record[U]?.value;if(Array.isArray(H))for(let Ee=0;Ee<H.length;Ee++){let F=H[Ee];for(let _ of B){let V=F.value?.[_.field.code]?.value,re=he(V,_.field,f);if(!re.ok){let Ge=ti(U,Ee,F);h({id:b.id,field:_.field.code,code:re.code,message:re.message,value:Kr(V,_.field.fieldType),...Ge})}}}}for(let U of Vn(l,b.flat,B=>d.get(B.field)))h({id:b.id,field:"",code:"ERR_CHECK",message:U.message,value:""})}if(e.summary)w.push(...I.values());else for(let b of L.values()){let U=Number(b.$err_count);b.$err_subtable!==""&&U>=2&&(b.$err_message=`${b.$err_message}\uFF08${U}\u884C: ${b.$err_subrow}\uFF09`),w.push(b)}let k={type:"SELECT",columns:[...e.summary?Cs:Ps],rows:w,rowCount:w.length,validateStats:{errorRecords:D.size,errorCount:P}};return Be.set(k,UE(e.summary===!0)),k}var dt=1e4;function ft(e,t,r,n,i,o){let s=e.get(t);if(s&&(s.columns.length!==r.length||s.columns.some((l,p)=>l!==r[p])||!FE(s.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let a=s?.rows??[];if(a.length+n.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...r],rows:[...a,...n],columnMeta:o})}function FE(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||!xn(i.semantics,n.semantics))return!1}return!0}function gs(e){if(Array.isArray(e)){for(let t of e){let r=gs(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=gs(r);if(n!==null)return n}}return null}var nn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},cr=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function KE(e,t,r,n,i){let o=await Ai(e.left,t,r,n,i),s=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 Ai(e.low,t,r,n,i),p=await Ai(e.high,t,r,n,i);if(!At(">=",o,l,s)||!At("<=",o,p,s))throw new nn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await Ai(e.right,t,r,n,i);if(!At(e.op,o,a,s))throw new nn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Ai(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(hs(e));case"SCALAR_SUBQUERY":try{return await BE(e.query,t,r,n,i)}catch(o){throw o instanceof cr?new nn(o.message):o}}}async function BE(e,t,r,n,i){let{query:o,probed:s}=$E(e),a=await tn(o,t,r,n,i);if(a.columns.length!==1)throw new cr(`scalar subquery returned ${a.columns.length} columns (expected 1 column).`);if(a.rowCount===0)throw new cr("scalar subquery returned no rows (expected 1 row).");if(a.rowCount>1){let l=s&&a.rowCount===2?"2 or more rows":`${a.rowCount} rows`;throw new cr(`scalar subquery returned ${l} (expected 1 row).`)}return a.rows[0]?.[a.columns[0]]??""}function $E(e){return ne(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 hs(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=hs(e.left),r=hs(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 Ui(e,t,r,n,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],s=i||Ue(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],a=new Map(await Promise.all(s.map(async u=>{let f=await J(u,t,r);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,p=u=>{if(Array.isArray(u)){u.forEach(p);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(p)}};p(e.where),p(e.having);for(let u of e.columns)u.type==="CASE_COL"&&p(u.expr);let d=new Map;await Promise.all([...a].map(async([u,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await Ms(u,t,r);R&&d.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return nr(z({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=a.get(u.appId)?.get(me(u,f));if(!R)return;let m=R.semantics??z(R),g=R.fieldType==="STATUS"&&d.has(u.appId)?{...m,optionOrder:d.get(u.appId)}:m;return nr(g,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Le(R)===u.tableAlias);return E?E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??x("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?n?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??x("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Ti(E,u.field)!==void 0))return f.length>1?x("string"):void 0}}function Os(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=>Ue(i.condition))?!0:Object.values(n).some(t)};return e.columns.some(t)}function tc(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(Oe(n.field)):n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?i=x("number"):n.type==="AGGREGATE"?n.func==="MIN"||n.func==="MAX"||n.func==="MODE"?n.arg.type!=="WILDCARD"&&(i=Ds(n.arg,o=>{let s=t(o);if(s)return{sortKind:s.compareMode==="number"||s.compareMode==="recordNumber"?"number":"string",fieldType:s.fieldType,semantics:s}}).semantics):i=n.func==="GROUP_CONCAT"?x("string"):x("number"):n.type==="STRFUNC_COL"?i=Nt(n.expr).semantics:(n.type==="LITERAL_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="CASE_COL"||n.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&r.set(n.alias,i)}return n=>n.tableAlias===null&&r.has(n.field)?r.get(n.field):t(n)}async function Ii(e,t,r,n){if(e.where===null)return ur(null,()=>{});let i=await Ui(e,t,r,n);return ur(e.where,i)}function Pt(e){let t=e.reasons.find(n=>n.code==="WHERE_FIELD_UNRESOLVED"||n.code==="WHERE_OPERATOR_UNSUPPORTED")??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 Pi(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function pr(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let n=Ue(e.where)?await J(e.appId,t,r):[],i=new Map(n.map(s=>[s.code,s]));if(e.where.type==="BOOLEAN"&&e.where.value===!1)return;let o=ur(e.where,s=>{if(s.field==="$id")return z({fieldType:"__ID__"});let a=i.get(s.field);return a?.semantics??(a?z(a):void 0)});if(o.capability!=="EXACT_PUSHDOWN")throw new j(`WHERE predicate cannot be represented by kintone REST (${Pt(o)})`)}async function Et(e,t,r,n,i,o=!1){let s;if(await Mi(e,t,n,i),HE(e))return s=qE(e),o&&Be.set(s,await As(e,s.columns,t,n,i)),s;await Lc(e,t,r,n,i);let a=await Ii(e,t,n,i);if(a.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(a)}).`);let l=He(e),p=a.capability==="EXACT_PUSHDOWN"?l:"FULL_SCAN",d=await sn(e,t,n,i),c=Pi(e)?(e.orderMode==="KINTONE_NATIVE"?Hr:Wr)({stmt:e,staticMode:p,whereCapability:a.capability,orderSemantics:d.semantics,maxRecords:r.maxRecords??1e4,hasKlike:oe(e.where)}):null;await XE(e,c?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":p,t,n);let u=rc(e,r,c);try{p==="SIMPLE"?s=await zE(e,t,u.effectiveOptions,n,c,d):s=await oR(e,t,u.effectiveOptions,n,i,a.capability==="EXACT_PUSHDOWN",d)}catch(f){nc(u,f)}return o&&Be.set(s,await As(e,s.columns,t,n,i)),s}var on=new WeakMap;async function GE(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 a of o)await i(a);return}let s=o;s.type==="SELECT"&&await Mi(o,t,r);for(let a of Object.values(s))await i(a)};await i(e)}async function VE(e,t,r,n){let i=[e.from,...e.joins.map(d=>d.table)],o=i.filter(d=>d.cteName===null),s=new Map(await Promise.all([...new Set(o.map(d=>d.appId))].map(async d=>{let c=await J(d,t,r);return[d,new Map(c.map(u=>[u.code,u]))]}))),a=(d,c)=>{if(c==="$id")return"$id";let u=me(d,c);return s.get(d.appId)?.has(u)?u:null},l=(d,c)=>{if(d.cteName===null)return!1;let u=n?.get(d.cteName);return u?u.columns.includes(c):!0},p=(d,c,u,f)=>{let E=i.filter(g=>g.cteName===null&&a(g,u.field)!==null).length,R=i.some(g=>l(g,u.field)),m=Le(d);return{canonicalId:`source:${c}:APP${d.appId}:${f}`,directKey:u.tableAlias&&m?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return d=>{if(d.tableAlias!==null){let f=i.findIndex(m=>Le(m)===d.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${d.tableAlias}.${d.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${d.tableAlias}.${d.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=a(E,d.field);if(R===null)throw new Error(`ArgumentError: B65 field ${d.tableAlias}.${d.field} does not exist in APP${E.appId}.`);return p(E,f,d,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=a(f,d.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,d.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${d.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return p(f.table,f.tableIndex,d,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${d.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${d.field} does not exist in a physical APP source.`)}}async function Mi(e,t,r,n){on.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let s=await VE(e,t,r,n),a=qa(e,s,Ya);a&&on.set(e,a)}function WE(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 rc(e,t,r){let n=r?.kind==="CANONICAL_REST_TOP_N"||r?.kind==="KORDER_NATIVE"||r?.kind==="KORDER_CURSOR"?gt({...e,orderBy:[]}):gt(e),i=n.size>0&&t.onLimitReached==="truncate";return{reasons:n,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function nc(e,t){throw e.reasons.size>0&&t instanceof ye?new ye(WE(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function Fu(e,t){try{return await t()}catch(r){nc(e,r)}}function et(e){return e?.type==="BOOLEAN"&&e.value===!1}function HE(e){return e.from.appId===0&&e.from.cteName===nt}function Ci(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Ci(e.left)||Ci(e.right):e.type==="STRING_FUNC"?Ls(e):!1}function YE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Jr(e)}function Jr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Ls(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Jr(e.left)||Jr(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"?Ci(r):Jr(r))):!1}function Ls(e){return e.args.some(t=>YE(t))}function jE(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(Ci(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Ls(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Jr(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 qE(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");jE(e);let t=Zo([{}],e.columns),{rows:r,columns:n}=Ei(t,e.columns),i=fi(r,e.limit,e.offset);return{type:"SELECT",rows:i,columns:n,rowCount:i.length,warnings:[]}}async function zE(e,t,r,n,i,o){let s=i?.kind==="CANONICAL_REST_TOP_N"?uc(e):e,a=Nn(s),l=i?.kind==="CANONICAL_LOCAL"?ht(e,e.from):a.fields,p=await vs(e,t,n),d=ks(e,p),c=e.columns.some(L=>L.type==="CASE_COL")?await Ui(e,t,n,void 0,Os(e)):void 0,u=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,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=u&&!oe(e.where)?g:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let L=await eu({client:t,app:a.app,fields:a.fields,query:jo(e),offset:e.offset??0,limit:e.limit});T=L.records,L.cleanupWarning&&f.add(L.cleanupWarning)}else if(m)T=(await t.getRecords({app:a.app,query:a.query,fields:a.fields})).records;else{let L=e.where?W(e.where):"";T=await Re(t.getRecords,a.app,L,l,{parallel:R,maxRecords:u,stopAfter:y,onLimit:E,onTruncate:I=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let A=T.map(L=>Xe(L,null));m||(A=Jo(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Qo(e.columns,void 0,d.row,c)),A=fi(A,e.limit,e.offset));let{rows:N,columns:w}=Ei(A,e.columns,void 0,d.row,void 0,c);return{type:"SELECT",rows:N,columns:w,rowCount:N.length,warnings:[...f]}}async function XE(e,t,r,n){let i=new Map,o=(s,a)=>{if(a.length===0)return;let l=i.get(s);l||(l=new Set,i.set(s,l));for(let p of a)l.add(p)};if(t==="SIMPLE"){let s=Nn(e);o(s.app,s.fields)}else{let s=[e.from,...e.joins.map(a=>a.table)].filter(a=>a.cteName===null);for(let a of s)o(a.appId,ht(e,a))}for(let[s,a]of i.entries()){let l=[...a].filter(u=>!pR(u));if(l.length===0)continue;let p=await J(s,r,n);if(p.length===0)continue;let d=new Set(p.map(u=>u.code)),c=l.filter(u=>!d.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${s})`)}}function ic(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Cr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Cr(e.where,{tableAlias:e.from.alias}):null}async function oc(e,t,r){let n=new Map,i=(s,a)=>{if(a===null)return;let l=n.get(s);l?l.push(a):n.set(s,[a])};if(i(e.from.appId,ic(e)),e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let a=Cr(e.where,{tableAlias:s.table.alias});i(s.table.appId,a)}let o=await Promise.all([...n.entries()].map(async([s,a])=>{let[l,p]=await Promise.all([de(s,t,r),dR(s,t,r)]),d=JE(a).filter(c=>l.get(c)==="STATUS");if(d.length>0){let c=await Us(s,t,r);if(c.enable&&c.states&&c.states.length>0){let u=new Set(c.states.map(f=>f.name));for(let f of d)p.set(f,u)}}return[s,l,p]}));return{fieldTypesByApp:new Map(o.map(([s,a])=>[s,a])),fieldOptionsByApp:new Map(o.map(([s,,a])=>[s,a]))}}function JE(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 Ze(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"&&Ni(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ni(e.right.expr,t);return;case"LOGICAL":Ze(e.left,t),Ze(e.right,t);return;case"NOT":case"GROUP":Ze(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ni(e,t){for(let r of e.branches)Ze(r.condition,t)}function QE(e){let t=[];Ze(e.where,t),Ze(e.having,t);for(let r of e.columns)r.type==="CASE_COL"&&Ni(r.expr,t);return t}function Le(e){return e.alias??e.cteName}function sc(e,t){return[e.from,...e.joins.map(r=>r.table)].find(r=>Le(r)===t)}function _s(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function vs(e,t,r){let n=QE(e);if(n.length===0)return new Map;let i=new Set,o=_s(e);for(let a of n){if(a.tableAlias!==null){if(a.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=sc(e,a.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 s=await Promise.all([...i].map(async a=>[a,await de(a,t,r)]));return new Map(s)}function Oe(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 ac(e,t,r){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||It(t,r)}function It(e,t){if(e.type==="FIELD_REF"){t.push(Oe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){It(e.left,t),It(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){It(e.left,t),It(e.right,t);return}if(e.type==="STRING_FUNC"){for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&It(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"&&It(r,t)}function Oi(e,t){if(e.type==="AGG_REF"){ac(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Oi(e.left,t),Oi(e.right,t))}function ys(e,t){for(let r of e.args)r.type==="AGG_REF"||r.type==="AGG_ARITH"?Oi(r,t):Qr(r,t)}function Qr(e,t){if(e.type==="STRING_FUNC"){ys(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Qr(e.left,t),Qr(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"?ys(n,t):n.type!=="ARRAY"&&n.type!=="FIELD_REF"&&n.type!=="ARITH"&&Qr(n,t)}}function ZE(e){let t=[];for(let r of e)r.type==="AGGREGATE"?ac(r.func,r.arg,t):r.type==="ARITH_AGG_COL"?Oi(r.expr,t):r.type==="STRFUNC_COL"?ys(r.expr,t):r.type==="SCALAR_VALUE_COL"&&Qr(r.expr,t);return t}var eR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function tR(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":eR.has(e.fieldType)?"string":void 0}async function lc(e,t,r,n){let i=ZE(e.columns);if(i.length===0)return;let o=new Set,s=_s(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=sc(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 s)o.add(E.appId);let a=new Map(await Promise.all([...o].map(async f=>{let E=await J(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([...a].map(async([f,E])=>{if(![...p].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await Ms(f,t,r);R&&l.set(f,R)}));let d=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??z(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=a.get(e.from.appId)?.get(f.field);else{let m=d.find(g=>Le(g)===f.tableAlias);if(!m)return;if(m.cteName!==null)return n?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=a.get(m.appId)?.get(me(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??x("string");E=a.get(e.from.appId)?.get(me(e.from,f.field))}else{let m=d.flatMap(g=>{if(g.cteName!==null){let T=n?.get(g.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let y=a.get(g.appId)?.get(me(g,f.field));return y?[c(y,g.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?d.find(m=>Le(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function me(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Ti(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Fe(e,t){let r=e.semantics??z(e);return{sortKind:tR(e),fieldType:e.fieldType,semantics:t===void 0?r:nr(r,t,e.code)}}function uc(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:x(e)}}function Ke(){return{semantics:x("string","KSQL_UNKNOWN")}}function cc(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function dr(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:z({fieldType:"__ID__"})};if(e==="_rid")return Y("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Y("number")}var rR=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Nt(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return rR.has(e.func)?Y("number"):Y("string")}function Er(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?cc():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?Nt(e):e.type==="FIELD_REF"?t(Oe(e.field))??Ke():e.type==="FIELD"?t(e)??Ke():Ke()}function xi(e){if(e.length===0)return Ke();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&&xn(r(n.semantics),r(t.semantics)))?e.every(i=>xn(i.semantics,t.semantics))?t:{...t,semantics:r(t.semantics)}:e.some(n=>n.semantics?.compareMode==="unsupported")?cc("KSQL_MIXED_UNSUPPORTED"):Ke()}function Ds(e,t){if(e.type==="FIELD_REF")return t(Oe(e.field))??Ke();if(e.type==="FIELD")return t(e)??Ke();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 Nt(e);let r=e.branches.map(n=>Er(n.result,t));return e.elseResult&&r.push(Er(e.elseResult,t)),xi(r)}function nR(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 As(e,t,r,n,i){let o=new Map;nR(e)&&await Promise.all(_s(e).map(async c=>{if(o.has(c.appId))return;let u=await J(c.appId,r,n);o.set(c.appId,new Map(u.map(f=>[f.code,f])))}));let s=[e.from,...e.joins.map(c=>c.table)],a=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=o.get(e.from.appId)?.get(c.field);return R?Fe(R,e.from.appId):void 0}let f=s.find(R=>Le(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return i?.get(f.cteName)?.columnMeta?.get(c.field);let E=o.get(f.appId)?.get(me(f,c.field));return E?Fe(E,f.appId):dr(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=o.get(e.from.appId)?.get(me(e.from,c.field));return f?Fe(f,e.from.appId):dr(c.field)}let u=s.flatMap(f=>{if(f.cteName!==null){let m=i?.get(f.cteName);return m?.columns.includes(c.field)?[m.columnMeta?.get(c.field)]:[]}let E=o.get(f.appId)?.get(me(f,c.field)),R=E?Fe(E,f.appId):dr(c.field);return R?[R]:[]});return u.length===1?u[0]:void 0},l=new Map,p=e.columns.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let c of t){let u=a(Oe(c));u&&l.set(c,u)}return l}if(p)for(let c of t){let u=a(Oe(c));u&&l.set(c,u)}return e.columns.filter(c=>c.type!=="WILDCARD"&&c.type!=="PARENT_WILDCARD").forEach((c,u)=>{let f=p?"alias"in c&&c.alias?c.alias:void 0:t[u];if(!f)return;let E;if(c.type==="FIELD")E=a(Oe(c.field));else if(c.type==="AGGREGATE")c.func==="GROUP_CONCAT"?E=Y("string"):c.func==="COUNT"||c.func==="SUM"||c.func==="AVG"||c.func==="STDDEV_POP"||c.func==="STDDEV_SAMP"||c.func==="VAR_POP"||c.func==="VAR_SAMP"||c.func==="MEDIAN"?E=Y("number"):(c.func==="MIN"||c.func==="MAX"||c.func==="MODE")&&c.arg.type!=="WILDCARD"&&(E=Ds(c.arg,a));else if(c.type==="ARITH_AGG_COL"||c.type==="ARITH_COL")E=Y("number");else if(c.type==="GROUPING_COL")E=Y("number");else if(c.type==="LITERAL_COL")E=Y("string");else if(c.type==="SCALAR_VALUE_COL"){let R=c.expr;R.type==="STRING_FUNC"?E=Nt(R):R.type==="NUMBER"||R.type==="SCALAR_ARITH"?E=Y("number"):R.type==="FIELD"?E=a(R):E=Y("string")}else if(c.type==="STRFUNC_COL")E=Nt(c.expr);else if(c.type==="WINDOW_COL")E=Y("number");else if(c.type==="CASE_COL"){let R=c.expr.branches.map(m=>Er(m.result,a));c.expr.elseResult&&R.push(Er(c.expr.elseResult,a)),E=xi(R)}else c.type==="SCALAR_SUBQUERY_COL"&&(E=Ke());E&&l.set(f,E)}),l}function iR(e,t){let r=Be.get(e),n=Be.get(t),i=new Map;return e.columns.forEach((o,s)=>{let a=r?.get(o),l=t.columns[s],p=l===void 0?void 0:n?.get(l);a&&p?i.set(o,xi([a,p])):(a||p)&&i.set(o,Ke())}),i}function ks(e,t){let r=[e.from,...e.joins.map(a=>a.table)],n=r.filter(a=>a.cteName===null),i=new Set(e.columns.map(a=>"alias"in a?a.alias:null).filter(a=>a!==null)),o=a=>{if(a.tableAlias!==null){if(a.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(a.field);let p=r.find(d=>Le(d)===a.tableAlias);return!p||p.cteName!==null?void 0:Ti(p,a.field)??t.get(p.appId)?.get(me(p,a.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Ti(e.from,a.field)??t.get(e.from.appId)?.get(me(e.from,a.field));if(r.some(p=>p.cteName!==null))return;let l=n.flatMap(p=>{let d=Ti(p,a.field)??t.get(p.appId)?.get(me(p,a.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:a=>{if(!(a.tableAlias===null&&i.has(a.field)))return o(a)}}}async function oR(e,t,r,n,i,o=!0,s){let a=r.maxRecords??1e4,l=new Set,p=r.fetchParallel??1;await Promise.all([un(e.where,t,r,n,i),un(e.having,t,r,n,i)]);let[d,c,u]=await Promise.all([oc(e,t,n),vs(e,t,n),lc(e,t,n,i)]),f=ks(e,c),E=await Ui(e,t,n,i,Ue(e.having)||Os(e)),R=tc(e,E),m=Qt(e,d);ao(m);let g=m.mainCondition,y=m.joinConditions,T=et(e.where),A=T?Promise.resolve([]):Zr(e,e.from,t,a,p,!0,r.onLimitReached??"error",l,g,o),N=[],w=[];for(let U of e.joins){if(T){N.push({join:U,promise:Promise.resolve([])});continue}let B=U.table.alias?y.get(U.table.alias)??null:null;B!==null?N.push({join:U,promise:Zr(e,U.table,t,a,p,!1,r.onLimitReached??"error",l,B)}):w.push(U)}let L=vc(e.columns,t,r,n,i),I=s?Promise.resolve(s):sn(e,t,n,i);L.catch(()=>{}),I.catch(()=>{});let D=await A,P=new Map;P.set(e.from.alias,D);for(let{join:U,promise:B}of N)P.set(U.table.alias,await B);await Promise.all(w.map(async U=>{let H=await mc(e,U,P,t,a,p,r.onLimitReached??"error",l,null)??await Zr(e,U.table,t,a,p,!1,r.onLimitReached??"error",l,null);P.set(U.table.alias,H)}));let h=await L,{optionOrders:C,sortKinds:O,semantics:v}=await I,{rows:k,columns:b}=rs({tables:P,stmt:e,scalarCache:h,optionOrders:C,sortKinds:O,orderSemantics:v,fieldTypeResolver:f.row,fieldSemanticsResolver:E,havingFieldTypeResolver:f.having,havingFieldSemanticsResolver:R,aggregateSortKindResolver:u,appliedKlikes:m.appliedKlikes,resolvedGroupingSpec:on.get(e)});return{type:"SELECT",rows:k,columns:b,rowCount:k.length,warnings:[...l]}}async function pc(e,t,r,n){let[i,o]=await Promise.all([e.left.type==="UNION"?pc(e.left,t,r,n):Et(e.left,t,r,n),Et(e.right,t,r,n)]),s=i.columns,a=o.columns,l=o.rows.map(c=>{let u={};return s.forEach((f,E)=>{u[f]=c[a[E]??f]??""}),u}),p=[...i.rows,...l],d=e.all?p:dc(p,s);return{type:"SELECT",rows:d,columns:s,rowCount:d.length}}function dc(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 sR(e,t,r,n,i,o=!1){if((i==null||i.size===0)&&qt(e))return Et(zt(e),t,r,n,void 0,o);let s=new Map(i??[]);for(let a of e.ctes){let l;a.query.type==="SHOW_APPS"?l=await Nc(t):a.query.type==="DESCRIBE"?l=await Oc(a.query,t,n):l=await Ot(a.query,t,r,s,n,!0),s.set(a.name,{rows:l.rows,columns:l.columns,columnMeta:Be.get(l)})}return Ot(e.query,t,r,s,n,o)}async function Ot(e,t,r,n,i,o=!1){if(e.type==="UNION"){let[l,p]=await Promise.all([Ot(e.left,t,r,n,i,o),Ot(e.right,t,r,n,i,o)]),d=l.columns,c=p.columns,u=p.rows.map(m=>{let g={};return d.forEach((y,T)=>{g[y]=m[c[T]??y]??""}),g}),f=[...l.rows,...u],E=e.all?f:dc(f,d),R={type:"SELECT",rows:E,columns:d,rowCount:E.length};return o&&Be.set(R,iR(l,p)),R}if(!(e.from.cteName!=null&&e.from.cteName!==nt||e.joins.some(l=>l.table.cteName!=null)))return Et(e,t,r,i,n,o);let a=await aR(e,t,r,n,i);return o&&Be.set(a,await As(e,a.columns,t,i,n)),a}async function aR(e,t,r,n,i){await Mi(e,t,i,n);let o=on.get(e),s=new Set,a=F=>{if(F.alias!==null||F.cteName===null)return F;let _=Le(F);return s.add(_),{...F,alias:_}};e={...e,from:a(e.from),joins:e.joins.map(F=>({...F,table:a(F.table)}))};let l=new Set;for(let F of[e.from,...e.joins.map(_=>_.table)]){let _=Le(F);if(_!==null){if(l.has(_))throw new Error(`ArgumentError: effective alias ${_} is used by multiple tables.`);l.add(_)}}let p=F=>{let _=n.get(F);if(!_)throw new Error(`ArgumentError: materialized source ${F} is not available.`);return _};for(let F of[e.from,...e.joins.map(_=>_.table)])F.cteName!==null&&p(F.cteName);let d=r.maxRecords??1e4,c=new Set,u=r.fetchParallel??1;await Promise.all([un(e.where,t,r,i,n),un(e.having,t,r,i,n),Lc(e,t,r,i,n)]);let f=await Ii(e,t,i,n);if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(f)}).`);let E=await sn(e,t,i,n),R=Pi(e)?(e.orderMode==="KINTONE_NATIVE"?Hr:Wr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:f.capability,orderSemantics:E.semantics,maxRecords:d,hasKlike:oe(e.where)}):null,m=rc(e,r,R),g=m.effectiveOptions,[y,T,A]=await Promise.all([oc(e,t,i),vs(e,t,i),lc(e,t,i,n)]),N=ks(e,T),w=await Ui(e,t,i,n,Ue(e.having)||Os(e)),L=tc(e,w),I=Qt(e,y);ao(I);let D=vc(e.columns,t,g,i,n),P=Promise.resolve(E);D.catch(()=>{}),P.catch(()=>{});let h=new Map,C=new Map;if(e.from.cteName!=null){let F=p(e.from.cteName);h.set(e.from.alias,F.rows.map(Ku)),C.set(e.from.alias,F.columns)}else{let F=await Fu(m,()=>Zr(e,e.from,t,d,u,!0,g.onLimitReached??"error",c,I.mainCondition,f.capability==="EXACT_PUSHDOWN"));h.set(e.from.alias,F)}let O=e.joins.map(F=>Fu(m,async()=>{if(F.table.cteName!=null){let _=p(F.table.cteName);h.set(F.table.alias,_.rows.map(Ku)),C.set(F.table.alias,_.columns)}else{let _=F.table.alias?I.joinConditions.get(F.table.alias)??null:null,re=await mc(e,F,h,t,d,u,g.onLimitReached??"error",c,_)??await Zr(e,F.table,t,d,u,!1,g.onLimitReached??"error",c,_);h.set(F.table.alias,re)}}));await Promise.all(O);let v=await D,{optionOrders:k,sortKinds:b,semantics:U}=await P,B=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:H,columns:Ee}=rs({tables:h,stmt:e,scalarCache:v,optionOrders:k,sortKinds:b,orderSemantics:U,fieldTypeResolver:N.row,fieldSemanticsResolver:w,havingFieldTypeResolver:N.having,havingFieldSemanticsResolver:L,aggregateSortKindResolver:A,appliedKlikes:I.appliedKlikes,sourceColumns:B,tableColumns:C,hiddenQualifiedAliases:s,resolvedGroupingSpec:o});return{type:"SELECT",rows:H,columns:Ee,rowCount:H.length,warnings:[...c]}}function Ku(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{value:r??""}]))}async function Zr(e,t,r,n,i,o,s,a,l=null,p=!0){let d=ht(e,t),c=R=>{a.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${R} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${R} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let R=o&&p?ka(e,t.appId).query:"",m=l!==null?W(l):"",g=R&&m?`(${R}) and (${m})`:R||m;return(await Ce(r.getRecords,t.appId,g,d,{parallel:i,maxRecords:n,onLimit:s,onTruncate:c})).records}let E=(await Ce(r.getRecords,t.appId,"",d,{parallel:i,maxRecords:n,onLimit:s,onTruncate:c})).records;return Eu(E,t.subtableCode)}var fc=50;function lR(e){let t=Ae(e);return t!==null?JSON.stringify(t):e}function Ss(e){return JSON.stringify(e)}function Lt(e,t){return JSON.stringify(e.map((r,n)=>t[n]?lR(r):r))}function pn(e,t){let r=e.raw.get(Ss(t));if(r!==void 0)return r;if(e.numericKey.some(Boolean))return e.normalized.get(Lt(t,e.numericKey))}async function dn(e,t,r,n,i,o){let s=i.maxRecords??1e4,a=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},d=(m,g,y)=>{let T=m.get(g);(T===void 0||y>T)&&m.set(g,y)},c=(m,g)=>{d(p.raw,Ss(m),g),l.some(Boolean)&&d(p.normalized,Lt(m,l),g)},u=new Set,f=[],E=new Set;for(let m of r){let g=Ss(m);E.has(g)||(E.add(g),m.some(y=>y==="")?f.push(m):u.add(m[0]))}let R=["$id",...t];for(let m of mr([...u],fc)){let g=`${t[0]} in (${m.map(Li).join(",")})`,y=await Re(n.getRecords,e,g,R,{maxRecords:s,parallel:a});for(let T of y){let A=Number(T.$id?.value);Number.isFinite(A)&&c(t.map(N=>Ec(T[N]?.value)),A)}}for(let m of f){let g=t.map((T,A)=>`${T} = ${Li(m[A])}`).join(" and "),y=await Re(n.getRecords,e,g,["$id"],{maxRecords:s,parallel:a});y.length!==0&&c(m,uR(y))}return p}function uR(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 Ec(e){return typeof e=="string"?e:e==null?"":String(e)}function Li(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function mr(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var Rc=50,cR=6,Bu=Rc*cR;async function mc(e,t,r,n,i,o,s,a,l=null){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let p=t.on.left.tableAlias,d=t.on.right.tableAlias;if(!p||!d)return null;let c,u,f;if(p===t.table.alias&&d!==t.table.alias)c=d,u=t.on.right.field,f=t.on.left.field;else if(d===t.table.alias&&p!==t.table.alias)c=p,u=t.on.left.field,f=t.on.right.field;else return null;let E=r.get(c);if(!E)return null;let R=new Set;for(let w of E){let L=w[u]?.value,I=Ec(L).trim();I.length>0&&R.add(I)}let m=[...R];if(m.length===0)return[];if(m.length>Bu)return a.add(`JOIN\u30AD\u30FC\u304C ${m.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 ${Bu} \u4EF6\uFF09\u3002`),null;let g=ht(e,t.table),y=w=>{a.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${w} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${w} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},T=mr(m,Rc),A=[],N=new Set;for(let w of T){let L=`${f} in (${w.map(Li).join(",")})`,I=l!==null?`(${L}) and (${W(l)})`:L,D=await Ce(n.getRecords,t.table.appId,I,g,{parallel:o,maxRecords:i,onLimit:s,onTruncate:y});for(let P of D.records){let h=`${P.$id?.value??""}:${JSON.stringify(P)}`;N.has(h)||(N.add(h),A.push(P))}}return A}var $u=new Map,Gu=new Map,Vu=new Map,Wu=new Map,Hu=new Map,Yu=new Map;function gr(e,t,r){return e.get(t)?.get(r)}function hr(e,t,r,n){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(r,n)}function pR(e){return e.startsWith("_")||e.startsWith("$")}async function J(e,t,r){let n=gr(Wu,r,e);if(n)return n;let i=t.getFields(e);return hr(Wu,r,e,i),i}async function $e(e,t,r){let n=gr(Yu,r,e);if(n)return n;let i=t.getNumberPrecision(e);return hr(Yu,r,e,i),i}async function Us(e,t,r){let n=gr(Hu,r,e);if(n)return n;let i=t.getProcessStatuses(e);return hr(Hu,r,e,i),i}async function Ms(e,t,r){let n=await Us(e,t,r);return n.enable&&n.states!==null?new Map(n.states.map(i=>[i.name,i.index])):void 0}async function de(e,t,r){let n=gr($u,r,e);if(n)return n;let i=await J(e,t,r),o=new Map(i.map(s=>[s.code,s.fieldType]));return hr($u,r,e,o),o}async function Ts(e,t,r){let n=gr(Gu,r,e);if(n)return n;let i=await J(e,t,r),o=new Map;for(let s of i){if(!s.optionOrder)continue;let a=Object.entries(s.optionOrder);a.length!==0&&o.set(s.code,new Map(a))}return hr(Gu,r,e,o),o}async function dR(e,t,r){let n=await Ts(e,t,r);return new Map([...n.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function ju(e,t,r){let n=gr(Vu,r,e);if(n)return n;let i=await J(e,t,r),o=new Map;for(let s of i)s.sortKind&&o.set(s.code,s.sortKind);return hr(Vu,r,e,o),o}function fR(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 ER(e,t,r,n){let i=fR(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],s=new Set,a=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await J(c,t,r);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=a.get(e.from.appId)?.get(c.field);return R?Fe(R,e.from.appId):void 0}let f=o.find(R=>Le(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return n?.get(f.cteName)?.columnMeta?.get(c.field);let E=a.get(f.appId)?.get(me(f,c.field));return E?Fe(E,f.appId):dr(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=a.get(e.from.appId)?.get(me(e.from,c.field));return f?Fe(f,e.from.appId):dr(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let m=n?.get(f.cteName),g=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return g?[g]:[]}let E=a.get(f.appId)?.get(me(f,c.field)),R=E?Fe(E,f.appId):dr(c.field);return R?[R]:[]});return u.length>1&&s.add(c.field),u.length===1?u[0]:void 0},p=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Oe(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=Y("number");else if(c.type==="GROUPING_COL")u=Y("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=Y("string");else if(c.type==="STRFUNC_COL")u=Nt(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=Ke();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Er(E.result,l));c.expr.elseResult&&f.push(Er(c.expr.elseResult,l)),u=xi(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Ds(c.arg,l)):u=c.func==="GROUP_CONCAT"?Y("string"):Y("number"));u?.semantics&&p.set(c.alias,u.semantics)}let d=new Map;for(let c of i){let u=p.get(c)??l(Oe(c))?.semantics;if(!u){let E=Oe(c);E.tableAlias===null&&s.has(E.field)&&d.set(c,z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Us(u.source.appId,t,r);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}d.set(c,f)}return d}async function sn(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,s,a]=await Promise.all([RR(e,t,r),mR(e,t,r),ER(e,t,r,n)]);return{optionOrders:o,sortKinds:s,semantics:a}}async function RR(e,t,r){let n=new Map,i=[e.from,...e.joins.map(s=>s.table)],o=new Set;for(let s of i){if(s.cteName!=null||o.has(s.appId))continue;o.add(s.appId);let a=await Ts(s.appId,t,r);for(let[l,p]of a.entries())n.has(l)||n.set(l,p)}for(let s of i){if(s.cteName!=null||!s.alias)continue;let a=await Ts(s.appId,t,r);for(let[l,p]of a.entries())n.set(`${s.alias}.${l}`,p)}return n}async function mR(e,t,r){let n=new Map,i=[e.from,...e.joins.map(s=>s.table)],o=new Set;for(let s of i){if(s.cteName!=null||o.has(s.appId))continue;o.add(s.appId);let a=await ju(s.appId,t,r);for(let[l,p]of a.entries())n.has(l)||n.set(l,p)}for(let s of i){if(s.cteName!=null||!s.alias)continue;let a=await ju(s.appId,t,r);for(let[l,p]of a.entries())n.set(`${s.alias}.${l}`,p)}return n}function gc(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 gR=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function hR(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||gR.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function _e(e,t,r,n){let i=await J(e,r,n);return hR(e,t,i),i}async function tt(e,t,r,n,i){let o=new Map(r.map(s=>[s.code,s]));return t.some(s=>o.get(s)?.fieldType==="NUMBER")?$e(e,n,i):void 0}function _t(e,t,r,n){let i=new Map(r.map(o=>[o.code,o]));e.forEach((o,s)=>{for(let a of t){let l=i.get(a),p=o[a]?.value??"",d=he(p,l,n);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${s+1}, field=${a})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[a]={value:c?p:d.value}}})}async function yR(e,t,r,n,i){let o=await _e(e.appId,e.fields,t,n),s=await $r({statement:e,fieldInfos:o,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",rt),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie),statementNumber:i,loadNumberPrecision:()=>$e(e.appId,t,n)});return XR(e,s,o)}async function AR(e,t,r,n,i){let{fieldInfos:o,prepared:s}=await hc(e,t,r,n,i);return QR(e,s,o)}async function hc(e,t,r,n,i){let o=await _e(e.appId,e.fields,t,n),s=new Map(o.map(m=>[m.code,m.fieldType])),a=Ic(e),l=new Set;for(let m of a){let g=Lt(m,e.keyFields.map(y=>s.get(y)==="NUMBER"));if(l.has(g))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(g)}let p=await dn(e.appId,e.keyFields,a,t,r,s),d=a.map(m=>pn(p,m)),c=new Map,u=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of mr(u,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let T=Number(y.$id?.value);Number.isSafeInteger(T)&&T>0&&c.set(T,y)}}let E=d.map((m,g)=>({sourceRowIndex:g,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await Yl({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",rt),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie),statementNumber:i,loadNumberPrecision:()=>$e(e.appId,t,n)});return{fieldInfos:o,prepared:R}}async function SR(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await _e(e.appId,e.fields,t,n),o=await $r({statement:e,fieldInfos:i,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",rt),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie),loadNumberPrecision:()=>$e(e.appId,t,n)}),s=Vo(o);if(r.confirm&&!await r.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Fi(s),applyDiagnostic:s}))throw new Q("INSERT",o.guards.parentRows);let a=await Jl(o,t,s);return{...a,diagnostic:be(s,a)}}async function TR(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await hc(e,t,r,n,1),o=Wo(i);if(r.confirm){let a=Fi(o);if(!await r.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:a,applyDiagnostic:o}))throw new Q("UPDATE",i.guards.parentRows)}let s=await Ql(i,t,o);return{type:"UPSERT",insertedCount:s.insertedCount,updatedCount:s.updatedCount,successfulChunks:s.successfulChunks,successfulParents:s.successfulParents,successfulInsertChunks:s.successfulInsertChunks,successfulUpdateChunks:s.successfulUpdateChunks,nonTransactional:s.nonTransactional,diagnostic:be(o,s)}}function wR(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 Fi(e,t=!0){let r=e.branches.find(u=>u.branch==="insert"),n=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=wR(r?Si(r):[],n?Si(n):[]),s=bR(i),a=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),p=o.reduce((u,f)=>u+f.appendRows,0),d=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:a,changedSubtableRows:l,addedSubtableRows:p,tables:o,...s.length>0?{multiValues:s}:{},deletedRows:d,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&r)return{...c,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&r&&n){let u=Si(r),f=Si(n);return{...c,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:u.reduce((E,R)=>E+R.appendRows,0),tables:u},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 c}function Si(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let r=Ct(t,"APPEND"),n=Ct(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-r-n,appendRows:r,removeRows:n}})}function Ct(e,t){return e.operations.filter(r=>r.kind===t).reduce((r,n)=>r+(n.count??0),0)}function bR(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:Ct(r,"ADD"),removedValues:Ct(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 yc(e,t,r,n,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return yR(e,t,r,n,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return AR(e,t,r,n,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let s=await bc(e,t,r,n,o);if(s.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return s}return(await xs(e,t,r,n,i,o)).result}var _i=class extends Error{constructor(r,n){super(`RejectLimitExceededError: ${r}`);this.diagnostic=n;this.name="RejectLimitExceededError"}};async function xs(e,t,r,n,i,o,s=!0,a=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(v=>v.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,c=await _e(e.appId,d,t,n);e.type==="UPDATE"&&await pr(e,t,n);let u=new Map(c.map(v=>[v.code,v])),f=await tt(e.appId,d,c,t,n),E=De(c,p),R=Ru(E),m=(await IR(e,l,t,r,n,i,u,e.type==="UPDATE"?R:void 0)).sort((v,k)=>v.rowNumber-k.rowNumber),g=m.filter(v=>v.mode==="update"),y=e.type==="UPDATE"?NR:e.type.startsWith("UPSERT")?v=>OR(v,t,r.maxRecords??1e4):void 0,T=r.loadUpdateModeSnapshots??y,A=g.length>0&&T!==void 0,N=new Map;if(A){Mo(g,d,c);let v=await T({appId:e.appId,candidates:g,fields:R}),k=new Map;for(let b of g){if(b.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${b.rowNumber}).`);let U=v.get(b.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${b.targetId}.`);let B=mu(U,b.record??{});k.set(b.rowNumber,B)}f===void 0&&[...k.values()].some(b=>wt(b,E))&&(f=await $e(e.appId,t,n));for(let b of g){let U=k.get(b.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${b.rowNumber}.`);N.set(b.rowNumber,bt(U,E,f,o,b.rowNumber,l))}}let w=xo(m,l,p,d,c,o,f,e.checkGroups??[],s,a,{validateUpdateBuiltIns:!A}),{errors:L,invalidRows:I,invalidRowNumbers:D}=w;if(A){let v=new Map(w.candidateResults.map(k=>[k.rowNumber,k]));L=[],D=new Set;for(let k of m){let b=v.get(k.rowNumber);if(!b)throw new Error(`InternalError: validation detail is missing for row ${k.rowNumber}.`);if(k.mode==="create"){let H=[...b.preErrors,...b.builtInErrors,...b.checkErrors];L.push(...H),H.length>0&&D.add(k.rowNumber);continue}let U=N.get(k.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${k.rowNumber}.`);let B=gu({rowNumber:k.rowNumber,setFields:d,normalizedPostImage:U.normalizedRecord,preErrors:b.preErrors,postImageErrors:U.errors,checkErrors:b.checkErrors});k.record=B.writeRecord,L.push(...B.errors);for(let H of B.invalidRowNumbers)D.add(H)}I=D.size}let P=[...p,...sr],h={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-I,invalidRows:I,errorCount:L.length,columns:P,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},C=new Map;for(let v of p){if(v==="$id"){C.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let k=u.get(v);k&&C.set(v,Fe(k,e.appId))}let O=new Set(["$err_statement","$err_row"]);for(let v of sr)C.set(v,Y(O.has(v)?"number":"string"));return Rr.set(h,C),{result:h,candidates:m,invalidRowNumbers:D,columnMeta:C}}async function qu(e,t,r,n,i,o){let s=await xs(e,t,r,n,i,o),a=e.errorTable;if(!a)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");ft(i,a,s.result.columns,s.result.errors,r.tempTableMaxRows??dt,s.columnMeta);let l=e.rejectLimit??null;if(l!==null&&s.result.invalidRows>l)throw new _i(`rejected rows (${s.result.invalidRows}) exceed REJECT LIMIT (${l}).`,s.result);let p=s.candidates.filter(E=>!s.invalidRowNumbers.has(E.rowNumber));if(r.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await r.confirm(p.length,E))throw new Q(E,p.length)}let d={affectedRows:p.length,skippedRows:s.result.invalidRows,rejectLimit:l,errTable:a};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(g=>g.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...d}}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,...d}}let c=p.filter(E=>E.mode==="create"),u=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<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...d}}async function IR(e,t,r,n,i,o,s,a){if(e.type==="UPDATE")return CR(e,r,n,i,o,a);let l,p,d,c,u;if(e.type==="INSERT"||e.type==="UPSERT")zu(e,e.fields),u=new Map(e.fields.map(A=>[A,s.get(A)?.fieldType??""])),vt(e,u),l=e.values.map(A=>A.map((N,w)=>N.type==="CASE_VALUE"?ut(N.expr,{},s.get(e.fields[w])?.fieldType):N));else{let A=await Ks.materialize(e,r,n,i,o,[...s.values()]),N=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!N&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(N&&new Set(A.columns).size!==A.columns.length)throw ae("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");zu(e,A.columns),p=A.rows,d=A.importPresence,c=A.importRowErrors;let w=A.columnMeta;u=new Map(A.columns.map(L=>{let I=w?.get(L),D=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,D]})),vt(e,u),l=A.rows.map(L=>A.columns.map(I=>L[I]??""))}let f=l.map((A,N)=>({rowNumber:N+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,L)=>d&&!d[N]?.has(w)?[]:[[w,A[L]]])),preErrors:[...c?.[N]??[]],record:{},evaluationRow:p?.[N]??Object.fromEntries(e.fields.map((w,L)=>[w,ve(A[L])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...s].map(([A,N])=>[A,N.fieldType])),R=f.map(A=>e.keyFields.map(N=>ve(A.payload.get(N)))),m=e.keyFields.map(A=>E.get(A)==="NUMBER"),g=new Map;for(let A of R){let N=Lt(A,m);g.set(N,(g.get(N)??0)+1)}let y=ki.has(e);if(y&&[...g.values()].some(A=>A>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let T=await dn(e.appId,e.keyFields,R,r,n,E);return f.forEach((A,N)=>{let w=R[N],L=pn(T,w);A.mode=L===void 0?"create":"update",L!==void 0&&(A.targetId=L),e.keyFields.forEach((I,D)=>{w[D]===""&&A.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(Lt(w,m))??0)>1&&A.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Fs(e){return e.checkGroups?ir(e.checkGroups):[]}function zu(e,t){let r=new Set(t);for(let n of Fs(e)){if(n.tableAlias!==null)throw ae(`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 ae(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var PR=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function vt(e,t){if(e.checkGroups)for(let r of fl(e.checkGroups)){let n=r.tableAlias?`${r.tableAlias}.${r.field}`:r.field,i=t.get(n)??t.get(r.field);if(PR.has(i??""))throw ae(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${n} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function CR(e,t,r,n,i,o){if(e.from)return _R(e,e.from,t,r,n,i,o);await _c(e.assignments,t,r,n);let s=await de(e.appId,t,n),a=Ac(e,s);vt(e,ws(s,e.appId));let l,p=new Map,d=new Map;if(Yn(e)){let c=Ao(e),u=[...new Set([...c.fields,...a,...o??[]])],f=await Ce(t.getRecords,c.app,c.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});d=wi(f.records),p=d,l=To(e,f.records,s).flatMap(E=>E.records)}else{let c=vr(e);if(a.length>0){let u=[...new Set(["$id",...a,...o??[]])],f=await Ce(t.getRecords,c.app,c.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});d=wi(f.records),p=d,l=Dr(e,[...p.keys()],s).flatMap(E=>E.records)}else if(o){let u=await Ce(t.getRecords,c.app,c.query,[...o],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});d=wi(u.records),l=Dr(e,[...d.keys()],s).flatMap(f=>f.records)}else{let u=await ai(t.getRecords,c.app,c.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1});l=Dr(e,u.ids,s).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:d.get(c.id),evaluationRow:LR(p.get(c.id),e.appId),evaluationFieldTypes:ws(s,e.appId)}))}function wi(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 NR(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 OR(e,t,r){let n=[...new Set(e.candidates.map(s=>{let a=s.targetId;if(!Number.isSafeInteger(a)||a===void 0||a<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(a)}.`);return a}))];if(n.length>r)throw new ye(`\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 s of mr(n,100)){let a=await t.getRecords({app:e.appId,query:`$id in (${s.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of a.records){let p=l.$id?.value,d=Number(p);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let s of n)if(!o.has(s))throw new Error(`InternalError: update-mode snapshot is missing for record ${s}.`);return o}function Ac(e,t){if(e.from)return[];let r=new Set;for(let n of Fs(e)){if(n.tableAlias!==null&&n.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw ae(`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 ae(`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 LR(e,t){if(!e)return{};let r=Xe(e,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([n,i])=>[`APP${t}.${n}`,i])])}function ws(e,t){return new Map([...e,...[...e].map(([r,n])=>[`APP${t}.${r}`,n]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function _R(e,t,r,n,i,o,s){let a=await Mc(e,t,r,i,o);vt(e,a.evaluationTypes);let l=await Sc(e,t,r,n,i,o,s),p=await de(e.appId,r,i),d=bo(e,l,p).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=s?wi(l.map(f=>f.target)):new Map;return d.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:_m(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:a.evaluationTypes}))}var vR=fc,DR=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Sc(e,t,r,n,i,o,s){let a=await kR(e,t,r,i),l=await Mc(e,t,r,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))],d=[...new Set([t.joinKeyField,...p])],c=await UR(t,d,p,r,n,i,o),u=new Map,f=new Map;for(let N of c){if(!Object.prototype.hasOwnProperty.call(N,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=Xu(N[t.joinKeyField],a,"source");if(u.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);u.set(w,N),f.set(w,String(N[t.joinKeyField]).trim())}if(u.size===0)return[];let E=n.maxRecords??1e4,R=[...new Set([...em(e),...l.targetFields,...s??[]])],m=t.targetFilter===null?"":vr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,T=0;for(let N of mr([...f.values()],vR)){let w=`${t.targetJoinField} in (${N.map(Li).join(",")})`,L=m?`(${w}) and (${m})`:w,I=await Ce(r.getRecords,e.appId,L,R,{maxRecords:E,parallel:n.fetchParallel??1,onLimit:"error"});if(T+=I.records.length,T>E)throw new ye(`\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 D of I.records){let P=D.$id?.value;if(typeof P!="string"||P==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(P)||(y.add(P),g.push(D))}}let A=[];for(let N of g){let w=N[t.targetJoinField]?.value,L=Xu(w,a,"target");if(L===null)continue;let I=u.get(L);I!==void 0&&A.push({target:N,source:I})}return A}async function kR(e,t,r,n){if(t.targetJoinField==="$id")return"id";let i=(await J(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 UR(e,t,r,n,i,o,s){if(e.cteName!==null){let d=s?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!d.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return d.rows}let a=await de(e.appId,n,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":a.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 d of r){if(d!=="$id"&&!a.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let c=d==="$id"?"RECORD_NUMBER":a.get(d);if(DR.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${d}).`)}return(await Ce(n.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Xe(d,null))}function Xu(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=Ae(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 xs(e,t,r,n,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let s=o.candidates,a=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(r.confirm&&s.length>0&&!await r.confirm(s.length,a))throw new Q(a,s.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<s.length;u+=100){let f=await t.postRecords({app:e.appId,records:s.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=s.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=s.filter(c=>c.mode==="create"),p=s.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),d=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});d+=u.ids.length}for(let c=0;c<p.length;c+=100)await t.putRecords({app:e.appId,records:p.slice(c,c+100)});return{type:"UPSERT",insertedCount:d,updatedCount:p.length}}async function MR(e,t,r,n){if(e.applyBlocks?.length)return SR(e,t,r,n);if(e.checkGroups?.length)return fn(e,t,r,n);if(e.subtableCode)return nm(e,t,r,n);let i=await _e(e.appId,e.fields,t,n),o=await tt(e.appId,e.fields,i,t,n),s=await de(e.appId,t,n),a=Hn(e,s);_t(a.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of a){let d=await t.postRecords(p);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function xR(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:nt},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function FR(e,t,r,n,i){if(!r.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Au(e.source.sourceName,r.importSource);if(e.targets?.some(c=>c.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 _=new Set(e.targets.filter(V=>V.kind==="SUBTABLE").map(V=>V.subtableCode));if(e.replaceSubtables.some(V=>!_.has(V)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let V of e.targets.filter(re=>re.kind==="SUBTABLE"))if(!V.rowIdSourceHeader||!e.replaceSubtables.includes(V.subtableCode))throw new Error(`ArgumentError: CSV subtable ${V.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,u=await J(e.appId,t,n),f=c.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children),E=u.some(_=>f.includes(_.code)&&_.fieldType==="NUMBER")?await $e(e.appId,t,n):void 0,R=await mi(o,new Map),m=e.source.kind==="JSON"?Iu(e.source,R,c,r.maxRecords??1e4):Pu(e.source,R,c,e.replaceSubtables??[],r.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Lu(m,c,u,E,g);if(e.source.kind==="CSV")return KR(e,m,y,u,t,r,i);ps(y,e.rejectLimit);let T=[...new Set(c.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children))],A=fs(y.errors,T),N=[...T,...ds],w=y.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-w,invalid:w,mutationCandidates:y.parents.filter(_=>_.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-w,invalidRows:w,errorCount:A.length,columns:N,errors:A,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&ft(i,e.validationErrorTable,N,A,r.tempTableMaxRows??dt,new Map),e.validateOnly)return I;if(vu(m),y.errors.length>0&&!e.onErrorSkip){let _=y.errors[0];throw new Error(`DmlValidationError: ${_.code} ${_.message} (row=${_.parentRow}, field=${_.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");ft(i,e.errorTable,N,A,r.tempTableMaxRows??dt,new Map)}let D=y.parents.filter(_=>_.valid),P=new Map(u.map(_=>[_.code,_.fieldType])),h=D.map(()=>{});if(e.keyFields){for(let ge of e.keyFields)if(!e.fields.includes(ge))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${ge}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let _=e.keyFields.map(ge=>P.get(ge)==="NUMBER"),V=new Set,re=D.map(ge=>e.keyFields.map(Mt=>String(ge.top[Mt]?.value??"")));for(let ge of re){let Mt=Lt(ge,_);if(V.has(Mt))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");V.add(Mt)}let Ge=await dn(e.appId,e.keyFields,re,t,r,P);re.forEach((ge,Mt)=>{h[Mt]=pn(Ge,ge)})}let C=c.filter(_=>_.kind==="SUBTABLE").map(_=>_.subtableCode),O=new Map,v=h.filter(_=>_!==void 0);for(let _ of mr([...new Set(v)],100)){let V=await t.getRecords({app:e.appId,query:`$id in (${_.join(",")}) limit 500`,fields:["$id","$revision",...C]});for(let re of V.records){let Ge=Number(re.$id?.value),ge=Number(re.$revision?.value);Number.isFinite(Ge)&&O.set(Ge,{id:Ge,...Number.isFinite(ge)?{revision:ge}:{},record:re})}}let k=Du(D,h,O),b={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:k.length,insertedParents:k.filter(_=>_.mode==="INSERT").length,updatedParents:k.filter(_=>_.mode==="UPDATE").length,hasDeletes:k.some(_=>_.tables.some(V=>V.deleteRows>0)),parents:k.map(_=>({parentRow:_.parentRow,mode:_.mode,..._.targetId===void 0?{}:{targetId:_.targetId},tables:_.tables}))};if(k.length>0){if(!r.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await r.confirm(k.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new Q(e.keyFields?"UPDATE":"INSERT",k.length)}let U=_=>new Map(Object.entries(_).map(([V,re])=>[V,re.value])),B=_=>_u(U(_.top),new Map([..._.subtables].map(([V,re])=>[V,re.map(Ge=>({values:U(Ge)}))]))),H=k.filter(_=>_.mode==="INSERT"),Ee=k.filter(_=>_.mode==="UPDATE"),F=[];for(let _=0;_<H.length;_+=100){let V=await t.postRecords({app:e.appId,records:H.slice(_,_+100).map(B)});F.push(V.ids)}for(let _=0;_<Ee.length;_+=100)await t.putRecords({app:e.appId,records:Ee.slice(_,_+100).map(V=>({id:V.targetId,...V.revision===void 0?{}:{revision:V.revision},record:B(V)}))});return e.keyFields?{type:"UPSERT",insertedCount:F.flat().length,updatedCount:Ee.length,affectedRows:k.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}:{type:"INSERT",createdIds:F,insertedCount:F.flat().length,affectedRows:k.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return BR(e,o,t,r,n,i);let s={appId:e.appId,fields:e.fields,select:xR(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},a=e.keyFields?{type:"UPSERT_SELECT",...s,keyFields:e.keyFields}:{type:"INSERT_SELECT",...s},l={source:e.source,handle:o,cache:new Map};ki.set(a,l);let p=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(a.validateOnly){if(a.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await yc(a,t,{...r,onLimitReached:"error"},n,i,1);return a.validationErrorTable&&i&&ft(i,a.validationErrorTable,c.columns,c.errors,r.tempTableMaxRows??dt,Rr.get(c)??new Map),p(c)}if(a.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(a.type==="UPSERT_SELECT",qu(a,t,r,n,i,1));return p(c)}let d=await(a.type==="UPSERT_SELECT"?Cc(a,t,r,n,i):wc(a,t,r,n,i));return p(d)}async function KR(e,t,r,n,i,o,s){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");ku(t.records);let a=t.records.map(O=>O.recordNumberSourceValue??""),l=ms(a,e.recordNumberSourceHeader),p=[...e.replaceSubtables],d=[...new Set(n.filter(O=>!O.inSubtable&&O.fieldType==="SUBTABLE").map(O=>O.code))],c=await Re(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let O of c){let v=Number(O.$id?.value),k=Number(O.$revision?.value);if(Number.isFinite(v)){u.set(v,{id:v,...Number.isFinite(k)?{revision:k}:{},record:O});for(let b of d){let U=O[b]?.value;if(Array.isArray(U)){for(let B of U)if(B.id){let H=f.get(B.id)??[];H.push({parentId:v,table:b}),f.set(B.id,H)}}}}}let E=l.normalized.map(O=>O===null?void 0:Number(O)),R=r.parents.map((O,v)=>{let k=[...O.errors];for(let U of l.errors[v])k.push({operation:"UPDATE",parentRow:O.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[v].top});let b=E[v];return b!==void 0&&!u.has(b)&&k.push({operation:"UPDATE",parentRow:O.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${b} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...O,valid:k.length===0,errors:k}}),m=Uu(t.records,R,E,u,f),g=m.flatMap(O=>[...O.errors]),y=new Set(m.filter(O=>!O.valid).map(O=>O.parentRow)),T={...r,parents:R,errors:g,invalidParentRows:y};ps(T,e.rejectLimit);let A=m.filter(O=>O.valid),N=m.flatMap(O=>O.tables),w=(O,v)=>N.filter(k=>k.table===O).reduce((k,b)=>k+Number(b[v]),0),L=Object.fromEntries(p.map(O=>[O,{existingRows:w(O,"existingRows"),inputRows:w(O,"inputRows"),updateRows:w(O,"updateRows"),addRows:w(O,"addRows"),deleteRows:w(O,"deleteRows"),rowIdNotFound:w(O,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(O=>O.tables.some(v=>v.deleteRows>0)),totalDeleteRows:A.flatMap(O=>O.tables).reduce((O,v)=>O+v.deleteRows,0),rowIdNotFound:A.flatMap(O=>O.tables).reduce((O,v)=>O+v.rowIdNotFound,0),invalidParents:y.size,parents:A.map(O=>({parentRow:O.parentRow,mode:"UPDATE",targetId:O.targetId,tables:O.tables}))},D=[...new Set(e.targets.flatMap(O=>O.kind==="FIELD"?[O.field]:O.children))],P=fs(g,D),h=[...D,...ds];if(e.validateOnly){if(e.validationErrorTable&&!s)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&s&&ft(s,e.validationErrorTable,h,P,o.tempTableMaxRows??dt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:P.length,columns:h,errors:P,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:y.size,mutationCandidates:A.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let O=g[0];throw new Error(`DmlValidationError: ${O.code} ${O.message} (row=${O.parentRow}, field=${O.field})`)}if(e.onErrorSkip){if(!s||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");ft(s,e.errorTable,h,P,o.tempTableMaxRows??dt,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new Q("UPDATE",A.length)}let C=O=>new Map(Object.entries(O).map(([v,k])=>[v,k.value]));for(let O of A){let v=Es(C(O.top),new Map([...O.subtables].map(([k,b])=>[k,b.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:C(U.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:O.targetId,...O.revision===void 0?{}:{revision:O.revision},record:v}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function BR(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 s=await _e(e.appId,e.fields,r,i),a=await tt(e.appId,e.fields,s,r,i),l=await mi(t,new Map),p=ls(e.source,l,n.maxRecords??1e4,e.fields,s,e.recordNumberSourceHeader),d=p.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let c=ms(d,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let D=f.slice(I,I+100),P=await r.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let h of P.records){let C=h.$id?.value;typeof C=="string"&&C!==""&&u.add(C.replace(/^0+(?=\d)/,""))}}let E=new Map(s.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),m=p.rows.map((I,D)=>{let P=c.normalized[D],h=[...p.importRowErrors?.[D]??[],...c.errors[D]];return P!==null&&!u.has(P)&&h.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...P!==null&&u.has(P)?{targetId:Number(P)}:{},payload:new Map([[e.recordNumberSourceHeader,d[D]],...e.fields.map(C=>[C,I[C]??""])]),preErrors:h,record:{},evaluationRow:I,evaluationFieldTypes:R}}),g=[e.recordNumberSourceHeader,...e.fields],y=xo(m,"UPDATE",g,e.fields,s,1,a,e.checkGroups??[],!1),T=[...g,...sr],A={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:T,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:p.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&ft(o,e.validationErrorTable,T,y.errors,n.tempTableMaxRows??dt,new Map),A}if(!e.onErrorSkip&&y.invalidRows>0){let I=y.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(ft(o,e.errorTable,T,y.errors,n.tempTableMaxRows??dt,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new _i(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let N=m.filter(I=>!y.invalidRowNumbers.has(I.rowNumber));if(n.confirm&&!await n.confirm(N.length,"UPDATE"))throw new Q("UPDATE",N.length);let w=N.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<w.length;I+=100)await r.putRecords({app:e.appId,records:w.slice(I,I+100)});let L={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:p.importAudit}),L}async function $R(e,t,r,n,i,o){let s=ki.get(e);if(!s){let R=i&&i.size>0?await Ot(e.select,t,r,i,n,!0):await Et(e.select,t,r,n,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Be.get(R)}}let a=await mi(s.handle,s.cache),l=r.maxRecords??1e4,p=new Map((o??[]).map(R=>[R.code,R])),d=e.fields.map(R=>({code:R,fieldType:p.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=s.source.kind==="JSON"?as(s.source,a,d,l):ls(s.source,a,l,e.fields,o);if(s.audit=c.importAudit,s.source.kind==="JSON"||!s.source.projection)return c;let u=Mu(s.source.projection),f=new Map(i??[]);f.set(Rs,c);let E=await Ot(u,t,{...r,onLimitReached:"error"},f,n,!0);return{rows:E.rows,columns:E.columns,columnMeta:Be.get(E)}}var Ks={materialize:$R};function Tc(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 wc(e,t,r,n,i){if(e.checkGroups?.length)return fn(e,t,r,n,i);let o=await _e(e.appId,e.fields,t,n),s=await tt(e.appId,e.fields,o,t,n),a=await Ks.materialize(e,t,r,n,i,o),{rows:l,columns:p}=a;if(Tc(a),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 Q("INSERT",l.length);let d=await de(e.appId,t,n),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,g)=>{if(a.importPresence&&!a.importPresence[E]?.has(m))return;let y=f[p[g]]??"";R[m]={value:gc(y,d.get(m))}}),R});c.forEach(f=>_t([f],e.fields.filter(E=>E in f),o,s));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function Ju(e,t,r,n,i){if(e.applyBlocks?.length)return bc(e,t,r,n);if(e.checkGroups?.length&&et(e.where)){let E=await _e(e.appId,e.assignments.map(m=>m.field),t,n);await tt(e.appId,e.assignments.map(m=>m.field),E,t,n);let R=await de(e.appId,t,n);return Ac(e,R),vt(e,ws(R,e.appId)),await pr(e,t,n),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return fn(e,t,r,n,i);if(e.subtableCode)return await pr(e,t,n),im(e,t,r,n);let o=await _e(e.appId,e.assignments.map(E=>E.field),t,n),s=e.assignments.map(E=>E.field),a=await tt(e.appId,s,o,t,n);if(await pr(e,t,n),et(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return ZR(e,e.from,t,r,n,i);let l=r.maxRecords??1e4;await _c(e.assignments,t,r,n);let p=await de(e.appId,t,n);if(Yn(e)){let E=Ao(e),m=(await Ce(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:r.fetchParallel??1})).records,g=To(e,m,p);if(_t(g.flatMap(y=>y.records.map(T=>T.record)),s,o,a),r.confirm&&!await r.confirm(m.length,"UPDATE"))throw new Q("UPDATE",m.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:m.length}}let d=vr(e),u=(await ai(t.getRecords,d.app,d.query,{maxRecords:l,parallel:r.fetchParallel??1})).ids,f=Dr(e,u,p);if(_t(f.flatMap(E=>E.records.map(R=>R.record)),s,o,a),r.confirm&&!await r.confirm(u.length,"UPDATE"))throw new Q("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function bc(e,t,r,n,i=1){if(!e.validateOnly&&r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!We(e.where))return GR(e,t,r,n,i);let o=await J(e.appId,t,n),s=qe(e,o),a=qn(e,o),l=Lo(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...a]});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 d=Number(p.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);Qn(p.records[0]);let c=Ll({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:s}),u=De(o,e.assignments.map(N=>N.field)),f=wt(c.postImage,u)?await $e(e.appId,t,n):void 0,E=bt(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Pe(r.dmlMaxRows,"dmlMaxRows",rt),m=Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie),g=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let N=Vr({plans:[c],records:xr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}}),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:an(N.branches[0]),guards:ln(N.branches[0]),deletedRows:{total:c.tables.reduce((L,I)=>L+I.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:N};return Rr.set(w,Ki(E.columns,o,e.appId)),w}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let y=Xn(c,E.normalizedRecord),T=xr(y),A=Vr({plans:[y],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}});if(r.confirm){let N=Fi(A,!1);if(!await r.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:N,applyDiagnostic:A}))throw new Q("UPDATE",c.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:be(A,{successfulChunks:1,successfulParents:c.parentRows})}}async function GR(e,t,r,n,i){let o=Pe(r.dmlMaxRows,"dmlMaxRows",rt),s=Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ie),a=await J(e.appId,t,n),l=qe(e,a),p;if(vi(e))p=await YR(e,t,r,a,n);else{let f=qn(e,a),E=vr(e).query,R=o+1;p=await Re(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 d=await ri({statement:e,snapshots:p,fieldInfos:a,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:s,statementNumber:i,loadNumberPrecision:()=>$e(e.appId,t,n)});if(e.validateOnly)return JR(e,d,a);Pa("phase15b",e);let c=Vr(d);if(r.confirm){let f=Fi(c);if(!await r.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new Q("UPDATE",d.guards.parentRows)}let u=await Xl(d,t,c);return{...u,diagnostic:be(c,u)}}function vi(e){return(e.applyBlocks?.length??0)>0&&!We(e.where)&&(it(e.where)||oe(e.where))}function VR(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&vi(t)&&oe(t.where)}var WR=`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
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 le("\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 to(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Pp(t)}function ms(e){let t=e.codePointAt(0);return to(e)||t>=48&&t<=57}function Gt(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Pp(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Np=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Cp(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 Ae(e){let t=Np.exec(e.trim());if(t===null)return null;let r=Cp(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 Op(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 hs(e){let t=Ae(e);return t===null?null:Op(t)}function Lp(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 On(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let r=Lp(e,t);return e.sign===-1?r===0?0:r===-1?1:-1:r}function Ln(e,t){let r=Ae(e),n=Ae(t);if(r===null||n===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return On(r,n)}var at="__NO_FROM__";function ue(e){return{type:"NUMBER",value:Number(e),raw:e}}function V(e){let t=e.raw??String(e.value);return hs(t)??t}function ys(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 _p(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,r=[];for(let i of e.grouping.sets)for(let o of i.items){let a=_p(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 As(e){return ne(e).type!=="NONE"}function Ss(e,t){let r=ne(e);if(r.type!=="GROUPING_SETS")return null;let n=new Map,i=s=>{let l=t(s),d=n.get(l.canonicalId);if(d)return d;let p={...l,field:s};return n.set(p.canonicalId,p),p},o=r.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.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 _n(e){return`'${e.replace(/'/g,"''")}'`}function Ht(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return V(e);if(e.type==="STRING_FUNC")return no(e);let r=`${Ht(e.left)}${e.op}${Ht(e.right)}`;return t?r:`(${r})`}function Ts(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return no(e.expr);if(e.type==="ARITH_FIELD")return Ht(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ro(e.expr)}function Is(e){switch(e.type){case"STRING":return _n(e.value);case"NUMBER":return V(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>_n(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Is).join(",")})`;case"ARITH_VALUE":return Ht(e.expr);case"CASE_VALUE":return ro(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Tr(e){switch(e.type){case"BINARY":return`${Ts(e.left)} ${e.op.replace("_"," ")} ${Is(e.right)}`;case"NULL_CHECK":return`${Ts(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Tr(e.left)} ${e.op} ${Tr(e.right)})`;case"NOT":return`NOT (${Tr(e.expr)})`;case"GROUP":return`(${Tr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function ws(e){return e.type==="ARRAY"?`[${e.elements.map(t=>_n(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?Ht(e):St(e)}function ro(e){let t=e.branches.map(n=>`WHEN ${Tr(n.condition)} THEN ${ws(n.result)}`).join(" "),r=e.elseResult===null?"":` ELSE ${ws(e.elseResult)}`;return`CASE ${t}${r} END`}function Dp(e){return e.type==="AGG_REF"?Se(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?wr(e):St(e)}function no(e){return`${e.func}(${e.args.map(Dp).join(",")})`}function St(e){switch(e.type){case"STRING":return _n(e.value);case"NUMBER":return V(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return no(e);case"CASE_WHEN":return ro(e);case"SCALAR_ARITH":return`(${St(e.left)}${e.op}${St(e.right)})`;case"CONCAT_OP":return`(${St(e.left)}||${St(e.right)})`}}function vp(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Ht(e,!0):St(e)}function Se(e,t,r){let n=vp(r);return t?`${e}(DISTINCT ${n})`:`${e}(${n})`}function wr(e){return e.type==="NUMBER"?V(e):e.type==="AGG_REF"?Se(e.func,e.distinct,e.arg):`${wr(e.left)}${e.op}${wr(e.right)}`}var io=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),je="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN";function Ne(e){return io.has(e)}var bs=20,oo=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"}),Ns=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),ao=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"}),fh=Object.freeze(Object.values(ao).filter(e=>e!==void 0)),kp=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Up=new Set(kp);function Mp(e){return Up.has(e)}var Cs=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Dn=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function Ps(e){return Dn[e]!==void 0}var xp=Object.freeze([...io]),Fp=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Kp=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Bp(e){return Fp.has(e)}function $p(e){return Kp.has(e)}function Vp(e){return Number.isInteger(e)&&e>=1&&e<=31}var Eh=Object.freeze(Array.from(new Set([...Object.keys(oo),...Ns,...Object.keys(ao),...Object.keys(Cs),...Object.keys(Dn),...xp,"IF"]))),Gp=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 Wp(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Gp.has(e.kind):!0}var A=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"}},Yt=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 A("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new A("\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 A(`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>bs)throw new A(`batch exceeds ${bs} statements.`,r);let n=this.peek();if(n.kind!==";"&&n.kind!=="EOF")throw new A("\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 A("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new A("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 A("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 A(`${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 A(`${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 A("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 A("\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 A("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=Dn[n.kind];if(i==="LOGINUSER")throw new A(`${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 A(`${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 A(`${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 A(`${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 A("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 A(r,n)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new A("\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 A("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}=qe(t,this.prev());if(n)throw new A("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 A("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 A("IMPORT is not supported (capability is disabled).",t);r=this.parseImport()}else throw new A("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}=qe(r,this.prev());if(i)throw new A("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 A(`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 A(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let k of["ID","SOURCE"]){if(!this.isSoftKeyword(k))throw new A("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:_,...I?{rowIdSourceHeader:I}:{}})}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 A("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new A("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 A("ENCODING must be UTF8 or SJIS.",this.prev());p=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 A("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new A("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new A("COLUMNS is CSV-only.",this.peek());if(c)throw new A("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new A("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==at||f.joins.length>0)throw new A("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 A("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(w=>w.kind==="SUBTABLE"))throw new A("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new A(`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 A("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new A("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new A("BY NAME requires HEADER.",this.prev());if(f)throw new A("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 A("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new A("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let g,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))throw new A("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"&&(g=this.parseOnDuplicate());let h;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new A("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 A("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(w=>w.kind==="SUBTABLE");if(T.length){if(f)throw new A("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(w=>w.rowIdSourceHeader))throw new A("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(h)throw new A("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!m)throw new A("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new A("CSV subtable IMPORT requires BY NAME.",this.prev());if(!h)throw new A("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(h);for(let _ of T){if(!_.rowIdSourceHeader)throw new A(`CSV subtable ${_.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(_.subtableCode))throw new A(`IMPORT declares child columns for non-replaced subtable ${_.subtableCode}.`,this.prev())}for(let _ of w)if(!T.some(I=>I.subtableCode===_))throw new A(`REPLACE SUBTABLES target ${_} is not declared in INTO.`,this.prev())}}else if(h)throw new A("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new A("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new A("IMPORT UPDATE requires BY NAME.",this.prev());if(!m)throw new A("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(g)throw new A("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new A("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),P=this.parseDmlControlSuffix();return{type:"IMPORT",appId:n,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...h?{replaceSubtables:h}:{},...g?{keyFields:g}:{},...S,...P}}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 A("IMPORT projection cannot use subqueries.",r);if(typeof n.tableAlias=="string")throw new A("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}=qe(r,this.prev());if(i)throw new A(`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 c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new A("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:n,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}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 A("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 A("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 A("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 A("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 A("\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 A("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 A("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 A("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 A(`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 A("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 A("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&&Wp(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:at},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new A("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new A("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new A("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=n.some(m=>m.type==="WINDOW_COL"),g=n.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||g))throw new A("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new A("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,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,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 A("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 A("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 A("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 A("_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 Cs[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new A(`${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 A("\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"?ue(`-${V(r)}`):{type:"AGG_ARITH",left:ue("0"),op:"-",right:r}}if(this.peek().kind==="NUMBER"){let r=this.advance();return ue(r.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new A("\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 A("\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 A("\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 A("\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 ue(`${r.kind==="-"?"-":"+"}${V(n)}`);if(r.kind==="+")throw new A("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",r);return{type:"SCALAR_ARITH",left:ue("0"),op:"-",right:n}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};if(r.kind==="NUMBER")return this.advance(),ue(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 A("\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 A(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 A("\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 ue(`+${r.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new A("\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"?ue(`-${V(r)}`):{type:"ARITH",left:ue("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ue(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 A("\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 A("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 A("\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=oo[this.peek().kind];if(r==="LEFT"||r==="RIGHT")return r}let t=oo[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(Ns.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 A("\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=Hp(r);if(n===null)throw new A(`\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 ao[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 A("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);let i;if(this.consume("*")){if(!Mp(t))throw new A(`${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 A("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 A){if(n.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new A("\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 A("\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 A("\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 A("\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}=qe(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 A("\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 A("\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 A("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 A("\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 A("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 A("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new A("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 A("\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:Se(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==="("&&Ne(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 A("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 A("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 A("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(!Bp(l))throw new A("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:r,args:{kind:"FROM_TODAY",offset:a,offsetText:d,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(!$p(o))throw new A(`${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(!Vp(o))throw new A(`${r} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);n=o}else throw new A(`${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 A(`\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(Ps(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Dn[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 A("\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 A("\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\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059";do{let n=this.advance();if(n.kind==="STRING")t.push({type:"STRING",value:n.value});else if(n.kind==="NUMBER")t.push(ue(n.value));else if(n.kind==="-"||n.kind==="+"){let i=this.peek();if(i.kind!=="NUMBER")throw new A(r,n);this.advance();let o=n.kind==="-"?"-":"+";t.push(ue(`${o}${i.value}`))}else if(n.kind==="VARIABLE")t.push({type:"VARIABLE",name:n.value.slice(1).toLowerCase()});else throw new A(r,n)}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 A("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 A("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 A("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 A("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 A("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 A("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let r=ys(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 A("B65: GROUPING() requires exactly one physical field argument.",this.peek());let r=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new A("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 A("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new A("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}=qe(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new A("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n)throw new A("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:r,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new A("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new A("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 A("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 A("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 A("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 A("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return n?{type:"INSERT",appId:r,subtableCode:n,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:r,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=qe(t,this.prev());if(n)throw new A("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new A("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 A("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:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new A("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 A("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new A("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,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new A("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 A("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 A(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,n);if(!this.isApplyBlockStart())throw new A(`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 A("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(ue(`${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(ue(n.value));else throw new A("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 A(`\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}=qe(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(n&&i.some(u=>u.value.type==="STRING_FUNC"))throw new A("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new A("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new A("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new A("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${r}`.toLowerCase())throw new A(`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:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new A("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 A("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new A("\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 A("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let u=this.decomposeUpdateFromWhere(s,r,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new A("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new A("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 A("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 A("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new A("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&d.checkGroups)throw new A("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n&&(p.validateOnly||p.onErrorSkip))throw new A("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:r,assignments:i,where:s,from:o,...c,...d,...p}:n?{type:"UPDATE",appId:r,subtableCode:n,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:r,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new A("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 A("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 A("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 A("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 A("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 A("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new A("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 A("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 A("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 A("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 A("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 A("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 A("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 A("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 A("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 A("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 A("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new A("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 A("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 A("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 A("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 A("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 A("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 A(`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 A("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 A("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 A("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((p,c)=>{let u=this.matchUpdateFromJoin(p,r,n);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new A("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],n))throw new A("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],r))throw new A(`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 d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,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 A("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(Ps(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 A("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 A("\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}=qe(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new A("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}=qe(r,this.prev());if(!i)throw new A("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 A("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 A("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 A("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 A(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 A("\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 A("\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 A("\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 A("\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 A(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new A("\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"||Cn.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new A("\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 Hp(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 qe(e,t){let r=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!r)throw new A(`\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 Os(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var Yp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function ce(e,t){for(let r of t)e.add(r)}function vn(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"&&Yp.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=>vn(i,t)):vn(n,t))}function Tt(e){let t=new Set;if(Os(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":ce(t,qt(e));break;case"UNION":ce(t,Ls(e));break;case"WITH":for(let r of e.ctes)ce(t,Tt(r.query));ce(t,Tt(e.query));break;case"CREATE_TEMP_TABLE":ce(t,Tt(e.query));break;default:break}return vn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function Ls(e){let t=e.left.type==="SELECT"?qt(e.left):Ls(e.left);return ce(t,qt(e.right)),t}function qt(e){let t=new Set;ne(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"&&ce(t,qt(r.query)),r.type==="CASE_COL")for(let n of r.expr.branches)ce(t,jt(n.condition));return ce(t,jt(e.where)),ce(t,jt(e.having)),vn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function jt(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&ce(t,qt(e.right.query));break;case"LOGICAL":ce(t,jt(e.left)),ce(t,jt(e.right));break;case"NOT":case"GROUP":ce(t,jt(e.expr));break;case"EXISTS":ce(t,qt(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var jp=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})}),uo=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})}),Ir="v1";function K(e){throw new Error(`UnsupportedError: APPLY ${Ir} scope does not support ${e}`)}function qp(e,t){let r=Ir;Ir=e;try{return t()}finally{Ir=r}}function zp(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 Un(e,t){return qp(e,()=>Xp(t,jp[e]))}function Xp(e,t){let r=zp(e);if(r===null)return;if(r.type==="UPSERT"){Qp(r,t);return}let n=r.applyBlocks;if(so(n),!t.multipleBlocks&&n.length!==1&&K("multiple APPLY blocks in this phase"),r.type==="INSERT"){Zp(r,n,t);return}let i=r;i.subtableCode&&K("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&K("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&K("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&K("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&K("REJECT LIMIT in this phase"),ed(i.where,t.multipleParents),Ds(n,t)}function Ds(e,t){for(let r of e){for(let n of r.operations)t.operations.has(n.kind)||K(`${n.kind} in this phase`);vs(r);for(let n of r.operations){if(n.kind==="APPEND"){for(let i of n.fields)kn(i,"APPEND targets");Xt(n.values,"APPEND values");continue}if(n.kind==="REMOVE"){!t.expectRows&&n.expectRows&&K("EXPECT ROWS in this phase"),n.selector.kind==="WHERE"&&_s(n.selector.where,t.idxSelectors);continue}if(n.kind==="PATCH"){!t.expectRows&&n.expectRows&&K("EXPECT ROWS in this phase"),n.assignments.length===0&&K("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(".")&&K("parent or qualified PATCH targets in this phase")}Xt(n.assignments,"PATCH assignments"),n.selector.kind==="WHERE"&&_s(n.selector.where,t.idxSelectors)}}}}function vs(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 Jp=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ks(e,t){if(vs(e),e.targetKind==="MULTI_VALUE"){if(!Jp.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 so(e){let t=new Set;for(let r of e){if(t.has(r.field))throw new Error(`ArgumentError: APPLY ${Ir} scope allows only one block for table ${r.field}`);t.add(r.field)}}function Qp(e,t){t.upsert||K("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&K("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&K("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&K("REJECT LIMIT in this phase");let r=e.onInsertApplyBlocks??[],n=e.onUpdateApplyBlocks??[];so(r),so(n),!t.multipleBlocks&&(r.length>1||n.length>1)&&K("multiple APPLY blocks in this phase"),Us(r,"UPSERT ON INSERT"),Ds(n,{...t,idxSelectors:!1,expectRows:!1})}function Us(e,t){for(let r of e)for(let n of r.operations){n.kind!=="APPEND"&&K(`${n.kind} for ${t} in this phase`);for(let i of n.fields)kn(i,"APPEND targets");Xt(n.values,"APPEND values")}}function Zp(e,t,r){r.insert||K("INSERT in this phase"),e.subtableCode&&K("a subtable INSERT as the parent statement in this phase"),!r.check&&e.checkGroups?.length&&K("CHECK in this phase"),!r.onErrorSkip&&e.onErrorSkip&&K("ON ERROR SKIP in this phase"),!r.rejectLimit&&e.rejectLimit!=null&&K("REJECT LIMIT in this phase"),Us(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 Ms(e,t){let r=uo[e],n="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!n&&xs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${zt(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 ${zt(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 ${zt(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!r.multipleParentPreflight&&!ze(t.where))throw new Error(`UnsupportedError: APPLY ${zt(e)} execution does not support multiple-parent APPLY`)}function xs(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 Fs(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ze(t.where))&&!uo[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${zt(e)} public multiple-parent write is not connected`)}function Jt(e){if(!uo[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${zt(e)} internal prepared write is not available`)}function zt(e){return`Phase ${e.slice(5)}`}function ed(e,t){ze(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&K("a parent $id that is not a positive safe integer in this phase"),t||K("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),lo(e,t))}function lo(e,t){if(Array.isArray(e)){for(let o of e)lo(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")&&K("KLIKE in parent WHERE"),(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="SUBQUERY_IN_LIST"||n==="EXISTS")&&K("subqueries in parent WHERE"),(n==="WINDOW_COL"||n==="AGGREGATE"||n==="AGG_REF"||n==="AGG_ARITH"||n==="ARITH_AGG_COL")&&K("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)&&K("aggregate or window expressions in parent WHERE"),n==="KINTONE_FUNC"&&!(typeof r.name=="string"&&Ne(r.name))&&K("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(r))lo(o,t)}function _s(e,t){Xt(e,"child row selectors",t)}function Xt(e,t,r=!1){if(Array.isArray(e)){for(let s of e)Xt(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")&&K(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&K(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&K(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof n.name=="string"&&Ne(n.name))&&K(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=n.tableAlias,l=n.field;s!=null&&K(`qualified or parent field references in ${t}`),kn(l,t,r)}if(i==="FIELD_REF"&&kn(n.field,t,r),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(n))Xt(s,t,r)}function kn(e,t,r=!1){if(typeof e!="string")return;let n=e.toLowerCase();n==="_idx"&&!r&&K(`_idx in ${t}`),(n.startsWith("_p.")||n.includes("."))&&K(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&K(`aggregate expressions in ${t}`)}function br(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=td(e.op);if(t===null)throw new J(`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:br(e.left),right:br(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:br(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function td(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 Ks(e){return e.includes("%")||e.includes("_")}function Pr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Qt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function st(e){if(e===null)return!1;if(Pr(e))return!0;switch(e.type){case"LOGICAL":return st(e.left)||st(e.right);case"NOT":case"GROUP":return st(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function oe(e){if(e===null)return!1;if(Qt(e))return!0;switch(e.type){case"LOGICAL":return oe(e.left)||oe(e.right);case"NOT":case"GROUP":return oe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function W(e){switch(e.type){case"BINARY":return rd(e);case"NULL_CHECK":return id(e);case"LOGICAL":return od(e);case"NOT":return ad(e);case"GROUP":return sd(e);case"EXISTS":throw new J("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new J("internal error: BOOLEAN predicate reached kintone query conversion")}}function rd(e){if(Pr(e))throw new J("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=$s(e.left),r=nd(e.op),n=ld(e.right,e.op);return`${t} ${r} ${n}`}function nd(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 id(e){let t=$s(e.field);return e.not?`${t} != ""`:`${t} = ""`}function od(e){let t=W(e.left),r=W(e.right),n=e.op==="AND"?"and":"or",i=Bs(e.left)?`(${t})`:t,o=Bs(e.right)?`(${r})`:r;return`${i} ${n} ${o}`}function ad(e){return W(br(e.expr))}function sd(e){return`(${W(e.expr)})`}function $s(e){if(e.type==="FUNC_FIELD")throw new J(`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 J("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 J("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 J("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return gd(e.field)}function ld(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 Vs(e);case"NUMBER":return V(e);case"KINTONE_FUNC":return ud(e);case"IN_LIST":return Rd(e,t);case"ARITH_VALUE":throw new J("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 J("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 J("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new J("\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 J("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Vs(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ud(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return cd(e)}function cd(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Nr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!fd(e.args.offset,e.args.offsetText)||!pd.has(e.args.unit)?Nr():`${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&&!dd.has(e.args.weekday)?Nr():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"||!Ed(e.args.day)?Nr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Nr()}var pd=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),dd=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function fd(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Ed(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Nr(){throw new J("internal error: invalid relative date function AST reached kintone query conversion")}function Rd(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new J("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return md(e.values),`(${e.values.map(n=>n.type==="STRING"?Vs(n):V(n)).join(",")})`}function md(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new J(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function gd(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Bs(e){return e.type==="LOGICAL"}var J=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function hd(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||ne(e).type!=="NONE"||e.distinct||hd(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&js(t.expr)||t.type==="SCALAR_VALUE_COL"&&Or(t.expr))||lt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function lt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Gs(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Pr(e);case"NULL_CHECK":return Gs(e.field);case"LOGICAL":return lt(e.left)||lt(e.right);case"NOT":case"GROUP":return lt(e.expr);case"EXISTS":return!0}}function Gs(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Mn(e){let t=[],n=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(W(e.where)),e.orderBy.length>0){let i=e.orderBy.map(yd).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:Ad(e.columns),totalCount:!1}}function Ys(e,t){let r=[];return e.where!==null&&e.joins.length===0&&!lt(e.where)&&r.push(W(e.where)),{app:t,query:r.join(" "),fields:[]}}function wt(e,t){let n=Id(e).get(t);if(!n)return[];if(n.allFields)return[];let i=new Set(n.fields);return n.table.subtableCode&&i.add(n.table.subtableCode),i.size===0&&i.add("$id"),[...i]}function yd(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 Ad(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(po(n.field)):n.type==="ARITH_COL"?Cr(n.expr,r):n.type==="STRFUNC_COL"?fo(n.expr,r):n.type==="SCALAR_VALUE_COL"&&Zt(n.expr,r);return[...new Set(r)]}function Sd(e,t){Cr(e.left,t),Cr(e.right,t)}function Cr(e,t){e.type==="FIELD_REF"?t.push(po(e.field)):e.type==="ARITH"?Sd(e,t):e.type==="STRING_FUNC"&&fo(e,t)}function po(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function fo(e,t){for(let r of e.args)Td(r,t)}function Td(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){co(e,t);return}Zt(e,t)}function Zt(e,t){if(e.type==="FIELD"){t.push(po(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){fo(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zt(e.left,t),Zt(e.right,t);return}if(e.type==="CASE_WHEN"){for(let r of e.branches)Ws(r.result,t);e.elseResult&&Ws(e.elseResult,t)}}function Ws(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Cr(e,t);return}Zt(e,t)}}function co(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&wd(e.arg,t);return}e.type==="AGG_ARITH"&&(co(e.left,t),co(e.right,t))}function wd(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Cr(e,t):Zt(e,t)}function js(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Or(t))}function Or(e){return e.type==="STRING_FUNC"?js(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Or(e.left)||Or(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Hs(t.result))||e.elseResult!==null&&Hs(e.elseResult):!1}function Hs(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Or(e)}function Id(e){let t=[e.from,...e.joins.map(y=>y.table)].filter(y=>y.cteName===null),r=new Map;for(let y of t)r.set(y,{table:y,allFields:!1,fields:new Set});if(r.size===0)return r;let n=t[0]??null,i=t.find(y=>!!y.subtableCode)??null,o=new Map;for(let y of t)y.alias&&o.set(y.alias,y),y.subtableCode||(o.set(`APP${y.appId}`,y),o.set(`app${y.appId}`,y));let a=bd(e.columns),s=y=>{let O=r.get(y);O&&(O.allFields=!0,O.fields.clear())},l=()=>{for(let y of t)s(y)},d=()=>{for(let y of t)y.subtableCode&&s(y)},p=(y,O)=>{let L=r.get(y);if(!(!L||L.allFields)){if(y.subtableCode){if(O.startsWith("_p.")){let N=O.slice(3);N&&N!=="*"&&L.fields.add(N);return}return void 0}O&&L.fields.add(O)}},c=(y,O="select")=>{if(!y||y==="*")return;if(y==="_p.*"){d();return}if(y.endsWith(".*")){let N=y.slice(0,-2);if(!N){l();return}if(N==="_p"){d();return}let v=o.get(N);if(v){s(v);return}return}if((O==="orderBy"||O==="having"||O==="groupBy")&&a.has(y)||(O==="orderBy"||O==="having"||O==="groupBy")&&Pd(y))return;let L=y.indexOf(".");if(L>0){let N=y.slice(0,L),v=y.slice(L+1);if(N==="_p"){i&&p(i,`_p.${v}`);return}let b=o.get(N);if(b){p(b,v);return}}n&&p(n,y)},u=(y,O,L="select")=>{if(O){if(O==="_p"){i&&p(i,`_p.${y}`);return}let N=o.get(O);if(N){p(N,y);return}}c(y,L)},f=(y,O="select")=>{if(y.type==="FIELD_REF"){c(y.field,O);return}if(y.type==="ARITH"){f(y.left,O),f(y.right,O);return}if(y.type==="STRING_FUNC"){g(y,O);return}},E=(y,O="select")=>{if(y.type==="AGG_REF"){y.arg.type!=="WILDCARD"&&h(y.arg,O);return}y.type==="AGG_ARITH"&&(E(y.left,O),E(y.right,O))},R=(y,O="select")=>{if(y.type==="AGG_REF"||y.type==="AGG_ARITH"){E(y,O);return}m(y,O)},g=(y,O="select")=>{for(let L of y.args)R(L,O)},m=(y,O="select")=>{if(y.type==="FIELD"){u(y.field,y.tableAlias,O);return}if(y.type==="STRING_FUNC"){g(y,O);return}if(y.type==="SCALAR_ARITH"||y.type==="CONCAT_OP"){m(y.left,O),m(y.right,O);return}y.type==="CASE_WHEN"&&S(y,O)},h=(y,O="select")=>{if(y.type==="FIELD_REF"||y.type==="ARITH"){f(y,O);return}m(y,O)},T=(y,O="select")=>{if(y.type!=="ARRAY"){if(y.type==="FIELD_REF"||y.type==="ARITH"){f(y,O);return}m(y,O)}},S=(y,O="select")=>{for(let L of y.branches)_(L.condition,O),T(L.result,O);y.elseResult&&T(y.elseResult,O)},P=(y,O="select")=>{if(y.type==="FIELD"){u(y.field,y.tableAlias,O);return}if(y.type==="FUNC_FIELD"){g(y.expr,O);return}if(y.type==="ARITH_FIELD"){f(y.expr,O);return}y.type!=="GROUPING_FIELD"&&S(y.expr,O)},w=(y,O="select")=>{if(y.type==="ARITH_VALUE"){f(y.expr,O);return}if(y.type==="CASE_VALUE"){S(y.expr,O);return}},_=(y,O="where")=>{if(y)switch(y.type){case"BINARY":P(y.left,O),w(y.right,O);return;case"NULL_CHECK":P(y.field,O);return;case"LOGICAL":_(y.left,O),_(y.right,O);return;case"NOT":case"GROUP":_(y.expr,O);return;case"EXISTS":case"BOOLEAN":return}},I=y=>{if(y.type==="FIELD_NAME"){c(y.name,"groupBy");return}if(y.type==="ARITH_KEY"){f(y.expr,"groupBy");return}g(y.expr,"groupBy")},k=(y,O="orderBy")=>{if(y.type==="FIELD_NAME"){c(y.name,O);return}if(y.type==="ARITH_KEY"){f(y.expr,O);return}y.type!=="GROUPING_KEY"&&g(y.expr,O)};for(let y of e.columns)switch(y.type){case"WILDCARD":l();break;case"PARENT_WILDCARD":d();break;case"FIELD":c(y.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${y.name}`);case"AGGREGATE":y.arg.type!=="WILDCARD"&&h(y.arg,"select");break;case"ARITH_AGG_COL":E(y.expr,"select");break;case"ARITH_COL":f(y.expr,"select");break;case"CASE_COL":S(y.expr,"select");break;case"STRFUNC_COL":g(y.expr,"select");break;case"SCALAR_VALUE_COL":m(y.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let O of y.partitionBy)u(O.field,O.tableAlias,"select");for(let O of y.orderBy)k(O.key,"select");break}for(let y of e.joins)u(y.on.left.field,y.on.left.tableAlias,"where"),u(y.on.right.field,y.on.right.tableAlias,"where");_(e.where,"where");let C=ne(e);if(C.type==="PLAIN")for(let y of C.allItems)I(y);else if(C.type==="GROUPING_SETS")for(let y of C.allItems)u(y.field,y.tableAlias,"select");_(e.having,"having");for(let y of e.orderBy)k(y.key);return r}function bd(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(Se(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 Pd(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function ut(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(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||As(r)||r.distinct?!1:!r.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")}function ct(e){let t=e.ctes[0].query,r=e.query,n=xn(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 xn(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:qs(e.left,t)};case"NULL_CHECK":return{...e,field:qs(e.field,t)};case"LOGICAL":return{...e,left:xn(e.left,t),right:xn(e.right,t)};case"NOT":case"GROUP":return{...e,expr:xn(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function qs(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function er(e,t={}){return Lr(e,r=>Nd(r,t))}function _r(e,t={}){return Lr(e,r=>zs(r,t)||Xs(r,t))}function Lr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=Lr(e.left,t),n=Lr(e.right,t);return r&&n?{...e,left:r,right:n}:r??n??null}case"GROUP":return Lr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Nd(e,t){return Cd(e,t)||_d(e,t)?!0:zs(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":Ld(e,t)}function Cd(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Eo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Od=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Ld(e,t){if(!Xs(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||!Od.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 _d(e,t){return!Dd(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Dd(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 zs(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Eo(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(V(e.right))&&Number.isSafeInteger(e.right.value)}function Xs(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Eo(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 Eo(e,t){let r=t.tableAlias??null;return e.tableAlias===r?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Ro(e,t={}){let r=e!==null&&t.extractCondition!==!1?er(e,t):null,n=new Set;tr(r,n);let i=new Set;return tr(e,i),{condition:r,appliedKlikes:n,allKlikes:[...i]}}function rr(e,t={}){let n={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=Ro(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 p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=er(e.where,{...n,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())tr(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function mo(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function tr(e,t){if(e!==null){if(Qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":tr(e.left,t),tr(e.right,t);return;case"NOT":case"GROUP":tr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var ie=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function or(e){Js(e)}function ho(e){if(mo(e).length>0)throw new ie("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 Js(e){switch(e.type){case"SELECT":ir(e);return;case"UNION":Ao(e);return;case"WITH":Qs(e);return;case"EXPLAIN":Js(e.query);return;case"CREATE_TEMP_TABLE":yo(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":nr(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ze(e.where)&&oe(e.where)){go(e.where),nr(e);return}if(pt(e)&&e.subtableCode)throw new ie("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&&oe(e.where)&&!kd(e,e.where)){go(e.where),nr(e);return}if(pt(e))throw new ie("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(pt(e)&&e.subtableCode)throw new ie("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&&oe(e.where)){go(e.where),nr(e);return}if(pt(e))throw new ie("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(pt(e))throw new ie("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(pt(e))throw new ie("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(pt(e))throw new ie("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(pt(e))throw new ie("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 go(e){Kn(e,t=>{if(!Qt(t))return;let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new ie("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 ie("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 yo(e){e.type==="SELECT"?ir(e):e.type==="UNION"?Ao(e):Qs(e)}function Ao(e){yo(e.left),ir(e.right)}function Qs(e){if(ut(e)){ir(ct(e));return}for(let t of e.ctes)t.query.type==="SELECT"?ir(t.query):t.query.type==="UNION"&&Ao(t.query);yo(e.query)}function ir(e){if(vd(e),oe(e.where)&&!(Ce(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(r=>r.table.cteName===null))){let r=rr(e,{allowUnresolvedVariables:!0});if(mo(r).length===0){nr(e);return}throw new ie("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")}nr(e)}function vd(e){Kn(e,t=>{if(!Qt(t))return;if(!Fn(e.where,t))throw new ie("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 ie("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 ie("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 nr(e){Bn(e,t=>{t.type==="SELECT"&&ir(t)},!0)}function pt(e){let t=!1;return Bn(e,r=>{r.type==="BINARY"&&(r.op==="KLIKE"||r.op==="NOT_KLIKE")&&(t=!0)}),t}function kd(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 Fn(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Fn(e.left,t)||Fn(e.right,t);case"NOT":case"GROUP":return Fn(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Kn(e,t){if(Array.isArray(e)){for(let n of e)Kn(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&&Ud(n)||Kn(n,t)}function Bn(e,t,r=!1){if(Array.isArray(e)){for(let i of e)Bn(i,t);return}if(e===null||typeof e!="object")return;let n=e;r||t(n);for(let i of Object.values(n))Bn(i,t)}function Ud(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Zs=Symbol("ksql.groupingRowMeta"),el=new WeakMap;function tl(e,t){return Object.defineProperty(e,Zs,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Md(e){return e[Zs]}function xd(e){return Md(e)?.includedCanonicalIds}function rl(e,t){el.set(e,t)}function ar(e,t){let r=xd(t);if(!r)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let n=el.get(e);if(!n)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return r.has(n)?"0":"1"}var il=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 Gn(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function wo(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 Te(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Te(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=>Te(n,t))}}function Wn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Wn(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="AGGREGATE"||r.type==="AGG_REF"){Te(r.arg,t);return}Object.values(r).forEach(n=>Wn(n,t))}}function Dr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Dr(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(wo(r.field));return}Object.values(r).forEach(i=>Dr(i,t))}}function To(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(To);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(To)}function Fd(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"?To(e):!1}function Kd(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function nl(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 Bd(e,t,r){let n=t(e.field);if(!n.physical)throw new Error(`ArgumentError: B65 grouping reference ${Gn(e.field)} must resolve to a physical APP field.`);if(!r.has(n.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Gn(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);rl(e,n.canonicalId)}function So(e,t,r,n){let i=t(e);if(!i.physical||!r.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Gn(e)} in ${n} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function $d(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[wo(e.name)];let t=[];return Dr(e,t),t}function ol(e){let t=ne(e),r=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Te(i,r);Te(e.having,r),Te(e.orderBy,r);let n=[];Te(e.where,n),Te(e.joins,n),Wn(e.columns,n),Wn(e.having,n);for(let i of e.columns)i.type==="WINDOW_COL"&&Te(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 al(e,t,r=()=>{}){ol(e);let n=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&Te(p,i);if(Te(e.having,i),Te(e.orderBy,i),n.type!=="GROUPING_SETS")return null;let o=Ss(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${Gn(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}r({expandedSetCount:n.sets.length,canonicalItemCount:a.size});for(let p of i)Bd(p,t,a);let l=Kd(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(wo(p.field)):Dr(p,c);for(let u of c)So(u,t,a,"SELECT")}if(e.having){let p=[];Dr(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||nl(c)||So(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of $d(p.key))c.tableAlias===null&&l.has(c.field)||nl(c)||So(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!Fd(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Vd=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Gd=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function z(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":Gd.has(e.fieldType)?t="option":Vd.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 x(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function sr(e,t,r){return{...e,source:{appId:t,fieldCode:r}}}function Hn(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 dt(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 Wd(e,t){return e<t?-1:e>t?1:0}function sl(e){if(e==="")return{band:0};let t=Ae(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 Hd(e,t){let r=sl(e),n=sl(t);return r.band!==n.band?r.band<n.band?-1:1:r.band===2&&n.band===2?On(r.value,n.value):r.band===5&&n.band===5?dt(r.value,n.value):0}function ll(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 Yd(e,t,r){let n=ll(e,r),i=ll(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=dt(n.normalizedId,i.normalizedId);return o!==0?o:dt(n.display,i.display)}function jd(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 ul(e,t){let r=t.optionOrder??new Map,i=[...new Set(jd(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(cl),i}function cl(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:dt(e.label,t.label)}function qd(e,t,r){let n=ul(e,r),i=ul(t,r),o=Math.min(n.length,i.length);for(let a=0;a<o;a++){let s=cl(n[a],i[a]);if(s!==0)return s}return n.length<i.length?-1:n.length>i.length?1:0}function It(e,t,r){switch(r.compareMode){case"string":return dt(e,t);case"number":return Hd(e,t);case"recordNumber":return Yd(e,t,r.fieldType==="RECORD_NUMBER");case"option":return qd(e,t,r);case"unsupported":throw new Error(`ArgumentError: values of type ${r.fieldType} cannot be compared.`)}}function bt(e,t,r,n=x("string")){let i=It(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 pl(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=Ae(o),l=Ae(a),d=s!==null&&l!==null?On(s,l):Wd(Number(o),Number(a));if(d!==0)return d}return dt(o,a)};return r.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ee(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Xe(t,e.field));if(e.type==="STRING_FUNC")return Number(te(e,t));let r=ee(e.left,t),n=ee(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 ae(e,t,r,n){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Xe(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return te(e,t,r,n);case"CASE_WHEN":return we(e,t,r,n);case"CONCAT_OP":return te({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,r,n);case"SCALAR_ARITH":{let i=Number(ae(e.left,t,r,n)),o=Number(ae(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 ft(e,t,r,n){switch(e.type){case"CASE_WHEN":return Rl(e,t,r,n);case"SCALAR_ARITH":{let i=ft(e.left,t,r,n),o=ft(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=ft(e.left,t,r,n),o=ft(e.right,t,r,n);return`${i??""}${o??""}`}default:return ae(e,t,r,n)}}function Yn(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 zd(e){return e>=55296&&e<=56319}function Xd(e){return e>=56320&&e<=57343}function qn(e,t){return t>0&&t<e.length&&zd(e.charCodeAt(t-1))&&Xd(e.charCodeAt(t))}function dl(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 bo(e,t){let r=Math.min(Math.max(0,t),e.length);return qn(e,r)&&(r-=1),e.slice(0,r)}function Jd(e,t){let r=Math.max(0,e.length-t);return qn(e,r)&&(r+=1),e.slice(r)}function Qd(e,t,r){let n=dl(t,e.length),i=dl(r,e.length);return i<=n?"":(qn(e,n)&&(n+=1),qn(e,i)&&(i-=1),e.slice(n,Math.max(n,i)))}function Zd(e,t){let r=e.repeat(Math.ceil(t/e.length));return bo(r,t)}var ef=200,vr=new Map;function tf(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 Io(e,t,r=!1){let n=tf(t)+(r?"g":""),i=`${e}\0${n}`,o=vr.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(vr.size>=ef){let s=vr.keys().next().value;s!==void 0&&vr.delete(s)}return vr.set(i,a),a}function rf(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function nf(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 of(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 p=Number(s+l);if(p>=1&&p<=r.length){i+=r[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=r.length){i+=r[d-1]??"",o+=1;continue}}i+="$"}return i}function af(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,d=a.length-(l?3:2),p=a.slice(0,d);return of(r,o,p,l?s:void 0)})}function te(e,t,r,n){let i=e.args.map(o=>Ef(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 pe("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 Qd(o,a,s!==void 0?a+s:o.length)}case"LEFT":{pe("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":bo(o,a)}case"RIGHT":{pe("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Jd(o,a)}case"INSTR":return pe("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{pe(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 bo(o,a);let s=i[2]??" ";if(s==="")return o;let l=Zd(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return pe(e.func,i,2),pl(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 pe("REGEXP_LIKE",i,2,3),Io(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{pe("REGEXP_REPLACE",i,3,5),rf(i[2]);let o=nf(i[4]),a=Io(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):af(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return pe("REGEXP_SUBSTR",i,2,3),Io(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{pe("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Yn("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Yn("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Yn("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return pe("TRUNCATE",i,1,2),Yn("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 df(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 pe(e.func,i,1,1),jn(i[0])?String(Po(i[0])+1):"";case"QUARTER":return pe(e.func,i,1,1),jn(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return pe(e.func,i,1,1),jn(i[0])?String(El(i[0])):"";case"DATE_FORMAT":return lf(i[0]??"",i[1]??"");case"DATEDIFF":return uf(i[0]??"",i[1]??"");case"DATE_ADD":return cf(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return pe("LAST_DAY",i,1,1),pf(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 pe(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 kr(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 zn(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 jn(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let r=zn(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 Po(e){return zn(e).getUTCDay()}function fl(e){let t=zn(e),r=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-r),t}function sf(e){return fl(e).getUTCFullYear()}function El(e){let t=fl(e),r=t.getUTCFullYear(),n=zn(`${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 lf(e,t){if(!e||e.length<10)return"";let{y:r,mo:n,d:i,h:o,mi:a,sec:s}=kr(e),l=jn(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){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(Po(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Po(e)]:"";case"%v":return l?String(El(e)).padStart(2,"0"):"";case"%G":return l?String(sf(e)).padStart(4,"0"):"";default:return d}})}function uf(e,t){if(e.length<10||t.length<10)return"0";let r=kr(e),n=kr(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 cf(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}=kr(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"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function pf(e){if(!e||e.length<10)return e;let{y:t,mo:r}=kr(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 df(e,t){if(/^-?\d+$/.test(t.trim()))return ff(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,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=n?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return r?E+"%":E}function ff(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 Ef(e,t,r,n){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?V(e):String(ae(e,t,r,n))}function Xe(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 q(e,t,r,n,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Rf(e,t,r,n,i);case"NULL_CHECK":return Sf(e,t);case"LOGICAL":return Tf(e,t,r,n,i);case"NOT":return!q(e.expr,t,r,n,i);case"GROUP":return q(e.expr,t,r,n,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Rf(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=wl(e.left,t,r,i),a=e.left.type==="FIELD"?r?.(e.left):void 0,s=gf(e.left,a,i);return mf(e.op,o,e.right,t,a,r,s,i)}function mf(e,t,r,n,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(r.type==="IN_LIST"&&(Af(r.values),d=new Set(r.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?V(c):String(c.value):c.value))),r.type==="SUBQUERY_IN_LIST"&&(d=r.resolved),d===null)return e==="NOT_IN";let p=yf(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=No(r,n,o);return Tl(t,d)}if(e==="NOT_LIKE"){let d=No(r,n,o);return!Tl(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=No(r,n,o,s);return bt(e,t,l,a)}var ml=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function gf(e,t,r){if(e.type==="FIELD")return r?.(e)??(t?z({fieldType:t}):x("string"));if(e.type==="ARITH_FIELD")return x("number");if(e.type==="FUNC_FIELD")return x(ml.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(ml.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)??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 gl=new Set(["CHECK_BOX","MULTI_SELECT"]),hl=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),hf=new Set(["CREATOR","MODIFIER"]);function yf(e,t,r){let n=()=>t.has(e);if(r===void 0)return n();if(r==="NUMBER"){let o=x("number");return[...t].some(a=>bt("=",e,a,o))}let i;if(gl.has(r)||hl.has(r)||hf.has(r))try{i=JSON.parse(e)}catch{return n()}else return n();return gl.has(r)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):hl.has(r)?!Array.isArray(i)||!i.every(yl)?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):yl(i)?t.has(i.code):n()}function yl(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Af(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`)}function Sf(e,t){let r=wl(e.field,t);return e.not?r!=="":r===""}function Tf(e,t,r,n,i){return e.op==="AND"?q(e.left,t,r,n,i)&&q(e.right,t,r,n,i):q(e.left,t,r,n,i)||q(e.right,t,r,n,i)}function wl(e,t,r,n){if(e.type==="FUNC_FIELD")return te(e.expr,t);if(e.type==="ARITH_FIELD")return String(ee(e.expr,t));if(e.type==="CASE_FIELD")return we(e.expr,t,r,n);if(e.type==="GROUPING_FIELD")return ar(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Xe(t,i)}function No(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 V(e);case"KINTONE_FUNC":return wf(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?Xe(t,e.expr.field):e.expr.type==="STRING_FUNC"?te(e.expr,t):String(ee(e.expr,t));case"CASE_VALUE":return we(e.expr,t,r,n);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function we(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return Sl(i.result,t,r,n);return e.elseResult!==null?Sl(e.elseResult,t,r,n):""}function Rl(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return Al(i.result,t,r,n);return e.elseResult===null?null:Al(e.elseResult,t,r,n)}function Al(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"?ee(e,t):ft(e,t,r,n)}function Sl(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(ee(e,t)):String(ae(e,t,r,n))}function Il(e){let t=new Date;switch(e){case"TODAY":{let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${r}-${n}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":return""}}function wf(e){if(Ne(e))throw new Error(`${e}: ${je}`);switch(e){case"TODAY":case"NOW":case"LOGINUSER":return Il(e);default:throw new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}}var Xn=new Map,If=200;function Tl(e,t){if(!Ks(t))return e.includes(t);let r=Xn.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"),Xn.size>=If&&Xn.clear(),Xn.set(t,r)}return r.test(e)}function lr(e){return Pl(e)}function bl(e){return Pl(e.flatMap(t=>t.rules.map(r=>r.condition)))}function Pl(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 se("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 se("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 se(e){return new A(e,{kind:"EOF",value:"CHECK",pos:0})}function Jn(e,t,r){let n=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!q(a.condition,t,r))continue;let s=ae(a.message,t);n.push({groupIndex:o,message:s==null?"":String(s)});break}}),n}function Oo(e){if(st(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 bf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Pf=new Set(["CHECK_BOX","MULTI_SELECT"]);function Zn(e,t=new Map){let r=e.values.map(n=>Nf(e.fields,n,t));return Fr(r,100).map(n=>({app:e.appId,records:n}))}function Nf(e,t,r){let n={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?n[i]={value:Et(a.expr,{},r.get(i))}:n[i]={value:Je(a,r.get(i))}}),n}function Mr(e){Oo(e.where);let t=Kl(e);return{app:e.appId,query:W(e.where),fields:["$id",...t],totalCount:!1}}function xr(e,t,r=new Map){let n=Cf(e.assignments,r);return Fr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:n}))}))}function Cf(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:Je(i,t.get(n))});return r}function Ll(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 ei(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 Lo(e){Oo(e.where);let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"?_l(r,t):r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP"?ur(r,t):r.type==="STRING_FUNC"?_o(r,t):r.type==="CASE_VALUE"&&Dl(r.expr,t);return Kl(e).forEach(r=>t.add(r)),{app:e.appId,query:W(e.where),fields:["$id",...t],totalCount:!1}}function _l(e,t){Ur(e.left,t),Ur(e.right,t)}function Ur(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?_l(e,t):e.type==="STRING_FUNC"&&_o(e,t)}function _o(e,t){for(let r of e.args)Of(r,t)}function Of(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Co(e,t);return}ur(e,t)}function ur(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){_o(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){ur(e.left,t),ur(e.right,t);return}e.type==="CASE_WHEN"&&Dl(e,t)}function Co(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Lf(e.arg,t);return}e.type==="AGG_ARITH"&&(Co(e.left,t),Co(e.right,t))}function Lf(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ur(e,t):ur(e,t)}function Nl(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Ur(e,t);return}ur(e,t)}}function Dl(e,t){for(let r of e.branches)Qn(r.condition,t),Nl(r.result,t);e.elseResult!==null&&Nl(e.elseResult,t)}function Qn(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Ur(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Qn(e.left,t),Qn(e.right,t);break;case"NOT":case"GROUP":Qn(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Do(e,t,r=new Map){let n=t.map(i=>{let o=Number(i.$id.value),a=vl(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:vo(d,a,r.get(l),i)};return{id:o,record:s}});return Fr(n,100).map(i=>({app:e.appId,records:i}))}function vo(e,t,r,n){if(e.type==="ARITH")return String(n?Uo(e,n):ee(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(ae(e,t));if(e.type==="STRING_FUNC")return te(e,t);if(e.type==="CASE_VALUE")return Et(e.expr,t,r);if(e.type==="SOURCE_FIELD")throw new j("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Je(e,r)}function ti(e,t,r){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return V(e);if(e.type==="ARITH")return String(ee(e,t));if(e.type==="CASE_VALUE")return we(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 _f=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ko(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=vl(i),l={};for(let{field:d,value:p}of e.assignments){let c=r.get(d);if(p.type==="SOURCE_FIELD"){if(_f.has(c??""))throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new j(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new j(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:Je({type:"STRING",value:u},c)}}else{if(p.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");p.type==="ARITH"?l[d]={value:String(Uo(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(ae(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Et(p.expr,s,c)}:l[d]={value:Je(p,c)}}}return{id:a,record:l}});return Fr(n,100).map(i=>({app:e.appId,records:i}))}function vl(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r.value=="string"?r.value:JSON.stringify(r.value??"")]))}function Uo(e,t){let r=Cl(e.left,t),n=Cl(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 Cl(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Uo(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 kl(e){return Oo(e.where),{app:e.appId,query:W(e.where),fields:["$id"],totalCount:!1}}function Ul(e,t){return Fr(t,100).map(r=>({app:e,ids:r}))}function Ml(e){return bf.has(e??"")}function Df(e){return Pf.has(e??"")}function vf(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 kf(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function xl(e,t){return Ml(t)?e===""?[]:e.split(",").map(r=>({code:r.trim()})):Df(t)?e===""?[]:e.split(",").map(r=>r.trim()):t==="DATETIME"?vf(e):t==="DATE"?kf(e):e}function Fl(e,t){return Ml(t)?e.map(r=>({code:r})):e}function Ol(e,t,r){return e.type==="ARRAY"?Fl(e.elements.map(n=>n.value),r):e.type==="STRING"?xl(e.value,r):e.type==="STRING_FUNC"?te(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ee(e,t)):String(ae(e,t))}function Kl(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(lr(e.checkGroups).filter(r=>r.tableAlias===null||r.tableAlias.toLowerCase()===t).map(r=>r.field).filter(r=>r!=="$id"))]}function Et(e,t,r){for(let n of e.branches)if(q(n.condition,t))return Ol(n.result,t,r);return e.elseResult!==null?Ol(e.elseResult,t,r):""}function Je(e,t){let r=Mo(e,t);if(!r.ok)throw new j(r.message);return r.value}function Mo(e,t){try{return{ok:!0,value:Uf(e,t)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:String(r)}}}function Uf(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 xl(e.value,t);case"NUMBER":return V(e);case"ARRAY":return Fl(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 Fr(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 xo=new Set(["CHECK_BOX","MULTI_SELECT"]),Mf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Kr(e){throw new Error(`ArgumentError: ${e}`)}function Bl(e,t,r){let n=xf(r.fieldType,e.field),i=Ff(t,n,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)&&Kr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),p=a.filter(m=>!o.has(m)),c=[...d,...p],u=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let h=m.kind==="ADD"?f:E,T=!h.has(m.value);return h.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&T&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),g=xo.has(n)?c:c.map(m=>({code:m}));return{field:e.field,fieldType:n,operations:R,postImageValue:g,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function xf(e,t){return xo.has(e)||Mf.has(e)?e:Kr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Ff(e,t,r){if(!Array.isArray(e))return Kr(`APPLY snapshot for ${r} must be an array.`);let n=e.map((i,o)=>xo.has(t)?typeof i!="string"?Kr(`APPLY snapshot for ${r} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Kr(`APPLY snapshot for ${r} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(n.filter(i=>i!==""))]}function $(e){throw new Error(`ArgumentError: ${e}`)}function Bo(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?$("APPLY parent selector must be a single positive $id."):t.right.value}function Qe(e,t){let r=e.applyBlocks;if(!r?.length)return $("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)Fo(s.field,null,n),Kf(s.value,n);for(let s of r){(i.has(s.field)||o.has(s.field))&&$(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&$(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?$(`APPLY target ${s.field} is not a SUBTABLE.`):$(`APPLY target ${s.field} does not exist as a top-level field.`);if(ks(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&$(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)Fo(u.field,s.field,n,p),Ko(u.value,s.field,n,p);c.selector.kind==="WHERE"&&Ko(c.selector.where,s.field,n,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&$(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),Fo(f,s.field,n,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Ko(c.selector.where,s.field,n,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:n}}function Kf(e,t){Br(e,r=>{if(r==="$id"||r==="$revision")return;let n=t.get(r);(!n||n.inSubtable)&&$(`APPLY parent reference ${r} is not a top-level field.`),n.fieldType==="FILE"&&$(`APPLY parent FILE reference ${r} is not supported.`)})}function Fo(e,t,r,n){(e.startsWith("_")||e.startsWith("$"))&&$(`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&&$(`APPLY child ${e} does not belong to subtable ${t}.`),$(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&$(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ko(e,t,r,n){Br(e,i=>{if(i==="_rid"||i==="_idx"||n.has(i))return;r.get(i)?.inSubtable&&$(`APPLY child reference ${i} does not belong to subtable ${t}.`),$(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ri(e,t){let r=Qe(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)Br(i.value,o=>{let a=r.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&n.add(o)});return[...n]}function ni(e,t){let r={_rid:e.id??"",_idx:String(t)};for(let[n,i]of Object.entries(e.value??{}))r[n]=Yl(i?.value);return r}function Vl(e){let{statement:t,snapshot:r,fieldInfos:n}=e,i=e.metadata??Qe(t,n),o=Go(r.$id?.value,"APPLY snapshot $id"),a=Bo(t);return o!==a&&$(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Wl(t,r,i,o)}function Gl(e,t,r,n=Qe(e,r)){let i=new Set;return t.map(o=>{let a=Go(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&$(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Wl(e,o,n,a)})}function Wl(e,t,r,n){let i=Go(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let C=r.targetMultiValueFields.get(p.field);C||$(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Bl(p,t[p.field]?.value,C));continue}let c=r.childrenByTable.get(p.field),u=Hf(t,p.field),f=new Set;for(let C of u)C.id||$(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(C.id)&&$(`APPLY snapshot for ${p.field} contains duplicate _rid ${C.id}.`),f.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":c.get(C.field)?.fieldType,R=[],g=[],m=[],h=new Set,T=new Set,S=new Set,P=p.operations.some(C=>C.kind==="REMOVE");for(let[C,y]of p.operations.entries()){if(y.kind==="APPEND"){let L=$o(y,c,p.field);m.push({kind:"APPEND",addedRows:L.length}),g.push(...L);continue}if(y.kind==="REMOVE"){let L=Vf(y,u,E,p.field);y.expectRows&&$l(y.expectRows,L.length,n,p.field,C,y.kind),m.push({kind:"REMOVE",removedRows:L.length});for(let N of L){let v=u[N].id;T.has(N)&&$(`APPLY row ${v} is selected by both PATCH and REMOVE.`),S.has(N)&&$(`APPLY removes row ${v} more than once.`),S.add(N)}continue}if(y.kind!=="PATCH")continue;let O=$f(y,u,E,p.field);y.expectRows&&$l(y.expectRows,O.length,n,p.field,C,y.kind),m.push({kind:"PATCH",matchedRows:O.length,changedRows:O.length});for(let L of O){let N=u[L];S.has(L)&&$(`APPLY row ${N.id} is selected by both PATCH and REMOVE.`),T.add(L);let v=ni(N,L);for(let b of y.assignments){let U=`${N.id}\0${b.field}`;h.has(U)&&$(`APPLY patches cell ${N.id}.${b.field} more than once.`),h.add(U),R.push({rowIndex:L,field:b.field,value:ti(b.value,v,E)})}}}let w=new Map;for(let C of R){let y=w.get(C.rowIndex)??{};y[C.field]={value:C.value},w.set(C.rowIndex,y)}let I=[...u.flatMap((C,y)=>S.has(y)?[]:[{id:C.id,value:{...C.value,...w.get(y)??{}}}]),...g],k={table:p.field,operations:m,changedSubtableRows:w.size+S.size+g.length,deletedRows:S.size,snapshotRowIds:u.map(C=>C.id),postImageRows:I};P?o.push({...k,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((C,y)=>S.has(y)?[C.id]:[]),payloadRows:I.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):o.push({...k,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((C,y)=>{let O=w.get(y);return O?{id:C.id,value:O}:{id:C.id}}),...g.map(C=>({value:C.value}))]})}let s=Yf(t),l={};for(let p of e.assignments){let c=r.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:vo(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:n,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function $l(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}`;$(`APPLY EXPECT ROWS mismatch for parent $id ${r}, table ${n}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function ii(e,t){let r=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return $(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:$(`APPLY normalized post-image for ${o.table} row ${d+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}:$(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:n,tables:r,multiValues:i,postImage:t}}function $o(e,t,r){return e.values.map(n=>({value:Bf(e,n,t,r)}))}function Bf(e,t,r,n){if(t.length!==e.fields.length)return $(`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?Vo(a):s.type==="CASE_VALUE"?Et(s.expr,{},a.fieldType):Je(s,a.fieldType)}}return o}function Vo(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 $f(e,t,r,n){return Hl(e.selector,t,r,n)}function Vf(e,t,r,n){return Hl(e.selector,t,r,n)}function Hl(e,t,r,n){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>q(i,ni(l,d),r)?[d]:[]),a=Gf(i);a!==null&&o.length===0&&$(`APPLY _rid ${a} does not exist in snapshot table ${n}.`);let s=Wf(i);return s!==null&&o.length===0&&$(`APPLY _idx ${s} does not exist in snapshot table ${n}.`),o}function Gf(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 Wf(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 Hf(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:{}}}):$(`APPLY snapshot field ${t} is not a subtable value.`)}function Go(e,t){let r=Number(e);return(!Number.isSafeInteger(r)||r<=0)&&$(`${t} must be a positive integer.`),r}function Yf(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Yl(n?.value);return t}function Yl(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Br(e,t){if(Array.isArray(e)){e.forEach(n=>Br(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))Br(n,t)}function X(e){throw new Error(`ArgumentError: ${e}`)}function ai(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?X("APPLY snapshot $revision must be a positive integer."):t}function $r(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},r=new Set(Object.keys(t));for(let i of e.multiValues)r.has(i.field)&&X(`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)&&X(`APPLY plan contains duplicate top-level field ${i.table}.`),n.has(i.table)&&X(`APPLY plan contains duplicate table ${i.table}.`),n.add(i.table),r.add(i.table),jf(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function jl(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 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 jf(e){let t=Wo(e.snapshotRowIds,`${e.table} snapshot`),r=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&X(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Wo(r,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&X(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");oi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");oi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||X(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let n=Wo(e.removedRowIds,`${e.table} removed`);e.deletedRows!==n.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(p=>p.id===void 0?[]:[p.id]),o=new Set(n),a=new Set(i);for(let p of n)a.has(p)&&X(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));oi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");oi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&X(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&X(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!Ho(p.value,e.postImageRows[c]?.value))&&X(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...n]);(d.size!==t.length||t.some(p=>!d.has(p)))&&X(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Wo(e,t){let r=[...e],n=new Set;for(let i of r)i||X(`APPLY ${t} contains an empty row id.`),n.has(i)&&X(`APPLY ${t} contains duplicate row id ${i}.`),n.add(i);return r}function oi(e,t,r){(e.length!==t.length||e.some((n,i)=>n!==t[i]))&&X(r)}function Ho(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)=>Ho(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)&&Ho(r[a],n[a]))}function ql(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 zl(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let r=ql(t.digits,"digits",1,30),n=ql(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 Xl(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 qf=new Set(["CHECK_BOX","MULTI_SELECT"]),zf=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function he(e,t,r){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Xf(e);if(i!==""&&!Jf(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=Vr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:Qf(t.fieldType),message:o}}if(t.required&&si(n))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!si(n)&&t.fieldType==="NUMBER"){let i=String(n),o=Ae(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&&Ln(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&&Ln(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}=Xl(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(!si(n)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Pt(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!si(n)&&zf.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 Xf(e){return e==null?"":li(e)&&e.type==="NUMBER"?V(e):li(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Jf(e,t){if(t==="DATE")return Pt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Pt(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)?Pt(r.slice(0,10),"DATE")&&Pt(r.slice(11),"TIME"):Pt(r,"DATETIME")}function Vr(e,t){if(li(e)){let n=Mo(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(qf.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 li(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Nt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(li(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function si(e){return e===""||Array.isArray(e)&&e.length===0}function Qf(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Pt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let 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)&&Pt(l,"TIME")}var cr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Yo(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(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=Vr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function jo(e,t,r,n,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(g=>[g.code,g])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&Yo(e,n,i);let R;for(let g of e){g.record??(g.record={});let m=d?[...g.preErrors]:[],h=[],T=[],S=g.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let I of n){if(!g.payload.has(I))continue;let k=g.payload.get(I),C=c.get(I).fieldType,y=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(C)&&Array.isArray(k)&&k.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!S)continue;let O=he(k,c.get(I),a);O.ok?g.record[I]={value:y?k:O.value}:h.push({field:I,code:O.code,message:O.message})}if(l&&g.mode==="create")for(let I of i){if(I.inSubtable||g.payload.has(I.code))continue;if(Nt(I.defaultValue)){let C=he("",I,a);C.ok?I.required&&h.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):h.push({field:I.code,code:C.code,message:C.message})}else{let C=he(I.defaultValue,I,a);C.ok||h.push({field:I.code,code:C.code,message:`\u65E2\u5B9A\u5024: ${C.message}`})}}if(s.length>0){let I=g.evaluationRow??Object.fromEntries([...g.payload].map(([y,O])=>[y,Ue(O)])),k=g.evaluationFieldTypes,C=y=>{let O=y.tableAlias?`${y.tableAlias}.${y.field}`:y.field;return k?.get(O)??k?.get(y.field)};try{for(let y of Jn(s,I,C))T.push({field:"",code:"ERR_CHECK",message:y.message})}catch(y){R??(R=y)}}let P=I=>I.map(k=>{let C={};for(let y of r)C[y]=Ue(g.payload.get(y));return C.$err_statement=String(o),C.$err_operation=t,C.$err_row=String(g.rowNumber),C.$err_field=k.field,C.$err_code=k.code,C.$err_message=k.message,C.$err_value="",C.$err_subtable="",C.$err_subrow="",C.$err_subrow_id="",C}),w={rowNumber:g.rowNumber,preErrors:P(m),builtInErrors:P(h),checkErrors:P(T)};E.push(w);let _=[...w.preErrors,...w.builtInErrors,...w.checkErrors];_.length>0&&f.add(g.rowNumber),u.push(..._)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Ue(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 qo(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 Zf(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 eE(e){return e.fieldType==="NUMBER"||Zf(e)}function ui(e,t,r){return{subtable:e,subrow:t+1,subrowId:String(r.id??"")}}function zo(e,t){let{topByCode:r,childrenByTable:n}=qo(t),i=eE;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=n.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...n.entries()].some(([R,g])=>R!==l.subtableCode&&g.some(m=>m.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=r.get(d);if(p?.fieldType==="SUBTABLE"){let c=(n.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...n.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Gr(e,t){return Nt(e)?"":Ue(Vr(e,t))}var tE=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Wr=cr;function Me(e,t=["$id"]){let r=qo(e),n=r.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!tE.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 Ct(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 Ot(e,t,r,n,i=1,o="UPDATE"){let a=rE(e),s=[],l=new Set,d=[...t.payloadFields,...Wr],p=Ue(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let g={};for(let m of t.payloadFields)g[m]=m==="$id"?p:Ue(e[m]?.value);g.$err_statement=String(n),g.$err_operation=o,g.$err_row=String(i),g.$err_field=u.code,g.$err_code=E.code,g.$err_message=E.message,g.$err_value=Gr(f,u.fieldType),g.$err_subtable=R?.subtable??"",g.$err_subrow=R?String(R.subrow):"",g.$err_subrow_id=R?.subrowId??"",s.push(g)};for(let u of t.topLevel){let f=e[u.code]?.value,E=he(f,u,r);E.ok?a[u.code]={value:Jl(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let g=0;g<E.length;g++){let m=E[g],h=R[g];for(let T of f){let S=m.value?.[T.code]?.value,P=he(S,T,r);P.ok?(h.value??(h.value={}),h.value[T.code]={value:Jl(S,T.fieldType,P.value)}):c(T,S,P,ui(u,g,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Jl(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 rE(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;Ql(o,"dmlMaxRows"),Ql(a,"dmlMaxSubtableRows");for(let T of r)ai(T);let l=Gl(t,r,n,i),d=Me(n,t.assignments.map(T=>T.field)),p=l.some(T=>Ct(T.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((T,S)=>Ot(T.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let T=u.flatMap(S=>S.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:T})}`)}let f=l.length,E=l.reduce((T,S)=>T+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 g=l.map((T,S)=>ii(T,u[S].normalizedRecord)),m=g.flatMap(T=>$r(T).records),h=u.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Zl({plans:g,records:m,validations:h,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function Ql(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Zl(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))Zl(r,t);return Object.freeze(e)}var Xo=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function pi(e,t){if(new Set(e.fields).size!==e.fields.length)return xe("DML target fields contain duplicates.");let r=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)eu(o,null,r);let n=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(n.has(o.field))return xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));n.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),eu(p,o.field,r,s)}for(let p of l.values)if(p.length!==l.fields.length)return xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:n,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:r}}function nE(e,t,r=pi(e,t),n){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Zn(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),d=s.operations.flatMap(p=>$o(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Xo.has(c.fieldType)||(d[c.code]=s[c.code]??{value:Vo(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:n?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Hr(e){let{statement:t,fieldInfos:r,dmlMaxRows:n,dmlMaxSubtableRows:i,statementNumber:o=1}=e;tu(n,"dmlMaxRows"),tu(i,"dmlMaxSubtableRows");let a=e.metadata??pi(t,r),s=nE(t,r,a,e.parentRowNumbers),l=r.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!Xo.has(S.fieldType)),d=Me(l,t.fields),p=s.some(S=>Ct(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Ot(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(P=>P.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,P)=>S+P.tables.reduce((w,_)=>w+_.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 g=s.map((S,P)=>{let w=u[P].normalizedRecord,_={};for(let I of t.fields)_[I]=w[I];for(let I of S.tables){let k=w[I.table]?.value;_[I.table]={value:I.rows.map((C,y)=>({value:Object.fromEntries(Object.keys(C.value).map(O=>[O,k[y]?.value?.[O]??C.value[O]]))}))}}return{...S,postImage:w,record:_}}),m=g.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 T=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return ru({applyBlocks:t.applyBlocks??[],candidates:g,records:m,batches:h,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:n,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function eu(e,t,r,n){if(e.startsWith("_")||e.startsWith("$"))return xe(`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?xe(`APPLY child ${e} does not belong to subtable ${t}.`):xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Xo.has(i.fieldType))return xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function tu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function xe(e){throw new Error(`ArgumentError: ${e}`)}function ru(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))ru(r,t);return Object.freeze(e)}async function iu(e){let{statement:t,matches:r,fieldInfos:n,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;nu(i,"dmlMaxRows"),nu(o,"dmlMaxSubtableRows"),lE(t,r);let s=r.filter(m=>m.targetId===void 0),l=r.filter(m=>m.targetId!==void 0),d=iE(t,s.map(m=>m.sourceRowIndex)),p=await Hr({statement:d,fieldInfos:n,metadata:pi(d,n),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let m of l){let h=m.targetId;u.has(h)&&Jo(`UPSERT APPLY resolves more than one source row to parent $id ${h}.`),u.add(h),m.snapshot||Jo(`UPSERT APPLY snapshot for parent $id ${h} is missing.`);let T=Number(m.snapshot.$id?.value);T!==h&&Jo(`UPSERT APPLY snapshot $id ${T} does not match target $id ${h}.`);let S=oE(t,m.sourceRowIndex,h),P=S.applyBlocks?.length?Qe(S,n):aE(n);c.push(await ci({statement:S,snapshots:[m.snapshot],fieldInfos:n,metadata:P,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=sE(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,g=E>i||R>o;if(!t.validateOnly){let m=[...p.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:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:m})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Qo({create:p,update:f,createBatches:p.batches,updateBatches:uE(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:g,create:p.guards,update:f.guards}})}function iE(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(r=>e.values[r]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function oE(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 aE(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function sE(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 Qo({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 lE(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 uE(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 nu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Jo(e){throw new Error(`ArgumentError: ${e}`)}function Qo(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))Qo(r,t);return Object.freeze(e)}function jr(e){return pr("UPDATE",[su(e)])}function Zo(e){return pr("INSERT",[au(e)])}function ea(e){return pr("UPSERT",[au(e.create),su(e.update)])}function Ie(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 fi(e,t,r){return e.type==="UPDATE"?pr("UPDATE",[di("update",e.applyBlocks??[],null,!0,t,r)]):e.type==="INSERT"?pr("INSERT",[di("insert",e.applyBlocks??[],e.values.length,!1,t,r)]):pr("UPSERT",[di("insert",e.onInsertApplyBlocks??[],null,!1,t,r),di("update",e.onUpdateApplyBlocks??[],null,!0,t,r)])}function pr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function au(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 su(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:ou(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:ou(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 ou(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:Yr(i.count,r.count),...r.matchedRows!==void 0?{matchedRows:Yr(i.matchedRows,r.matchedRows)}:{},...r.changedRows!==void 0?{changedRows:Yr(i.changedRows,r.changedRows)}:{},...r.addedRows!==void 0?{addedRows:Yr(i.addedRows,r.addedRows)}:{},...r.removedRows!==void 0?{removedRows:Yr(i.removedRows,r.removedRows)}:{}}}):t.map(r=>({...r}))}function Yr(e,t){return e==null||t===null?null:e+t}function di(e,t,r,n,i,o){let a=t.map(p=>{let c=p.operations.map(f=>cE(f,r)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=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:d},chunk:{size:100,plannedChunks:r===null?null:Math.ceil(r/100)},deletedParentRows:e==="insert"?0:null}}function cE(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 Ze=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 lu(e,t,r){Jt("phase10c");let n=jl(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 Ze({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ie(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 uu(e,t,r){Jt("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 Ze({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ie(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 cu(e,t,r){Jt("phase14c");let n=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});n.push(p.ids)}catch(p){throw new Ze({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ie(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Ze({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ie(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:n,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function pu(e,t){let r=ne(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 Fe(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ei(e.left);case"NULL_CHECK":return Ei(e.field);case"LOGICAL":return Fe(e.left)||Fe(e.right);case"NOT":case"GROUP":return Fe(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ei(e){if(Array.isArray(e))return e.some(Ei);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(Ei)}async function Oe(e,t,r,n,i){let o=await Re(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 Ri(e,t,r,n){let{records:i,metrics:o}=await Oe(e,t,r,["$id"],n);return{ids:Rs(i),metrics:o}}function ra(e,t){let r=Ro(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 pE(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function dE(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function qr(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=pE(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"&&!dE(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 fE=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 EE(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function zr(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,d=e.orderSemantics.get(l);if(!d){r.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(EE(t,l)){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}fE.has(d.fieldType)||r.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.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 mi=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"}},gi=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}},hi=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 du(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 hi(a).message}}return{records:r,cleanupWarning:o}}function na(e){let t=[];e.where&&t.push(W(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(" ")}function et(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 RE(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(fu(e,a,n.leftColumns),fu(t,s,n.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",g=c.get(R);g?g.push(E):c.set(R,[E])}let u={};for(let E of n.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",g=c.get(R)??[];if(g.length>0)for(let m of g)f.push({...m,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of n.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function fu(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 mE(e,t,r,n,i){return t===null?e:e.filter(o=>q(t,o,r,n,i))}function Au(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Xr(t.expr)||t.type==="SCALAR_VALUE_COL"&&Rt(t.expr))}function gE(e,t,r,n){let i=new Map;for(let a of e){let s=t.map(d=>yE(d,a)).join("\0"),l=i.get(s);l?l.push(a):i.set(s,[a])}i.size===0&&t.length===0&&Au(r)&&i.set("",[]);let o=[];for(let a of i.values()){let s={...a[0]};for(let l of t)l.type==="ARITH_KEY"?s[ca(l.expr)]=String(ee(l.expr,a[0])):l.type==="FUNC_KEY"&&(s[mt(l.expr)]=te(l.expr,a[0]));Su(s,a,r,n),o.push(s)}return o}function hE(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 d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Eu(E,u),g=f.children.get(R);g||(g={children:new Map},f.children.set(R,g)),f=g}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Eu(R,u[0]));for(let R of t.allItems){let g=E.get(R.canonicalId)??"";f[R.directKey]=g,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=g)}Su(f,u,r,n),tl(f,c),o.push(f)}}return o}function Eu(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Su(e,t,r,n){for(let i of r)if(i.type==="AGGREGATE"){let o=Se(i.func,i.distinct,i.arg),a=String(aa(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??dr(i.expr);e[o]=String(yi(i.expr,t,n))}else if(i.type==="STRFUNC_COL"&&Xr(i.expr)){let o=i.alias??mt(i.expr),a=pa(i.expr,t,n);e[o]=te(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&Rt(i.expr)){let o=i.alias??Ke(i.expr),a=Ai(i.expr,t,n);e[o]=String(ae(a,e))}}function yE(e,t){return e.type==="FIELD_NAME"?t[e.name]??"":e.type==="FUNC_KEY"?te(e.expr,t):String(ee(e.expr,t))}function aa(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=ee(r,f);if(isNaN(R))continue;E=String(R)}else{let R=ft(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,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(n??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?Tu(r,o):void 0,c=typeof p=="string"?x(p):p??(r.type==="FIELD_REF"||r.type==="FIELD"||r.type==="STRING"||r.type==="CONCAT_OP"||r.type==="CASE_WHEN"?x("string"):x("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let E="",R=0;for(let[g,m]of f){if(m>R){E=g,R=m;continue}if(m!==R)continue;let h=It(g,E,c);(h<0||h===0&&dt(g,E)<0)&&(E=g)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let g=It(R,E,c);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,g)=>R-g),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,g=0,m=0;for(let T of u){let S=T-E;R++;let P=S-g;g+=P/R,m+=P*(S-g)}let h=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(h):h}}}function AE(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 yi(e,t,r){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(aa(e.func,e.distinct,e.arg,e.separator,t,r));let n=yi(e.left,t,r),i=yi(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 dr(e){return wr(e)}function Tu(e,t){if(e.type==="FIELD_REF")return t?.(AE(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=>Tu(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 SE(e,t,r,n){return t===null?e:e.filter(i=>q(t,i,r,void 0,n))}function TE(e,t,r,n,i){if(e.length===0)return e;let o=wE(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 wE(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(CE(t,a,o))}function sa(e,t,r,n,i,o){return t.length===0?e:wu(e,t,r,n,i,o).rows.map(a=>a.row)}function wu(e,t,r,n,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:x("number")};if(d.type==="FUNC_KEY")return{semantics:x(Iu.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:x("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=r?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:x(n?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:PE(p,d,o)}))})),l=(d,p)=>IE(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function IE(e,t,r,n){for(let i=0;i<r.length;i++){let o=bE(e.keys[i],t.keys[i],n[i]);if(o!==0)return r[i].direction==="ASC"?o:-o}return 0}function bE(e,t,r){return It(e.s,t.s,r.semantics)}var Iu=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function PE(e,t,r){switch(e.type){case"FIELD_NAME":return r?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ee(e.expr,t));case"FUNC_KEY":return te(e.expr,t);case"GROUPING_KEY":return ar(e.ref,t)}}function la(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=>Xe(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,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=dr(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ee(a.expr,l)));break;case"STRFUNC_COL":{let l=mt(a.expr);i.set(s,d=>Xr(a.expr)?d[s]??d[l]??te(a.expr,d,r,n):te(a.expr,d,r,n));break}case"CASE_COL":i.set(s,l=>we(a.expr,l,r,n));break;case"SCALAR_VALUE_COL":{let l=Ke(a.expr);i.set(s,d=>Rt(a.expr)?d[s]??d[l]??"":String(ae(a.expr,d,r,n)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>ar(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function ua(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 d=JSON.stringify(a.partitionBy.map(c=>NE(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=wu(l,a.orderBy,r,n,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function NE(e,t){let r=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Xe(e,r)}function Si(e,t,r){let n=r??0;return t===null?e.slice(n):e.slice(n,n+t)}function oa(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 Xe(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??dr(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ee(e.expr,t));case"CASE_COL":return we(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics);case"GROUPING_COL":return ar(e.ref,t);case"STRFUNC_COL":{let i=mt(e.expr);return Xr(e.expr)?t[e.alias??i]??t[i]??te(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics):te(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=Ke(e.expr);return Rt(e.expr)?t[e.alias??i]??t[i]??"":String(ae(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return n.scalarCache?.get(r)??"";case"WINDOW_COL":return t[e.alias]??""}}function CE(e,t,r={}){return e.map((n,i)=>{let o=oa(n,t,i,r);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Ti(e,t,r,n,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=hu(mu(E),a),g=oa(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof g!="string")for(let[h,T]of g.entries)T!==null&&(m[h]=T);return m}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=_E(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:OE(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:LE(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:r,resolveFieldType:n,resolveFieldSemantics:o,wildcardKeys:Object.keys(hu(mu(u),a)),parentWildcardKeys:Object.keys(u).filter(g=>g.startsWith("_p.")).sort()};for(let[g,m]of t.entries()){let h=oa(m,u,g,R);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[T,S]of h.entries)S!==null&&(E[T]=S);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[T,S]of h.entries)S!==null&&(E[T]=S),f===0&&p.push(T);break}case"FIELD":{let T=d?.[g]??m.alias??s.get(g)??m.field;E[T]=h,d===null&&f===0&&p.push(T);break}case"LITERAL_COL":{let T=d?.[g]??m.alias??`'${m.value}'`;E[T]=h,d===null&&f===0&&p.push(T);break}case"AGGREGATE":{let T=Se(m.func,m.distinct,m.arg),S=d?.[g]??m.alias??T;E[S]=h,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let T=d?.[g]??m.alias??dr(m.expr);E[T]=h,d===null&&f===0&&p.push(T);break}case"ARITH_COL":{let T=d?.[g]??m.alias??ca(m.expr);E[T]=h,d===null&&f===0&&p.push(T);break}case"CASE_COL":{let T=d?.[g]??m.alias??"case";E[T]=h,d===null&&f===0&&p.push(T);break}case"GROUPING_COL":{let T=d?.[g]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[T]=h,d===null&&f===0&&p.push(T);break}case"STRFUNC_COL":{let T=d?.[g]??m.alias??mt(m.expr);E[T]=h,d===null&&f===0&&p.push(T);break}case"SCALAR_VALUE_COL":{let T=d?.[g]??m.alias??Ke(m.expr);E[T]=h,d===null&&f===0&&p.push(T);break}case"SCALAR_SUBQUERY_COL":{let T=d?.[g]??m.alias??"(subquery)";E[T]=h,d===null&&f===0&&p.push(T);break}case"WINDOW_COL":{let T=d?.[g]??m.alias;E[T]=h,d===null&&f===0&&p.push(T);break}}}return E}),columns:p}}function OE(e,t){return e.map((r,n)=>bu(r,n,t))}function LE(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=bu(o,i,t);n.has(a)||(n.add(a),r.push(a))}return r}function bu(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??Se(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??dr(e.expr);case"ARITH_COL":return e.alias??ca(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??mt(e.expr);case"SCALAR_VALUE_COL":return e.alias??Ke(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 _E(e){let t=new Map;for(let n of e){if(n.type!=="FIELD"||n.alias)continue;let i=Ru(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=Ru(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 Ru(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function mu(e){let t={};for(let[r,n]of Object.entries(e))r.startsWith("_p.")||(t[r]=n);return t}function ca(e){let t=r=>r.type==="FIELD_REF"?r.field:r.type==="NUMBER"?V(r):r.type==="STRING_FUNC"?mt(r):`(${t(r.left)}${r.op}${t(r.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function mt(e){let t=e.args.map(r=>r.type==="AGG_REF"||r.type==="AGG_ARITH"?dr(r):Ke(r));return`${e.func}(${t.join(",")})`}function Ke(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return V(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return mt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Ke(e.left)}${e.op}${Ke(e.right)}`;case"CONCAT_OP":return`${Ke(e.left)}||${Ke(e.right)}`}}function DE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Rt(e)}function Rt(e){return e.type==="STRING_FUNC"?Xr(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Rt(e.left)||Rt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>gu(t.result))||e.elseResult!==null&&gu(e.elseResult):!1}function gu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Rt(e)}function Xr(e){return e.args.some(t=>DE(t))}function vE(e,t,r){if(e.type==="AGG_REF"){let n=aa(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=yi(e,t,r);return{type:"NUMBER",value:n,raw:String(n)}}return e.type==="STRING_FUNC"?pa(e,t,r):Ai(e,t,r)}function Ai(e,t,r){return e.type==="STRING_FUNC"?pa(e,t,r):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ai(e.left,t,r),right:Ai(e.right,t,r)}:e}function pa(e,t,r){return{type:"STRING_FUNC",func:e.func,args:e.args.map(n=>vE(n,t,r))}}function hu(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 yu(e,t){if(e!==void 0)return t?e.flatMap(r=>[`${t}.${r}`,r]):[...e]}function ia(e,t,r){if(!(e===void 0&&t===void 0&&r.length===0))return[...new Set([...e??[],...t??[],...Object.keys(r[0]??{})])]}function kE(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,x("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,x("number")):r.func==="GROUP_CONCAT"&&t.set(r.alias,x("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?t.set(r.alias,x("string")):r.type==="STRFUNC_COL"&&t.set(r.alias,x(Iu.has(r.expr.func)?"number":"string")));return t}function da(e){let{stmt:t,tables:r,scalarCache:n,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:g}=e,m=kE(t.columns);for(let[_,I]of a??[])m.set(_,I);let h=[],T=t.from.alias;h=(r.get(T)??r.get(null)??[]).map(_=>et(_,T));let P=ia(yu(E?.get(T),T),void 0,h);for(let _ of t.joins){let I=_.table.alias,C=(r.get(I)??[]).map(O=>et(O,I)),y=ia(yu(E?.get(I),I),void 0,C);h=RE(h,C,_,{leftColumns:P,rightColumns:y}),P=ia(P,y,h)}h=mE(h,t.where,s,u,l);let w=ne(t);if(w.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");h=hE(h,g,t.columns,c,{maxGeneratedRows:5e4})}else(w.type==="PLAIN"||Au(t.columns))&&(h=gE(h,w.type==="PLAIN"?w.allItems:[],t.columns,c));return h=SE(h,t.having,d,p),h=ua(h,t.columns,i,o,m),t.distinct&&(h=TE(h,t.columns,n,s,l)),h=sa(h,t.orderBy,i,o,m,la(t.columns,n,s,l)),h=Si(h,t.limit,t.offset),Ti(h,t.columns,n,s,f,l,R)}function Pu(e,t){let r=[];for(let n of e){let i=fa(n.$id?.value),o=UE(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[d,p]of Object.entries(n)){if(d===t)continue;let c=fa(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:fa(p?.value)};r.push(l)}}return r}function UE(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function fa(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 Nu(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Cu(e,t){let r=Jr(e);for(let[n,i]of Object.entries(t))r[n]=Jr(i);return r}function Ou(e){let t=[...e.preErrors.map(i=>Ea(i)),...e.postImageErrors.map(i=>Ea(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Ea(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]=Jr(e.normalizedPostImage[i])}return{errors:t,invalidRows:r.size,invalidRowNumbers:r,writeRecord:n}}function Ea(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 Jr(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(Jr(a,t));return o}let i={};t.set(r,i);for(let[o,a]of Object.entries(e))i[o]=Jr(a,t);return i}var Be=["=","!=",">","<",">=","<="],ME=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),xE=new Set(Be),FE=["=","!=","in","not in"],KE=new Map([["RECORD_NUMBER",new Set([...Be,"in","not in"])],["__ID__",new Set([...Be,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Be)],["UPDATED_TIME",new Set(Be)],["DATE",new Set(Be)],["TIME",new Set(Be)],["DATETIME",new Set(Be)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Be,"in","not in"])],["CALC",new Set([...Be,"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(FE)]]),Lu=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"]),_u=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function BE(e){return KE.get(e)??new Set}function Lt(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Zr(e,t)}function Zr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return $E(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ra():HE(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ra();case"GROUP":return Zr(e.expr,t);case"NOT":{let r=Zr(e.expr,t);return r.capability!=="SUPERSET_PREFILTER"?r:Du(r.reasons)?en({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...r.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let r=Zr(e.left,t),n=Zr(e.right,t);return jE(e.op,r,n)}}}function $E(e,t,r,n){if(r.type==="KINTONE_FUNC"&&Ne(r.name))return GE(e,t,r,n);if(t.type!=="FIELD")return Ra();let i=n(t);if(!i)return Ii("WHERE_FIELD_UNRESOLVED",t.field,void 0,wi(e));if(!YE(i.fieldType,e))return Ii("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,wi(e));let o=wi(e),a=BE(i.fieldType),s=r.type==="STRING"||r.type==="NUMBER"||r.type==="IN_LIST"||VE(r),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function VE(e){return e.type==="KINTONE_FUNC"&&(e.name==="TODAY"||e.name==="NOW"||e.name==="LOGINUSER")}function GE(e,t,r,n){let i=wi(e),o=r.name;if(t.type!=="FIELD")return Qr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=n(t);return a?WE(r)?xE.has(i)?!ME.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Qr("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}]}:Qr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Qr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Qr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function WE(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 HE(e,t,r){let n=r(e);return n?!Lu.has(n.fieldType)&&!_u.has(n.fieldType)?Ii("WHERE_OPERATOR_UNSUPPORTED",e.field,n.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:n.fieldType,operator:t}]}:Ii("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function YE(e,t){return Lu.has(e)?!0:_u.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function wi(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 jE(e,t,r){let n=[...t.reasons,...r.reasons];return t.capability==="UNSUPPORTED"||r.capability==="UNSUPPORTED"?en({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")?en({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...n]}):en({capability:"LOCAL_ONLY",reasons:n})}function Ra(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Ii(e,t,r,n){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:r,operator:n}]}}function Qr(e,t,r,n,i){return en({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:r,fieldType:n,operator:i}]})}function Du(e){return e.some(t=>t.functionName!==void 0)}function en(e){if(e.capability==="EXACT_PUSHDOWN"||!Du(e.reasons)||e.reasons.some(r=>r.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(r=>r.functionName!==void 0);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 Uu(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"&&Ne(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 ga(e){return Uu(e,!0)}function bi(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 Le(e,t,r,n){let i=ga(e.where);i.length>0&&r.push({kind:n?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:i,path:t}),bi(e,e).forEach((o,a)=>Le(o,`${t}.select-source[${a}]`,r,n))}function tn(e,t,r,n){e.left.type==="UNION"?tn(e.left,`${t}.left`,r,n):Le(e.left,`${t}.left`,r,n),Le(e.right,`${t}.right`,r,n)}function vu(e,t,r,n){if(!n&&ut(e)){Le(ct(e),`${t}.inlined`,r,!1);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Le(i.query,`${t}.cte[${o}]`,r,!0):i.query.type==="UNION"&&tn(i.query,`${t}.cte[${o}]`,r,!0)}),e.query.type==="SELECT"?Le(e.query,`${t}.main`,r,!0):tn(e.query,`${t}.main`,r,!0)}function Mu(e,t,r,n=!1){switch(e.type){case"SELECT":Le(e,t,r,n);return;case"UNION":tn(e,t,r,n);return;case"WITH":vu(e,t,r,n);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?vu(e.query,`${t}.query`,r,!0):e.query.type==="UNION"?tn(e.query,`${t}.query`,r,!0):Le(e.query,`${t}.query`,r,!0);return;case"EXPLAIN":Mu(e.query,`${t}.query`,r,n);return;case"VALIDATE":case"REORDER":{let i=ga(e.where);i.length>0&&r.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t}),bi(e,e).forEach((o,a)=>Le(o,`${t}.select-source[${a}]`,r,!0));return}case"UPDATE":case"DELETE":{let i=ga(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})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=Uu(e.applyBlocks,!0);o.length>0&&r.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`})}bi(e,e).forEach((o,a)=>Le(o,`${t}.select-source[${a}]`,r,n));return}default:bi(e,e).forEach((i,o)=>Le(i,`${t}.select-source[${o}]`,r,n))}}function ku(e,t){return t.every(r=>new RegExp(`\\b${r}\\s*\\(`).test(e))}function qE(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function zE(e){let t=(e?.reasons??[]).filter(r=>r.functionName!==void 0).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_"));return t.includes(je)||t.push(je),[...new Set(t)]}function ma(e,t){let r=zE(t);return{functionName:e.functionNames[0],path:e.path,code:r.find(n=>n!==je)??je,reasonCodes:r}}async function xu(e,t){let r=[];Mu(e,"statement",r);let n=[];for(let i of r){if(i.kind==="FORBIDDEN"){let p=qE(i);return n.push(p),{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:ma(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=Ce(p),f=await t.select(p),E="";try{E=i.where===null?"":W(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&ku(E,i.functionNames),g={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,clientWhereEvaluation:!R,allowed:R};if(n.push(g),!R)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:ma(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":W(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&ku(s,i.functionNames),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(n.push(d),!l)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:ma(i,a)}}return{hasRelativeDate:r.length>0,nodes:n,allowed:!0}}function Fu(e){if(!e.allowed&&e.rejection){let t=e.rejection.reasonCodes.filter(r=>r!==je);throw new Error(`${e.rejection.functionName}: ${je}${t.length>0?` (reason=${t.join(", ")})`:""} (path=${e.rejection.path})`)}}var M=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function Ku(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 Pi(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 XE(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 JE(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 d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){n+='"',a+=2;continue}i=!1,o=!0,a++;continue}n+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
4
+ `)throw new M(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(n.length!==0)throw new M(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
5
+ `){d==="\r"&&e[a+1]===`
6
+ `&&a++,l(),a++;continue}n+=d,a++}if(i)throw new M("unterminated quoted cell.");return(n.length>0||r.length>0||o)&&l(),t}function QE(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 Ni(e,t){let r=JE(XE(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}`)),QE(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 ZE=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),eR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),rn=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 Bu(e,t,r){if(!ZE.has(t??""))return e;if(e==="")return[];let n=e.split(/\r\n|\n/);if(n.some(i=>i===""))throw new rn;return eR.has(t??"")?n.map(i=>({code:i})):n}function tt(e,t,r,n){throw new M(`JSON ${e} (offset=${t}, line=${r}, column=${n}).`)}function $u(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new M("JSON source is not valid UTF-8.")}}function Vu(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 u="",f=!1;for(;r<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&tt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}r>=e.length&&tt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in g){u+=g[R];continue}R!=="u"&&tt(`has invalid escape \\${R}`,r-2,n,Math.max(1,i-2));let m=e.slice(r,r+4);/^[0-9a-fA-F]{4}$/.test(m)||tt("has invalid unicode escape",r,n,i);for(let T=0;T<4;T++)o();let h=Number.parseInt(m,16);if(h>=55296&&h<=56319){(e.slice(r,r+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(r+2,r+6)))&&tt("has an unpaired high surrogate",r,n,i),o(),o();let T=e.slice(r,r+4);for(let P=0;P<4;P++)o();let S=Number.parseInt(T,16);(S<56320||S>57343)&&tt("has an invalid surrogate pair",r-4,n,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?tt("has an unpaired low surrogate",r-4,n,Math.max(1,i-4)):u+=String.fromCharCode(h)}f||tt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(r),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}tt(`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 Ci(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Oi(e){if(e.byteLength===0)throw new M("JSON source is empty.");let t=Vu($u(e)),r=0,n=(d,p=t[r])=>{throw new M(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[r];(p.kind!=="punct"||p.value!==d)&&n(`expected ${d}; found ${Ci(p)}`,p),r++},a=()=>{let d=t[r++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let p=new Map;if(i(t[r],"}"))return r++,p;for(;;){let c=t[r++];if(c.kind!=="string")return n(`object key must be a string; found ${Ci(c)}`,c);let u=c.value;p.has(u)&&n(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[r];if(i(f,"}")){r++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[r],"]"))return r++,p;for(;;){p.push(a());let c=t[r];if(i(c,"]")){r++;break}o(",")}return p}return n(`expected a value; found ${Ci(d)}`,d)},s=a();t[r].kind!=="eof"&&n(`has trailing data; found ${Ci(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((d,p)=>{if(!(d instanceof Map))throw new M(`JSON record ${p+1} must be an object.`)}),l}var tR=new Set(["CHECK_BOX","MULTI_SELECT"]),Gu=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function $e(e,t,r){throw new M(`JSON field validation failed (row=${e}, field=${t}): ${r}`)}function rR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function nR(e,t,r){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&$e(r,t.code,"boolean is not accepted."),rR(e)){t.fieldType==="NUMBER"&&$e(r,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&$e(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)||$e(r,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&$e(r,t.code,"object is not accepted for a flat field."),Array.isArray(e)||$e(r,t.code,"unsupported value type."),!tR.has(t.fieldType)&&!Gu.has(t.fieldType)&&$e(r,t.code,"array is accepted only for multi-value fields.");let n=e.map(i=>(typeof i!="string"&&$e(r,t.code,"array elements must be strings."),i));return new Set(n).size!==n.length&&$e(r,t.code,"array elements must not contain duplicates."),Gu.has(t.fieldType)?JSON.stringify(n.map(i=>({code:i}))):JSON.stringify(n)}function ha(e,t,r,n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let i=Oi(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,d)=>{for(let u of l.keys())o.has(u)||$e(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of r)l.has(u.code)&&(c.add(u.code),p[u.code]=nR(l.get(u.code),u,d+1));a.push(p),s.push(c)}),{rows:a,columns:r.map(l=>l.code),columnMeta:new Map(r.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ya(e,t,r,n,i,o){let a=Ni(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((m,h)=>[m,h]));for(let m of n)if(!l.has(m))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),p=new Set(n);if(o&&p.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 c=[],u=[],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(p.has(h)||h===o)continue;let T=d.get(h);if(T)c.push({column:h,reason:E(T),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)u.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new M(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let m of n){let h=d.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=[],T={};for(let S of n){let P=m[l.get(S)];try{T[S]=Bu(P,d.get(S)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof rn))throw w;T[S]=P,h.push({field:S,code:w.code,message:w.message})}}return R.push(h),T}),columns:[...n],columnMeta:new Map(n.map(m=>[m,{fieldType:d.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...n],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var nn=(e,t,r)=>{throw new M(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${r}`)};function Wu(e,t,r,n,i=n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let o=Oi(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,d)=>{let p=d+1;for(let E of l.keys())a.has(E)||nn(p,E,"unknown key (not declared in INTO).");let c=new Map,u=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 g=l.get(R);if(E.kind==="FIELD"){g instanceof Map&&nn(p,R,"object is not accepted for a top-level field."),c.set(R,g);continue}Array.isArray(g)||nn(p,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),h=g.map((T,S)=>{T instanceof Map||nn(p,R,`childRow=${S+1} must be an object.`);let P=T;for(let w of P.keys())m.has(w)||nn(p,w,`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:P}});u.set(R,h)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function Hu(e,t,r,n,i,o){let a=Ni(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((u,f)=>[u,f]));if(o&&!s.has(o))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=r.filter(u=>u.kind==="FIELD"),d=r.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new M(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new M(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new M(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new M(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(g=>[g.field,u[s.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(n),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let g of l){let m=u[s.get(g.field)];if(m!==""&&m!==c.top.get(g.field))throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=u[s.get(o)];if(g!==""&&g!==c.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 g of d){let m=u[s.get(g.rowIdSourceHeader)],h=new Map(g.children.map(S=>[S,u[s.get(S)]]));if(m===""&&[...h.values()].every(S=>S===""))continue;let T=c.subtables.get(g.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:h})}}),p.length===0)throw new M("CSV has no parent rows.");return{records:p}}var iR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),oR=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ta(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function zu(e,t,r,n,i){let o=new Map(r.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of r)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)Yu(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)Yu(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>aR(u,s,l,o,a,n,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function aR(e,t,r,n,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&Sa(e.top.get(u.field),n.get(u.field),o,d,u.field,l,Aa(e,a,u.field));let p={};if(a==="INSERT")for(let u of n.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||ju(u,o,p,l,Aa(e,a,u.code));let c=new Map;for(let u of r){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let g=l.length,m={},h=i.get(u.subtableCode);for(let T of u.children){let S=h.get(T),P=Aa(e,a,T,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(T)?Sa(R.values.get(T),S,o,m,T,l,P):ju(S,o,m,l,P)}l.length===g?(f.validChildRows++,E.push(m)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function Yu(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&&oR.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${r?`child ${r}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function ju(e,t,r,n,i){let o=Nt(e.defaultValue)?"":e.defaultValue;Sa(o,e,t,r,e.code,n,i,!Nt(e.defaultValue))}function Sa(e,t,r,n,i,o,a,s=!1){let l=sR(e),d=he(l,t,r);d.ok?n[i]={value:lR(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function sR(e){return qu(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:qu(t)?t.lexeme:t):e}function qu(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function lR(e,t){return iR.has(t.fieldType)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)}function Aa(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 wa=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Ia(e,t,r=1){return e.map(n=>{let i={};for(let o of t)i[o]=n.sourceValues.get(o)==null?"":uR(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 uR(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 ba(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 Xu(e,t){return ba(e,t,"DROP")}function Ju(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 Qu(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,d])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow: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 cR(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function Zu(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 ec(e,t,r,n,i){return t.map((o,a)=>{let s=e[a],l=r[a],d=l===void 0?void 0:n.get(l),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=cR(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],m=o.subtables.get(f)??[],h=0,T=0,S=0,P=g.map((w,_)=>{let I=m[_]??{};return w.rowId&&R.has(w.rowId)?(h++,{rowId:w.rowId,record:I}):(w.rowId&&((i.get(w.rowId)??[]).some(C=>C.parentId!==l||C.table!==f)&&p.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++),T++,{record:I})});c.set(f,P),u.push({table:f,existingRows:E.length,inputRows:g.length,updateRows:h,addRows:T,deleteRows:E.length-h,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var Pa="#__import_source";function tc(e){return{...e,from:{appId:0,alias:null,cteName:Pa}}}function pR(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Na(e,t){let r=e.map(pR),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 dR="\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",mr=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"}},We=new WeakMap,hr=new WeakMap,Gi=new WeakMap,rc=new WeakMap,fR=1;function ER(e,t){if(t)return t;let r=rc.get(e);return r||(r=`client:${fR++}`,rc.set(e,r)),r}async function Ma(e,t,r={}){let n=Date.now(),i=ER(t,r.cacheContext),o=Jm(e,r.enableImport===!0),a=RR(),s=mR(t,a),l={aborted:!1},d=gR(s,l,!hR(o)),p=await AR(o,d,r,i);return a.elapsedMs=Date.now()-n,{...yR(p,l),metrics:a}}function RR(){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 mR(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))}}function gR(e,t,r){return{...e,getRecords:async n=>{let i=await e.getRecords(n);if(i.searchAborted&&(t.aborted=!0,r))throw new mr;return i}}}function hR(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function yR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let r=new Set(e.warnings??[]);return r.add(dR),{...e,warnings:[...r]}}async function xa(e,t,r){return xu(e,{select:n=>dn(n,t,r),dml:n=>Tc(n,t,r)})}async function AR(e,t,r,n){let i=await xa(e,t,n);e.type!=="EXPLAIN"&&Fu(i);let o=Ca(e);if(o!==null&&!Om(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Un("phase15b",e),Ms("phase15b",e),or(e),e.type!=="EXPLAIN"&&await CR(e,t,n),e.type==="IMPORT")return Im(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 mc(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 Bc(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 TR(e,t,r,n);case"SELECT":return yt(e,t,r,n);case"UNION":return Dc(e,t,r,n);case"WITH":return YR(e,t,r,n);case"INSERT":return Tm(e,t,r,n);case"INSERT_SELECT":return Wc(e,t,r,n);case"UPSERT":return Vm(e,t,r,n);case"UPSERT_SELECT":return qc(e,t,r,n);case"UPDATE":return mc(e,t,r,n);case"DELETE":return $m(e,t,r,n);case"REORDER":return qm(e,t,r,n);case"SHOW_APPS":return zc(t);case"DESCRIBE":return Xc(e,t,n);case"EXPLAIN":return eg(e,t,n,r.maxRecords??1e4,r.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Pe(r.dmlMaxRows,"dmlMaxRows",ot):ot,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Pe(r.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 bR(e,t,r,n)}}var Fa=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Ka=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ba(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 SR(e=!1){let t=e?Ka:Fa;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:x(r==="$id"||r==="$err_count"?"number":"string")}]))}async function TR(e,t,r,n){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return wR(e,t,r,n)}async function wR(e,t,r,n){let i=await Q(e.appId,t,n),o=new Map(i.filter(b=>!b.inSubtable).map(b=>[b.code,b])),a=new Set(i.filter(b=>b.inSubtable).map(b=>b.code)),s=zo(e,i),l=e.checkGroups??[],d=lr(l);for(let b of d){if(b.field!=="$id"&&!o.has(b.field)&&!a.has(b.field))throw se(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${b.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(b.field!=="$id"&&!o.has(b.field)&&a.has(b.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${b.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([b,U])=>[b,U.fieldType]));p.set("$id","RECORD_NUMBER"),Ft(e,p);let c=Ba(e.where),u=[...new Set(["$id",...s.map(b=>b.subtableCode??b.field.code),...c,...d.map(b=>b.field)])];for(let b of c){if(b!=="$id"&&!o.has(b)&&!a.has(b))throw new Error(`ArgumentError: WHERE field ${b} does not exist in APP${e.appId}.`);if(b!=="$id"&&!o.has(b)&&a.has(b))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${b} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let f=s.some(b=>b.field.fieldType==="NUMBER")?await He(e.appId,t,n):void 0,E=b=>b.field==="$id"?z({fieldType:"__ID__"}):o.get(b.field)?.semantics??(o.has(b.field)?z(o.get(b.field)):void 0),R=Lt(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(R)}).`);let g=new Map([...o].map(([b,U])=>[b,U.fieldType])),m=new Map([...o.values()].flatMap(b=>b.optionOrder?[[b.code,new Set(Object.keys(b.optionOrder))]]:[])),h=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:er(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:m,allowKlike:!1}),T=h===null?"":W(h),P=(await Re(t.getRecords,e.appId,T,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(b=>({id:String(b.$id?.value??""),record:b,flat:et(b,null)})).filter(b=>e.where===null||q(e.where,b.flat,U=>p.get(U.field))),w=[],_=new Map,I=new Map,k=new Set,C=0,y=b=>{if(k.add(b.id),C+=1,e.summary){let H=JSON.stringify([b.id,b.subtable??"",b.field,b.code]),Ee=I.get(H);Ee?Ee.$err_count=String(Number(Ee.$err_count)+1):I.set(H,{$id:b.id,$err_subtable:b.subtable??"",$err_field:b.field,$err_code:b.code,$err_count:"1"});return}let U=JSON.stringify([b.id,b.subtable??"",b.field,b.code,b.message]),B=_.get(U);B?(B.$err_count=String(Number(B.$err_count)+1),b.subrow!==void 0&&(B.$err_subrow=`${B.$err_subrow},${b.subrow}`,B.$err_subrow_id=`${B.$err_subrow_id},${b.subrowId??""}`)):_.set(U,{$id:b.id,$err_field:b.field,$err_code:b.code,$err_message:b.message,$err_value:b.value,$err_subtable:b.subtable??"",$err_subrow:b.subrow===void 0?"":String(b.subrow),$err_subrow_id:b.subrowId??"",$err_count:"1"})},O=s.filter(b=>!b.subtableCode),L=new Map;for(let b of s){if(!b.subtableCode)continue;let U=L.get(b.subtableCode)??[];U.push(b),L.set(b.subtableCode,U)}for(let b of P){for(let U of O){let B=b.record[U.field.code]?.value,H=he(B,U.field,f);H.ok||y({id:b.id,field:U.field.code,code:H.code,message:H.message,value:Gr(B,U.field.fieldType)})}for(let[U,B]of L){let H=b.record[U]?.value;if(Array.isArray(H))for(let Ee=0;Ee<H.length;Ee++){let F=H[Ee];for(let D of B){let G=F.value?.[D.field.code]?.value,re=he(G,D.field,f);if(!re.ok){let Ye=ui(U,Ee,F);y({id:b.id,field:D.field.code,code:re.code,message:re.message,value:Gr(G,D.field.fieldType),...Ye})}}}}for(let U of Jn(l,b.flat,B=>p.get(B.field)))y({id:b.id,field:"",code:"ERR_CHECK",message:U.message,value:""})}if(e.summary)w.push(...I.values());else for(let b of _.values()){let U=Number(b.$err_count);b.$err_subtable!==""&&U>=2&&(b.$err_message=`${b.$err_message}\uFF08${U}\u884C: ${b.$err_subrow}\uFF09`),w.push(b)}let v={type:"SELECT",columns:[...e.summary?Ka:Fa],rows:w,rowCount:w.length,validateStats:{errorRecords:k.size,errorCount:C}};return We.set(v,SR(e.summary===!0)),v}var gt=1e4;function ht(e,t,r,n,i,o){let a=e.get(t);if(a&&(a.columns.length!==r.length||a.columns.some((l,d)=>l!==r[d])||!IR(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 IR(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||!Hn(i.semantics,n.semantics))return!1}return!0}function Ca(e){if(Array.isArray(e)){for(let t of e){let r=Ca(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=Ca(r);if(n!==null)return n}}return null}var pn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},fr=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function bR(e,t,r,n,i){let o=await Li(e.left,t,r,n,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 Li(e.low,t,r,n,i),d=await Li(e.high,t,r,n,i);if(!bt(">=",o,l,a)||!bt("<=",o,d,a))throw new pn(`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 Li(e.right,t,r,n,i);if(!bt(e.op,o,s,a))throw new pn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Li(e,t,r,n,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return V(e);case"STRING":return e.value;case"ARITH":return String(Oa(e));case"SCALAR_SUBQUERY":try{return await PR(e.query,t,r,n,i)}catch(o){throw o instanceof fr?new pn(o.message):o}}}async function PR(e,t,r,n,i){let{query:o,probed:a}=NR(e),s=await un(o,t,r,n,i);if(s.columns.length!==1)throw new fr(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new fr("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 fr(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function NR(e){return ne(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 Oa(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=Oa(e.left),r=Oa(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 Wi(e,t,r,n,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Fe(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await Q(u,t,r);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let R=await qa(u,t,r);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return sr(z({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(u.appId)?.get(me(u,f));if(!R)return;let g=R.semantics??z(R),m=R.fieldType==="STATUS"&&p.has(u.appId)?{...g,optionOrder:p.get(u.appId)}:g;return sr(m,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>ve(R)===u.tableAlias);return E?E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??x("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?n?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??x("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Di(E,u.field)!==void 0))return f.length>1?x("string"):void 0}}function $a(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=>Fe(i.condition))?!0:Object.values(n).some(t)};return e.columns.some(t)}function Sc(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(De(n.field)):n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?i=x("number"):n.type==="AGGREGATE"?n.func==="MIN"||n.func==="MAX"||n.func==="MODE"?n.arg.type!=="WILDCARD"&&(i=Ha(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"?x("string"):x("number"):n.type==="STRFUNC_COL"?i=kt(n.expr).semantics:(n.type==="LITERAL_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="CASE_COL"||n.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&r.set(n.alias,i)}return n=>n.tableAlias===null&&r.has(n.field)?r.get(n.field):t(n)}async function dn(e,t,r,n){if(e.where===null)return Lt(null,()=>{});let i=await Wi(e,t,r,n);return Lt(e.where,i)}function Dt(e){let t=e.reasons.find(n=>n.code==="WHERE_FIELD_UNRESOLVED"||n.code==="WHERE_OPERATOR_UNSUPPORTED")??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 Ui(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Tc(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let n=Fe(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?Lt(null,()=>{}):Lt(e.where,o=>{if(o.field==="$id")return z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?z(a):void 0)})}async function Er(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let n=await Tc(e,t,r);if(n.capability!=="EXACT_PUSHDOWN")throw new j(`WHERE predicate cannot be represented by kintone REST (${Dt(n)})`)}async function yt(e,t,r,n,i,o=!1){let a;if(await Hi(e,t,n,i),_R(e))return a=kR(e),o&&We.set(a,await _a(e,a.columns,t,n,i)),a;await Jc(e,t,r,n,i);let s=await dn(e,t,n,i);if(s.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(s)}).`);let l=Ce(e),d=s.capability==="EXACT_PUSHDOWN"?l:"FULL_SCAN",p=await En(e,t,n,i),c=Ui(e)?(e.orderMode==="KINTONE_NATIVE"?zr:qr)({stmt:e,staticMode:d,whereCapability:s.capability,whereReasons:s.reasons,orderSemantics:p.semantics,maxRecords:r.maxRecords??1e4,hasKlike:oe(e.where)}):null;await MR(e,c?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":d,t,n);let u=wc(e,r,c);try{d==="SIMPLE"?a=await UR(e,t,u.effectiveOptions,n,c,p):a=await HR(e,t,u.effectiveOptions,n,i,s.capability==="EXACT_PUSHDOWN",p)}catch(f){Ic(u,f)}return o&&We.set(a,await _a(e,a.columns,t,n,i)),a}var fn=new WeakMap;async function CR(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 Hi(o,t,r);for(let s of Object.values(a))await i(s)};await i(e)}async function OR(e,t,r,n){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await Q(p,t,r);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=me(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=n?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,u.field)!==null).length,R=i.some(m=>l(m,u.field)),g=ve(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&g?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(g=>ve(g)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function Hi(e,t,r,n){fn.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await OR(e,t,r,n),s=al(e,a,il);s&&fn.set(e,s)}function LR(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 wc(e,t,r){let n=r?.kind==="CANONICAL_REST_TOP_N"||r?.kind==="KORDER_NATIVE"||r?.kind==="KORDER_CURSOR"?Tt({...e,orderBy:[]}):Tt(e),i=n.size>0&&t.onLimitReached==="truncate";return{reasons:n,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Ic(e,t){throw e.reasons.size>0&&t instanceof ye?new ye(LR(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function nc(e,t){try{return await t()}catch(r){Ic(e,r)}}function nt(e){return e?.type==="BOOLEAN"&&e.value===!1}function _R(e){return e.from.appId===0&&e.from.cteName===at}function Mi(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Mi(e.left)||Mi(e.right):e.type==="STRING_FUNC"?Va(e):!1}function DR(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:on(e)}function on(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Va(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?on(e.left)||on(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"?Mi(r):on(r))):!1}function Va(e){return e.args.some(t=>DR(t))}function vR(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(Mi(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Va(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(on(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 kR(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");vR(e);let t=ua([{}],e.columns),{rows:r,columns:n}=Ti(t,e.columns),i=Si(r,e.limit,e.offset);return{type:"SELECT",rows:i,columns:n,rowCount:i.length,warnings:[]}}async function UR(e,t,r,n,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Lc(e):e,s=Mn(a),l=i?.kind==="CANONICAL_LOCAL"?wt(e,e.from):s.fields,d=await Wa(e,t,n),p=Ya(e,d),c=e.columns.some(_=>_.type==="CASE_COL")?await Wi(e,t,n,void 0,$a(e)):void 0,u=r.maxRecords??1e4,f=new Set,E=r.onLimitReached??"error",R=r.fetchParallel??1,g=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&m!==null&&m<=u&&!oe(e.where)?m:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let _=await du({client:t,app:s.app,fields:s.fields,query:na(e),offset:e.offset??0,limit:e.limit});T=_.records,_.cleanupWarning&&f.add(_.cleanupWarning)}else if(g)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let _=e.where?W(e.where):"";T=await Re(t.getRecords,s.app,_,l,{parallel:R,maxRecords:u,stopAfter:h,onLimit:E,onTruncate:I=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=T.map(_=>et(_,null));g||(S=sa(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,la(e.columns,void 0,p.row,c)),S=Si(S,e.limit,e.offset));let{rows:P,columns:w}=Ti(S,e.columns,void 0,p.row,void 0,c);return{type:"SELECT",rows:P,columns:w,rowCount:P.length,warnings:[...f]}}async function MR(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 d of s)l.add(d)};if(t==="SIMPLE"){let a=Mn(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,wt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!JR(u));if(l.length===0)continue;let d=await Q(a,r,n);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function bc(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}async function Pc(e,t,r){let n=new Map,i=(a,s)=>{if(s===null)return;let l=n.get(a);l?l.push(s):n.set(a,[s])};if(i(e.from.appId,bc(e)),e.where!==null)for(let a of e.joins){if(!a.table.alias||a.table.subtableCode||a.table.cteName!==null)continue;let s=_r(e.where,{tableAlias:a.table.alias});i(a.table.appId,s)}let o=await Promise.all([...n.entries()].map(async([a,s])=>{let[l,d]=await Promise.all([de(a,t,r),QR(a,t,r)]),p=xR(s).filter(c=>l.get(c)==="STATUS");if(p.length>0){let c=await ja(a,t,r);if(c.enable&&c.states&&c.states.length>0){let u=new Set(c.states.map(f=>f.name));for(let f of p)d.set(f,u)}}return[a,l,d]}));return{fieldTypesByApp:new Map(o.map(([a,s])=>[a,s])),fieldOptionsByApp:new Map(o.map(([a,,s])=>[a,s]))}}function xR(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 rt(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"&&xi(e.left.expr,t),e.right.type==="CASE_VALUE"&&xi(e.right.expr,t);return;case"LOGICAL":rt(e.left,t),rt(e.right,t);return;case"NOT":case"GROUP":rt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function xi(e,t){for(let r of e.branches)rt(r.condition,t)}function FR(e){let t=[];rt(e.where,t),rt(e.having,t);for(let r of e.columns)r.type==="CASE_COL"&&xi(r.expr,t);return t}function ve(e){return e.alias??e.cteName}function Nc(e,t){return[e.from,...e.joins.map(r=>r.table)].find(r=>ve(r)===t)}function Ga(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Wa(e,t,r){let n=FR(e);if(n.length===0)return new Map;let i=new Set,o=Ga(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=Nc(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 de(s,t,r)]));return new Map(a)}function De(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Cc(e,t,r){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||_t(t,r)}function _t(e,t){if(e.type==="FIELD_REF"){t.push(De(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){_t(e.left,t),_t(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){_t(e.left,t),_t(e.right,t);return}if(e.type==="STRING_FUNC"){for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&_t(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"&&_t(r,t)}function Fi(e,t){if(e.type==="AGG_REF"){Cc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Fi(e.left,t),Fi(e.right,t))}function La(e,t){for(let r of e.args)r.type==="AGG_REF"||r.type==="AGG_ARITH"?Fi(r,t):an(r,t)}function an(e,t){if(e.type==="STRING_FUNC"){La(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){an(e.left,t),an(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"?La(n,t):n.type!=="ARRAY"&&n.type!=="FIELD_REF"&&n.type!=="ARITH"&&an(n,t)}}function KR(e){let t=[];for(let r of e)r.type==="AGGREGATE"?Cc(r.func,r.arg,t):r.type==="ARITH_AGG_COL"?Fi(r.expr,t):r.type==="STRFUNC_COL"?La(r.expr,t):r.type==="SCALAR_VALUE_COL"&&an(r.expr,t);return t}var BR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function $R(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":BR.has(e.fieldType)?"string":void 0}async function Oc(e,t,r,n){let i=KR(e.columns);if(i.length===0)return;let o=new Set,a=Ga(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=Nc(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,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(g=>E.get(g)?.fieldType==="STATUS"))return;let R=await qa(f,t,r);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??z(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 g=p.find(m=>ve(m)===f.tableAlias);if(!g)return;if(g.cteName!==null)return n?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(g.appId)?.get(me(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return n?.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 g=p.flatMap(m=>{if(m.cteName!==null){let T=n?.get(m.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let h=s.get(m.appId)?.get(me(m,f.field));return h?[c(h,m.appId)]:[]});return g.length!==1?void 0:g[0]}if(!E)return;let R=f.tableAlias!==null?p.find(g=>ve(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function me(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Di(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Ve(e,t){let r=e.semantics??z(e);return{sortKind:$R(e),fieldType:e.fieldType,semantics:t===void 0?r:sr(r,t,e.code)}}function Lc(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:x(e)}}function Ge(){return{semantics:x("string","KSQL_UNKNOWN")}}function _c(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Rr(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:z({fieldType:"__ID__"})};if(e==="_rid")return Y("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Y("number")}var VR=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function kt(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return VR.has(e.func)?Y("number"):Y("string")}function gr(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?_c():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?kt(e):e.type==="FIELD_REF"?t(De(e.field))??Ge():e.type==="FIELD"?t(e)??Ge():Ge()}function Yi(e){if(e.length===0)return Ge();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&&Hn(r(n.semantics),r(t.semantics)))?e.every(i=>Hn(i.semantics,t.semantics))?t:{...t,semantics:r(t.semantics)}:e.some(n=>n.semantics?.compareMode==="unsupported")?_c("KSQL_MIXED_UNSUPPORTED"):Ge()}function Ha(e,t){if(e.type==="FIELD_REF")return t(De(e.field))??Ge();if(e.type==="FIELD")return t(e)??Ge();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 kt(e);let r=e.branches.map(n=>gr(n.result,t));return e.elseResult&&r.push(gr(e.elseResult,t)),Yi(r)}function GR(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 _a(e,t,r,n,i){let o=new Map;GR(e)&&await Promise.all(Ga(e).map(async c=>{if(o.has(c.appId))return;let u=await Q(c.appId,r,n);o.set(c.appId,new Map(u.map(f=>[f.code,f])))}));let a=[e.from,...e.joins.map(c=>c.table)],s=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=o.get(e.from.appId)?.get(c.field);return R?Ve(R,e.from.appId):void 0}let f=a.find(R=>ve(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return i?.get(f.cteName)?.columnMeta?.get(c.field);let E=o.get(f.appId)?.get(me(f,c.field));return E?Ve(E,f.appId):Rr(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=o.get(e.from.appId)?.get(me(e.from,c.field));return f?Ve(f,e.from.appId):Rr(c.field)}let u=a.flatMap(f=>{if(f.cteName!==null){let g=i?.get(f.cteName);return g?.columns.includes(c.field)?[g.columnMeta?.get(c.field)]:[]}let E=o.get(f.appId)?.get(me(f,c.field)),R=E?Ve(E,f.appId):Rr(c.field);return R?[R]:[]});return u.length===1?u[0]:void 0},l=new Map,d=e.columns.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let c of t){let u=s(De(c));u&&l.set(c,u)}return l}if(d)for(let c of t){let u=s(De(c));u&&l.set(c,u)}return e.columns.filter(c=>c.type!=="WILDCARD"&&c.type!=="PARENT_WILDCARD").forEach((c,u)=>{let f=d?"alias"in c&&c.alias?c.alias:void 0:t[u];if(!f)return;let E;if(c.type==="FIELD")E=s(De(c.field));else if(c.type==="AGGREGATE")c.func==="GROUP_CONCAT"?E=Y("string"):c.func==="COUNT"||c.func==="SUM"||c.func==="AVG"||c.func==="STDDEV_POP"||c.func==="STDDEV_SAMP"||c.func==="VAR_POP"||c.func==="VAR_SAMP"||c.func==="MEDIAN"?E=Y("number"):(c.func==="MIN"||c.func==="MAX"||c.func==="MODE")&&c.arg.type!=="WILDCARD"&&(E=Ha(c.arg,s));else if(c.type==="ARITH_AGG_COL"||c.type==="ARITH_COL")E=Y("number");else if(c.type==="GROUPING_COL")E=Y("number");else if(c.type==="LITERAL_COL")E=Y("string");else if(c.type==="SCALAR_VALUE_COL"){let R=c.expr;R.type==="STRING_FUNC"?E=kt(R):R.type==="NUMBER"||R.type==="SCALAR_ARITH"?E=Y("number"):R.type==="FIELD"?E=s(R):E=Y("string")}else if(c.type==="STRFUNC_COL")E=kt(c.expr);else if(c.type==="WINDOW_COL")E=Y("number");else if(c.type==="CASE_COL"){let R=c.expr.branches.map(g=>gr(g.result,s));c.expr.elseResult&&R.push(gr(c.expr.elseResult,s)),E=Yi(R)}else c.type==="SCALAR_SUBQUERY_COL"&&(E=Ge());E&&l.set(f,E)}),l}function WR(e,t){let r=We.get(e),n=We.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=r?.get(o),l=t.columns[a],d=l===void 0?void 0:n?.get(l);s&&d?i.set(o,Yi([s,d])):(s||d)&&i.set(o,Ge())}),i}function Ya(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 d=r.find(p=>ve(p)===s.tableAlias);return!d||d.cteName!==null?void 0:Di(d,s.field)??t.get(d.appId)?.get(me(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Di(e.from,s.field)??t.get(e.from.appId)?.get(me(e.from,s.field));if(r.some(d=>d.cteName!==null))return;let l=n.flatMap(d=>{let p=Di(d,s.field)??t.get(d.appId)?.get(me(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function HR(e,t,r,n,i,o=!0,a){let s=r.maxRecords??1e4,l=new Set,d=r.fetchParallel??1;await Promise.all([gn(e.where,t,r,n,i),gn(e.having,t,r,n,i)]);let[p,c,u]=await Promise.all([Pc(e,t,n),Wa(e,t,n),Oc(e,t,n,i)]),f=Ya(e,c),E=await Wi(e,t,n,i,Fe(e.having)||$a(e)),R=Sc(e,E),g=rr(e,p);ho(g);let m=g.mainCondition,h=g.joinConditions,T=nt(e.where),S=T?Promise.resolve([]):sn(e,e.from,t,s,d,!0,r.onLimitReached??"error",l,m,o),P=[],w=[];for(let U of e.joins){if(T){P.push({join:U,promise:Promise.resolve([])});continue}let B=U.table.alias?h.get(U.table.alias)??null:null;B!==null?P.push({join:U,promise:sn(e,U.table,t,s,d,!1,r.onLimitReached??"error",l,B)}):w.push(U)}let _=Zc(e.columns,t,r,n,i),I=a?Promise.resolve(a):En(e,t,n,i);_.catch(()=>{}),I.catch(()=>{});let k=await S,C=new Map;C.set(e.from.alias,k);for(let{join:U,promise:B}of P)C.set(U.table.alias,await B);await Promise.all(w.map(async U=>{let H=await xc(e,U,C,t,s,d,r.onLimitReached??"error",l,null)??await sn(e,U.table,t,s,d,!1,r.onLimitReached??"error",l,null);C.set(U.table.alias,H)}));let y=await _,{optionOrders:O,sortKinds:L,semantics:N}=await I,{rows:v,columns:b}=da({tables:C,stmt:e,scalarCache:y,optionOrders:O,sortKinds:L,orderSemantics:N,fieldTypeResolver:f.row,fieldSemanticsResolver:E,havingFieldTypeResolver:f.having,havingFieldSemanticsResolver:R,aggregateSortKindResolver:u,appliedKlikes:g.appliedKlikes,resolvedGroupingSpec:fn.get(e)});return{type:"SELECT",rows:v,columns:b,rowCount:v.length,warnings:[...l]}}async function Dc(e,t,r,n){let[i,o]=await Promise.all([e.left.type==="UNION"?Dc(e.left,t,r,n):yt(e.left,t,r,n),yt(e.right,t,r,n)]),a=i.columns,s=o.columns,l=o.rows.map(c=>{let u={};return a.forEach((f,E)=>{u[f]=c[s[E]??f]??""}),u}),d=[...i.rows,...l],p=e.all?d:vc(d,a);return{type:"SELECT",rows:p,columns:a,rowCount:p.length}}function vc(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 YR(e,t,r,n,i,o=!1){if((i==null||i.size===0)&&ut(e))return yt(ct(e),t,r,n,void 0,o);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await zc(t):s.query.type==="DESCRIBE"?l=await Xc(s.query,t,n):l=await Ut(s.query,t,r,a,n,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:We.get(l)})}return Ut(e.query,t,r,a,n,o)}async function Ut(e,t,r,n,i,o=!1){if(e.type==="UNION"){let[l,d]=await Promise.all([Ut(e.left,t,r,n,i,o),Ut(e.right,t,r,n,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(g=>{let m={};return p.forEach((h,T)=>{m[h]=g[c[T]??h]??""}),m}),f=[...l.rows,...u],E=e.all?f:vc(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return o&&We.set(R,WR(l,d)),R}if(!(e.from.cteName!=null&&e.from.cteName!==at||e.joins.some(l=>l.table.cteName!=null)))return yt(e,t,r,i,n,o);let s=await jR(e,t,r,n,i);return o&&We.set(s,await _a(e,s.columns,t,i,n)),s}async function jR(e,t,r,n,i){await Hi(e,t,i,n);let o=fn.get(e),a=new Set,s=F=>{if(F.alias!==null||F.cteName===null)return F;let D=ve(F);return a.add(D),{...F,alias:D}};e={...e,from:s(e.from),joins:e.joins.map(F=>({...F,table:s(F.table)}))};let l=new Set;for(let F of[e.from,...e.joins.map(D=>D.table)]){let D=ve(F);if(D!==null){if(l.has(D))throw new Error(`ArgumentError: effective alias ${D} is used by multiple tables.`);l.add(D)}}let d=F=>{let D=n.get(F);if(!D)throw new Error(`ArgumentError: materialized source ${F} is not available.`);return D};for(let F of[e.from,...e.joins.map(D=>D.table)])F.cteName!==null&&d(F.cteName);let p=r.maxRecords??1e4,c=new Set,u=r.fetchParallel??1;await Promise.all([gn(e.where,t,r,i,n),gn(e.having,t,r,i,n),Jc(e,t,r,i,n)]);let f=await dn(e,t,i,n);if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(f)}).`);let E=await En(e,t,i,n),R=Ui(e)?(e.orderMode==="KINTONE_NATIVE"?zr:qr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:E.semantics,maxRecords:p,hasKlike:oe(e.where)}):null,g=wc(e,r,R),m=g.effectiveOptions,[h,T,S]=await Promise.all([Pc(e,t,i),Wa(e,t,i),Oc(e,t,i,n)]),P=Ya(e,T),w=await Wi(e,t,i,n,Fe(e.having)||$a(e)),_=Sc(e,w),I=rr(e,h);ho(I);let k=Zc(e.columns,t,m,i,n),C=Promise.resolve(E);k.catch(()=>{}),C.catch(()=>{});let y=new Map,O=new Map;if(e.from.cteName!=null){let F=d(e.from.cteName);y.set(e.from.alias,F.rows.map(ic)),O.set(e.from.alias,F.columns)}else{let F=await nc(g,()=>sn(e,e.from,t,p,u,!0,m.onLimitReached??"error",c,I.mainCondition,f.capability==="EXACT_PUSHDOWN"));y.set(e.from.alias,F)}let L=e.joins.map(F=>nc(g,async()=>{if(F.table.cteName!=null){let D=d(F.table.cteName);y.set(F.table.alias,D.rows.map(ic)),O.set(F.table.alias,D.columns)}else{let D=F.table.alias?I.joinConditions.get(F.table.alias)??null:null,re=await xc(e,F,y,t,p,u,m.onLimitReached??"error",c,D)??await sn(e,F.table,t,p,u,!1,m.onLimitReached??"error",c,D);y.set(F.table.alias,re)}}));await Promise.all(L);let N=await k,{optionOrders:v,sortKinds:b,semantics:U}=await C,B=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:H,columns:Ee}=da({tables:y,stmt:e,scalarCache:N,optionOrders:v,sortKinds:b,orderSemantics:U,fieldTypeResolver:P.row,fieldSemanticsResolver:w,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:_,aggregateSortKindResolver:S,appliedKlikes:I.appliedKlikes,sourceColumns:B,tableColumns:O,hiddenQualifiedAliases:a,resolvedGroupingSpec:o});return{type:"SELECT",rows:H,columns:Ee,rowCount:H.length,warnings:[...c]}}function ic(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{value:r??""}]))}async function sn(e,t,r,n,i,o,a,s,l=null,d=!0){let p=wt(e,t),c=R=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${R} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${R} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let R=o&&d?Ys(e,t.appId).query:"",g=l!==null?W(l):"",m=R&&g?`(${R}) and (${g})`:R||g;return(await Oe(r.getRecords,t.appId,m,p,{parallel:i,maxRecords:n,onLimit:a,onTruncate:c})).records}let E=(await Oe(r.getRecords,t.appId,"",p,{parallel:i,maxRecords:n,onLimit:a,onTruncate:c})).records;return Pu(E,t.subtableCode)}var kc=50;function qR(e){let t=Ae(e);return t!==null?JSON.stringify(t):e}function Da(e){return JSON.stringify(e)}function Mt(e,t){return JSON.stringify(e.map((r,n)=>t[n]?qR(r):r))}function yn(e,t){let r=e.raw.get(Da(t));if(r!==void 0)return r;if(e.numericKey.some(Boolean))return e.normalized.get(Mt(t,e.numericKey))}async function An(e,t,r,n,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(g,m,h)=>{let T=g.get(m);(T===void 0||h>T)&&g.set(m,h)},c=(g,m)=>{p(d.raw,Da(g),m),l.some(Boolean)&&p(d.normalized,Mt(g,l),m)},u=new Set,f=[],E=new Set;for(let g of r){let m=Da(g);E.has(m)||(E.add(m),g.some(h=>h==="")?f.push(g):u.add(g[0]))}let R=["$id",...t];for(let g of yr([...u],kc)){let m=`${t[0]} in (${g.map(Ki).join(",")})`,h=await Re(n.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let T of h){let S=Number(T.$id?.value);Number.isFinite(S)&&c(t.map(P=>Uc(T[P]?.value)),S)}}for(let g of f){let m=t.map((T,S)=>`${T} = ${Ki(g[S])}`).join(" and "),h=await Re(n.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(g,zR(h))}return d}function zR(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 Uc(e){return typeof e=="string"?e:e==null?"":String(e)}function Ki(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function yr(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var Mc=50,XR=6,oc=Mc*XR;async function xc(e,t,r,n,i,o,a,s,l=null){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let d=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!d||!p)return null;let c,u,f;if(d===t.table.alias&&p!==t.table.alias)c=p,u=t.on.right.field,f=t.on.left.field;else if(p===t.table.alias&&d!==t.table.alias)c=d,u=t.on.left.field,f=t.on.right.field;else return null;let E=r.get(c);if(!E)return null;let R=new Set;for(let w of E){let _=w[u]?.value,I=Uc(_).trim();I.length>0&&R.add(I)}let g=[...R];if(g.length===0)return[];if(g.length>oc)return s.add(`JOIN\u30AD\u30FC\u304C ${g.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${oc} \u4EF6\uFF09\u3002`),null;let m=wt(e,t.table),h=w=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${w} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${w} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},T=yr(g,Mc),S=[],P=new Set;for(let w of T){let _=`${f} in (${w.map(Ki).join(",")})`,I=l!==null?`(${_}) and (${W(l)})`:_,k=await Oe(n.getRecords,t.table.appId,I,m,{parallel:o,maxRecords:i,onLimit:a,onTruncate:h});for(let C of k.records){let y=`${C.$id?.value??""}:${JSON.stringify(C)}`;P.has(y)||(P.add(y),S.push(C))}}return S}var ac=new Map,sc=new Map,lc=new Map,uc=new Map,cc=new Map,pc=new Map;function Ar(e,t,r){return e.get(t)?.get(r)}function Sr(e,t,r,n){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(r,n)}function JR(e){return e.startsWith("_")||e.startsWith("$")}async function Q(e,t,r){let n=Ar(uc,r,e);if(n)return n;let i=t.getFields(e);return Sr(uc,r,e,i),i}async function He(e,t,r){let n=Ar(pc,r,e);if(n)return n;let i=t.getNumberPrecision(e);return Sr(pc,r,e,i),i}async function ja(e,t,r){let n=Ar(cc,r,e);if(n)return n;let i=t.getProcessStatuses(e);return Sr(cc,r,e,i),i}async function qa(e,t,r){let n=await ja(e,t,r);return n.enable&&n.states!==null?new Map(n.states.map(i=>[i.name,i.index])):void 0}async function de(e,t,r){let n=Ar(ac,r,e);if(n)return n;let i=await Q(e,t,r),o=new Map(i.map(a=>[a.code,a.fieldType]));return Sr(ac,r,e,o),o}async function va(e,t,r){let n=Ar(sc,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 Sr(sc,r,e,o),o}async function QR(e,t,r){let n=await va(e,t,r);return new Map([...n.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function dc(e,t,r){let n=Ar(lc,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 Sr(lc,r,e,o),o}function ZR(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 em(e,t,r,n){let i=ZR(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await Q(c,t,r);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?Ve(R,e.from.appId):void 0}let f=o.find(R=>ve(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return n?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(me(f,c.field));return E?Ve(E,f.appId):Rr(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(me(e.from,c.field));return f?Ve(f,e.from.appId):Rr(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let g=n?.get(f.cteName),m=g?.columns.includes(c.field)?g.columnMeta?.get(c.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(me(f,c.field)),R=E?Ve(E,f.appId):Rr(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(De(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=Y("number");else if(c.type==="GROUPING_COL")u=Y("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=Y("string");else if(c.type==="STRFUNC_COL")u=kt(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=Ge();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>gr(E.result,l));c.expr.elseResult&&f.push(gr(c.expr.elseResult,l)),u=Yi(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Ha(c.arg,l)):u=c.func==="GROUP_CONCAT"?Y("string"):Y("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(De(c))?.semantics;if(!u){let E=De(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await ja(u.source.appId,t,r);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}async function En(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([tm(e,t,r),rm(e,t,r),em(e,t,r,n)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function tm(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 va(a.appId,t,r);for(let[l,d]of s.entries())n.has(l)||n.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await va(a.appId,t,r);for(let[l,d]of s.entries())n.set(`${a.alias}.${l}`,d)}return n}async function rm(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 dc(a.appId,t,r);for(let[l,d]of s.entries())n.has(l)||n.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await dc(a.appId,t,r);for(let[l,d]of s.entries())n.set(`${a.alias}.${l}`,d)}return n}function Fc(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 nm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function im(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||nm.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function ke(e,t,r,n){let i=await Q(e,r,n);return im(e,t,i),i}async function it(e,t,r,n,i){let o=new Map(r.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?He(e,n,i):void 0}function xt(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),d=o[s]?.value??"",p=he(d,l,n);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function om(e,t,r,n,i){let o=await ke(e.appId,e.fields,t,n),a=await Hr({statement:e,fieldInfos:o,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",ot),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),statementNumber:i,loadNumberPrecision:()=>He(e.appId,t,n)});return Mm(e,a,o)}async function am(e,t,r,n,i){let{fieldInfos:o,prepared:a}=await Kc(e,t,r,n,i);return Fm(e,a,o)}async function Kc(e,t,r,n,i){let o=await ke(e.appId,e.fields,t,n),a=new Map(o.map(g=>[g.code,g.fieldType])),s=Yc(e),l=new Set;for(let g of s){let m=Mt(g,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 d=await An(e.appId,e.keyFields,s,t,r,a),p=s.map(g=>yn(d,g)),c=new Map,u=[...new Set(p.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of yr(u,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of m.records){let T=Number(h.$id?.value);Number.isSafeInteger(T)&&T>0&&c.set(T,h)}}let E=p.map((g,m)=>({sourceRowIndex:m,...g===void 0?{}:{targetId:g,snapshot:c.get(g)}})),R=await iu({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",ot),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),statementNumber:i,loadNumberPrecision:()=>He(e.appId,t,n)});return{fieldInfos:o,prepared:R}}async function sm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await ke(e.appId,e.fields,t,n),o=await Hr({statement:e,fieldInfos:i,dmlMaxRows:Pe(r.dmlMaxRows,"dmlMaxRows",ot),dmlMaxSubtableRows:Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),loadNumberPrecision:()=>He(e.appId,t,n)}),a=Zo(o);if(r.confirm&&!await r.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ji(a),applyDiagnostic:a}))throw new Z("INSERT",o.guards.parentRows);let s=await uu(o,t,a);return{...s,diagnostic:Ie(a,s)}}async function lm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Kc(e,t,r,n,1),o=ea(i);if(r.confirm){let s=ji(o);if(!await r.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Z("UPDATE",i.guards.parentRows)}let a=await cu(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:Ie(o,a)}}function um(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 ji(e,t=!0){let r=e.branches.find(u=>u.branch==="insert"),n=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=um(r?_i(r):[],n?_i(n):[]),a=cm(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&r)return{...c,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&r&&n){let u=_i(r),f=_i(n);return{...c,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:u.reduce((E,R)=>E+R.appendRows,0),tables:u},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 c}function _i(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let r=vt(t,"APPEND"),n=vt(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-r-n,appendRows:r,removeRows:n}})}function vt(e,t){return e.operations.filter(r=>r.kind===t).reduce((r,n)=>r+(n.count??0),0)}function cm(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:vt(r,"ADD"),removedValues:vt(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 Bc(e,t,r,n,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return om(e,t,r,n,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return am(e,t,r,n,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Hc(e,t,r,n,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await za(e,t,r,n,i,o)).result}var Bi=class extends Error{constructor(r,n){super(`RejectLimitExceededError: ${r}`);this.diagnostic=n;this.name="RejectLimitExceededError"}};async function za(e,t,r,n,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(N=>N.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(N=>N.field):e.fields,c=await ke(e.appId,p,t,n);e.type==="UPDATE"&&await Er(e,t,n);let u=new Map(c.map(N=>[N.code,N])),f=await it(e.appId,p,c,t,n),E=Me(c,d),R=Nu(E),g=(await pm(e,l,t,r,n,i,u,e.type==="UPDATE"?R:void 0)).sort((N,v)=>N.rowNumber-v.rowNumber),m=g.filter(N=>N.mode==="update"),h=e.type==="UPDATE"?Em:e.type.startsWith("UPSERT")?N=>Rm(N,t,r.maxRecords??1e4):void 0,T=r.loadUpdateModeSnapshots??h,S=m.length>0&&T!==void 0,P=new Map;if(S){Yo(m,p,c);let N=await T({appId:e.appId,candidates:m,fields:R}),v=new Map;for(let b of m){if(b.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${b.rowNumber}).`);let U=N.get(b.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${b.targetId}.`);let B=Cu(U,b.record??{});v.set(b.rowNumber,B)}f===void 0&&[...v.values()].some(b=>Ct(b,E))&&(f=await He(e.appId,t,n));for(let b of m){let U=v.get(b.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${b.rowNumber}.`);P.set(b.rowNumber,Ot(U,E,f,o,b.rowNumber,l))}}let w=jo(g,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:_,invalidRows:I,invalidRowNumbers:k}=w;if(S){let N=new Map(w.candidateResults.map(v=>[v.rowNumber,v]));_=[],k=new Set;for(let v of g){let b=N.get(v.rowNumber);if(!b)throw new Error(`InternalError: validation detail is missing for row ${v.rowNumber}.`);if(v.mode==="create"){let H=[...b.preErrors,...b.builtInErrors,...b.checkErrors];_.push(...H),H.length>0&&k.add(v.rowNumber);continue}let U=P.get(v.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${v.rowNumber}.`);let B=Ou({rowNumber:v.rowNumber,setFields:p,normalizedPostImage:U.normalizedRecord,preErrors:b.preErrors,postImageErrors:U.errors,checkErrors:b.checkErrors});v.record=B.writeRecord,_.push(...B.errors);for(let H of B.invalidRowNumbers)k.add(H)}I=k.size}let C=[...d,...cr],y={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-I,invalidRows:I,errorCount:_.length,columns:C,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},O=new Map;for(let N of d){if(N==="$id"){O.set(N,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let v=u.get(N);v&&O.set(N,Ve(v,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let N of cr)O.set(N,Y(L.has(N)?"number":"string"));return hr.set(y,O),{result:y,candidates:g,invalidRowNumbers:k,columnMeta:O}}async function fc(e,t,r,n,i,o){let a=await za(e,t,r,n,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");ht(i,s,a.result.columns,a.result.errors,r.tempTableMaxRows??gt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Bi(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(r.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await r.confirm(d.length,E))throw new Z(E,d.length)}let p={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let g=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(g.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=d.filter(E=>E.mode==="create"),u=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(g=>g.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function pm(e,t,r,n,i,o,a,s){if(e.type==="UPDATE")return fm(e,r,n,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")Ec(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),Ft(e,u),l=e.values.map(S=>S.map((P,w)=>P.type==="CASE_VALUE"?Et(P.expr,{},a.get(e.fields[w])?.fieldType):P));else{let S=await Ja.materialize(e,r,n,i,o,[...a.values()]),P=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!P&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(P&&new Set(S.columns).size!==S.columns.length)throw se("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");Ec(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let w=S.columnMeta;u=new Map(S.columns.map(_=>{let I=w?.get(_),k=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[_,k]})),Ft(e,u),l=S.rows.map(_=>S.columns.map(I=>_[I]??""))}let f=l.map((S,P)=>({rowNumber:P+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,_)=>p&&!p[P]?.has(w)?[]:[[w,S[_]]])),preErrors:[...c?.[P]??[]],record:{},evaluationRow:d?.[P]??Object.fromEntries(e.fields.map((w,_)=>[w,Ue(S[_])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,P])=>[S,P.fieldType])),R=f.map(S=>e.keyFields.map(P=>Ue(S.payload.get(P)))),g=e.keyFields.map(S=>E.get(S)==="NUMBER"),m=new Map;for(let S of R){let P=Mt(S,g);m.set(P,(m.get(P)??0)+1)}let h=Gi.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 T=await An(e.appId,e.keyFields,R,r,n,E);return f.forEach((S,P)=>{let w=R[P],_=yn(T,w);S.mode=_===void 0?"create":"update",_!==void 0&&(S.targetId=_),e.keyFields.forEach((I,k)=>{w[k]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(m.get(Mt(w,g))??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 Xa(e){return e.checkGroups?lr(e.checkGroups):[]}function Ec(e,t){let r=new Set(t);for(let n of Xa(e)){if(n.tableAlias!==null)throw se(`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 se(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var dm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Ft(e,t){if(e.checkGroups)for(let r of bl(e.checkGroups)){let n=r.tableAlias?`${r.tableAlias}.${r.field}`:r.field,i=t.get(n)??t.get(r.field);if(dm.has(i??""))throw se(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${n} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function fm(e,t,r,n,i,o){if(e.from)return gm(e,e.from,t,r,n,i,o);await Qc(e.assignments,t,r,n);let a=await de(e.appId,t,n),s=$c(e,a);Ft(e,ka(a,e.appId));let l,d=new Map,p=new Map;if(ei(e)){let c=Lo(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Oe(t.getRecords,c.app,c.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});p=vi(f.records),d=p,l=Do(e,f.records,a).flatMap(E=>E.records)}else{let c=Mr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Oe(t.getRecords,c.app,c.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});p=vi(f.records),d=p,l=xr(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Oe(t.getRecords,c.app,c.query,[...o],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});p=vi(u.records),l=xr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await Ri(t.getRecords,c.app,c.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1});l=xr(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:mm(d.get(c.id),e.appId),evaluationFieldTypes:ka(a,e.appId)}))}function vi(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 Em(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 Rm(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 ye(`\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 yr(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 d=l.$id?.value,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of n)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function $c(e,t){if(e.from)return[];let r=new Set;for(let n of Xa(e)){if(n.tableAlias!==null&&n.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw se(`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 se(`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 mm(e,t){if(!e)return{};let r=et(e,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([n,i])=>[`APP${t}.${n}`,i])])}function ka(e,t){return new Map([...e,...[...e].map(([r,n])=>[`APP${t}.${r}`,n]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function gm(e,t,r,n,i,o,a){let s=await np(e,t,r,i,o);Ft(e,s.evaluationTypes);let l=await Vc(e,t,r,n,i,o,a),d=await de(e.appId,r,i),p=ko(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?vi(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:gg(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var hm=kc,ym=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Vc(e,t,r,n,i,o,a){let s=await Am(e,t,r,i),l=await np(e,t,r,i,o),d=[...new Set(e.assignments.filter(P=>P.value.type==="SOURCE_FIELD").map(P=>P.value.type==="SOURCE_FIELD"?P.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await Sm(t,p,d,r,n,i,o),u=new Map,f=new Map;for(let P of c){if(!Object.prototype.hasOwnProperty.call(P,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=Rc(P[t.joinKeyField],s,"source");if(u.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);u.set(w,P),f.set(w,String(P[t.joinKeyField]).trim())}if(u.size===0)return[];let E=n.maxRecords??1e4,R=[...new Set([...Bm(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":Mr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],h=new Set,T=0;for(let P of yr([...f.values()],hm)){let w=`${t.targetJoinField} in (${P.map(Ki).join(",")})`,_=g?`(${w}) and (${g})`:w,I=await Oe(r.getRecords,e.appId,_,R,{maxRecords:E,parallel:n.fetchParallel??1,onLimit:"error"});if(T+=I.records.length,T>E)throw new ye(`\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 k of I.records){let C=k.$id?.value;if(typeof C!="string"||C==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(C)||(h.add(C),m.push(k))}}let S=[];for(let P of m){let w=P[t.targetJoinField]?.value,_=Rc(w,s,"target");if(_===null)continue;let I=u.get(_);I!==void 0&&S.push({target:P,source:I})}return S}async function Am(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 Sm(e,t,r,n,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await de(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 p of r){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(ym.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Oe(n.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>et(p,null))}function Rc(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=Ae(e);if(n===null)throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a finite decimal: ${e}`);return JSON.stringify(n)}async function Sn(e,t,r,n,i){let o=await za(e,t,r,n,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(r.confirm&&a.length>0&&!await r.confirm(a.length,s))throw new Z(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:d.length}}async function Tm(e,t,r,n){if(e.applyBlocks?.length)return sm(e,t,r,n);if(e.checkGroups?.length)return Sn(e,t,r,n);if(e.subtableCode)return Gm(e,t,r,n);let i=await ke(e.appId,e.fields,t,n),o=await it(e.appId,e.fields,i,t,n),a=await de(e.appId,t,n),s=Zn(e,a);xt(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function wm(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:at},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Im(e,t,r,n,i){if(!r.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Ku(e.source.sourceName,r.importSource);if(e.targets?.some(c=>c.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(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!D.has(G)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let G of e.targets.filter(re=>re.kind==="SUBTABLE"))if(!G.rowIdSourceHeader||!e.replaceSubtables.includes(G.subtableCode))throw new Error(`ArgumentError: CSV subtable ${G.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,u=await Q(e.appId,t,n),f=c.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=u.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await He(e.appId,t,n):void 0,R=await Pi(o,new Map),g=e.source.kind==="JSON"?Wu(e.source,R,c,r.maxRecords??1e4):Hu(e.source,R,c,e.replaceSubtables??[],r.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=zu(g,c,u,E,m);if(e.source.kind==="CSV")return bm(e,g,h,u,t,r,i);Ta(h,e.rejectLimit);let T=[...new Set(c.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],S=Ia(h.errors,T),P=[...T,...wa],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},I={type:"VALIDATION",operation:m,validatedRows:h.parents.length,validRows:h.parents.length-w,invalidRows:w,errorCount:S.length,columns:P,errors:S,importDetail:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&ht(i,e.validationErrorTable,P,S,r.tempTableMaxRows??gt,new Map),e.validateOnly)return I;if(Ju(g),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.");ht(i,e.errorTable,P,S,r.tempTableMaxRows??gt,new Map)}let k=h.parents.filter(D=>D.valid),C=new Map(u.map(D=>[D.code,D.fieldType])),y=k.map(()=>{});if(e.keyFields){for(let ge of e.keyFields)if(!e.fields.includes(ge))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${ge}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let D=e.keyFields.map(ge=>C.get(ge)==="NUMBER"),G=new Set,re=k.map(ge=>e.keyFields.map(Vt=>String(ge.top[Vt]?.value??"")));for(let ge of re){let Vt=Mt(ge,D);if(G.has(Vt))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");G.add(Vt)}let Ye=await An(e.appId,e.keyFields,re,t,r,C);re.forEach((ge,Vt)=>{y[Vt]=yn(Ye,ge)})}let O=c.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),L=new Map,N=y.filter(D=>D!==void 0);for(let D of yr([...new Set(N)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...O]});for(let re of G.records){let Ye=Number(re.$id?.value),ge=Number(re.$revision?.value);Number.isFinite(Ye)&&L.set(Ye,{id:Ye,...Number.isFinite(ge)?{revision:ge}:{},record:re})}}let v=Qu(k,y,L),b={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:v.length,insertedParents:v.filter(D=>D.mode==="INSERT").length,updatedParents:v.filter(D=>D.mode==="UPDATE").length,hasDeletes:v.some(D=>D.tables.some(G=>G.deleteRows>0)),parents:v.map(D=>({parentRow:D.parentRow,mode:D.mode,...D.targetId===void 0?{}:{targetId:D.targetId},tables:D.tables}))};if(v.length>0){if(!r.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await r.confirm(v.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new Z(e.keyFields?"UPDATE":"INSERT",v.length)}let U=D=>new Map(Object.entries(D).map(([G,re])=>[G,re.value])),B=D=>Xu(U(D.top),new Map([...D.subtables].map(([G,re])=>[G,re.map(Ye=>({values:U(Ye)}))]))),H=v.filter(D=>D.mode==="INSERT"),Ee=v.filter(D=>D.mode==="UPDATE"),F=[];for(let D=0;D<H.length;D+=100){let G=await t.postRecords({app:e.appId,records:H.slice(D,D+100).map(B)});F.push(G.ids)}for(let D=0;D<Ee.length;D+=100)await t.putRecords({app:e.appId,records:Ee.slice(D,D+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:B(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:F.flat().length,updatedCount:Ee.length,affectedRows:v.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}:{type:"INSERT",createdIds:F,insertedCount:F.flat().length,affectedRows:v.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Pm(e,o,t,r,n,i);let a={appId:e.appId,fields:e.fields,select:wm(),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};Gi.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Bc(s,t,{...r,onLimitReached:"error"},n,i,1);return s.validationErrorTable&&i&&ht(i,s.validationErrorTable,c.columns,c.errors,r.tempTableMaxRows??gt,hr.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",fc(s,t,r,n,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?qc(s,t,r,n,i):Wc(s,t,r,n,i));return d(p)}async function bm(e,t,r,n,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Zu(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=Na(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(n.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],c=await Re(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let L of c){let N=Number(L.$id?.value),v=Number(L.$revision?.value);if(Number.isFinite(N)){u.set(N,{id:N,...Number.isFinite(v)?{revision:v}:{},record:L});for(let b of p){let U=L[b]?.value;if(Array.isArray(U)){for(let B of U)if(B.id){let H=f.get(B.id)??[];H.push({parentId:N,table:b}),f.set(B.id,H)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=r.parents.map((L,N)=>{let v=[...L.errors];for(let U of l.errors[N])v.push({operation:"UPDATE",parentRow:L.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[N].top});let b=E[N];return b!==void 0&&!u.has(b)&&v.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${b} does not exist in APP${e.appId}`,sourceValues:t.records[N].top}),{...L,valid:v.length===0,errors:v}}),g=ec(t.records,R,E,u,f),m=g.flatMap(L=>[...L.errors]),h=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),T={...r,parents:R,errors:m,invalidParentRows:h};Ta(T,e.rejectLimit);let S=g.filter(L=>L.valid),P=g.flatMap(L=>L.tables),w=(L,N)=>P.filter(v=>v.table===L).reduce((v,b)=>v+Number(b[N]),0),_=Object.fromEntries(d.map(L=>[L,{existingRows:w(L,"existingRows"),inputRows:w(L,"inputRows"),updateRows:w(L,"updateRows"),addRows:w(L,"addRows"),deleteRows:w(L,"deleteRows"),rowIdNotFound:w(L,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(L=>L.tables.some(N=>N.deleteRows>0)),totalDeleteRows:S.flatMap(L=>L.tables).reduce((L,N)=>L+N.deleteRows,0),rowIdNotFound:S.flatMap(L=>L.tables).reduce((L,N)=>L+N.rowIdNotFound,0),invalidParents:h.size,parents:S.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},k=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],C=Ia(m,k),y=[...k,...wa];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&ht(a,e.validationErrorTable,y,C,o.tempTableMaxRows??gt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:C.length,columns:y,errors:C,...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:I.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let L=m[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");ht(a,e.errorTable,y,C,o.tempTableMaxRows??gt,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new Z("UPDATE",S.length)}let O=L=>new Map(Object.entries(L).map(([N,v])=>[N,v.value]));for(let L of S){let N=ba(O(L.top),new Map([...L.subtables].map(([v,b])=>[v,b.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:O(U.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:L.targetId,...L.revision===void 0?{}:{revision:L.revision},record:N}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function Pm(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 ke(e.appId,e.fields,r,i),s=await it(e.appId,e.fields,a,r,i),l=await Pi(t,new Map),d=ya(e.source,l,n.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=Na(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let k=f.slice(I,I+100),C=await r.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id"]});for(let y of C.records){let O=y.$id?.value;typeof O=="string"&&O!==""&&u.add(O.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),g=d.rows.map((I,k)=>{let C=c.normalized[k],y=[...d.importRowErrors?.[k]??[],...c.errors[k]];return C!==null&&!u.has(C)&&y.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`}),{rowNumber:k+1,operation:"UPDATE",mode:"update",...C!==null&&u.has(C)?{targetId:Number(C)}:{},payload:new Map([[e.recordNumberSourceHeader,p[k]],...e.fields.map(O=>[O,I[O]??""])]),preErrors:y,record:{},evaluationRow:I,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],h=jo(g,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),T=[...m,...cr],S={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:T,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&ht(o,e.validationErrorTable,T,h.errors,n.tempTableMaxRows??gt,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let I=h.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(ht(o,e.errorTable,T,h.errors,n.tempTableMaxRows??gt,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new Bi(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let P=g.filter(I=>!h.invalidRowNumbers.has(I.rowNumber));if(n.confirm&&!await n.confirm(P.length,"UPDATE"))throw new Z("UPDATE",P.length);let w=P.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<w.length;I+=100)await r.putRecords({app:e.appId,records:w.slice(I,I+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:d.importAudit}),_}async function Nm(e,t,r,n,i,o){let a=Gi.get(e);if(!a){let R=i&&i.size>0?await Ut(e.select,t,r,i,n,!0):await yt(e.select,t,r,n,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:We.get(R)}}let s=await Pi(a.handle,a.cache),l=r.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?ha(a.source,s,p,l):ya(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=tc(a.source.projection),f=new Map(i??[]);f.set(Pa,c);let E=await Ut(u,t,{...r,onLimitReached:"error"},f,n,!0);return{rows:E.rows,columns:E.columns,columnMeta:We.get(E)}}var Ja={materialize:Nm};function Gc(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 Wc(e,t,r,n,i){if(e.checkGroups?.length)return Sn(e,t,r,n,i);let o=await ke(e.appId,e.fields,t,n),a=await it(e.appId,e.fields,o,t,n),s=await Ja.materialize(e,t,r,n,i,o),{rows:l,columns:d}=s;if(Gc(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(r.confirm&&!await r.confirm(l.length,"INSERT"))throw new Z("INSERT",l.length);let p=await de(e.appId,t,n),c=l.map((f,E)=>{let R={};return e.fields.forEach((g,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let h=f[d[m]]??"";R[g]={value:Fc(h,p.get(g))}}),R});c.forEach(f=>xt([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function mc(e,t,r,n,i){if(e.applyBlocks?.length)return Hc(e,t,r,n);if(e.checkGroups?.length&&nt(e.where)){let E=await ke(e.appId,e.assignments.map(g=>g.field),t,n);await it(e.appId,e.assignments.map(g=>g.field),E,t,n);let R=await de(e.appId,t,n);return $c(e,R),Ft(e,ka(R,e.appId)),await Er(e,t,n),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Sn(e,t,r,n,i);if(e.subtableCode)return await Er(e,t,n),Wm(e,t,r,n);let o=await ke(e.appId,e.assignments.map(E=>E.field),t,n),a=e.assignments.map(E=>E.field),s=await it(e.appId,a,o,t,n);if(await Er(e,t,n),nt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Km(e,e.from,t,r,n,i);let l=r.maxRecords??1e4;await Qc(e.assignments,t,r,n);let d=await de(e.appId,t,n);if(ei(e)){let E=Lo(e),g=(await Oe(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:r.fetchParallel??1})).records,m=Do(e,g,d);if(xt(m.flatMap(h=>h.records.map(T=>T.record)),a,o,s),r.confirm&&!await r.confirm(g.length,"UPDATE"))throw new Z("UPDATE",g.length);for(let h of m)await t.putRecords(h);return{type:"UPDATE",updatedCount:g.length}}let p=Mr(e),u=(await Ri(t.getRecords,p.app,p.query,{maxRecords:l,parallel:r.fetchParallel??1})).ids,f=xr(e,u,d);if(xt(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),r.confirm&&!await r.confirm(u.length,"UPDATE"))throw new Z("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function Hc(e,t,r,n,i=1){if(!e.validateOnly&&r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!ze(e.where))return Cm(e,t,r,n,i);let o=await Q(e.appId,t,n),a=Qe(e,o),s=ri(e,o),l=Bo(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);ai(d.records[0]);let c=Vl({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Me(o,e.assignments.map(P=>P.field)),f=Ct(c.postImage,u)?await He(e.appId,t,n):void 0,E=Ot(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Pe(r.dmlMaxRows,"dmlMaxRows",ot),g=Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),m=c.parentRows>R||c.changedSubtableRows>g;if(e.validateOnly){let P=jr({plans:[c],records:$r(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:g,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:Rn(P.branches[0]),guards:mn(P.branches[0]),deletedRows:{total:c.tables.reduce((_,I)=>_+I.deletedRows,0),parentRows:c.tables.some(_=>_.deletedRows>0)?1:0},diagnostic:P};return hr.set(w,qi(E.columns,o,e.appId)),w}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let h=ii(c,E.normalizedRecord),T=$r(h),S=jr({plans:[h],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:m}});if(r.confirm){let P=ji(S,!1);if(!await r.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:P,applyDiagnostic:S}))throw new Z("UPDATE",c.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ie(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function Cm(e,t,r,n,i){let o=Pe(r.dmlMaxRows,"dmlMaxRows",ot),a=Pe(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",be),s=await Q(e.appId,t,n),l=Qe(e,s),d;if($i(e))d=await Dm(e,t,r,s,n);else{let f=ri(e,s),E=Mr(e).query,R=o+1;d=await Re(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:r.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let p=await ci({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>He(e.appId,t,n)});if(e.validateOnly)return xm(e,p,s);Fs("phase15b",e);let c=jr(p);if(r.confirm){let f=ji(c);if(!await r.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new Z("UPDATE",p.guards.parentRows)}let u=await lu(p,t,c);return{...u,diagnostic:Ie(c,u)}}function $i(e){return(e.applyBlocks?.length??0)>0&&!ze(e.where)&&(st(e.where)||oe(e.where))}function Om(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&$i(t)&&oe(t.where)}var Lm=`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 HR(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${WR}`)}async function YR(e,t,r,n,i){let o=n.filter(E=>!E.inSubtable),s=new Map(o.map(E=>[E.code,E])),a=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=Yo(e.where,{fieldTypes:a,fieldOptions:l});HR(p);let d=p.prefilter===null?"":W(p.prefilter),c=new Set(qn(e,n));for(let E of jR(e.where))c.add(E);let u=await qR(e.appId,e.where,s,t,i);return(await Re(t.getRecords,e.appId,d,[...c],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Xe(E,null)})).filter(({row:E})=>q(e.where,E,u.fieldTypeResolver,p.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function jR(e){return Ns(e)}async function qR(e,t,r,n,i){let a=[...zR(t)].some(d=>r.get(d)?.fieldType==="STATUS")?await Ms(e,n,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":r.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return nr(z({fieldType:"__ID__"}),e,"$id");let c=r.get(d.field);if(!c)return;let u=c.semantics??z(c),f=c.fieldType==="STATUS"&&a?{...u,optionOrder:a}:u;return nr(f,e,c.code)}}}function zR(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 XR(e,t,r){let n=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...De(r,e.fields).payloadFields,...Br],s=t.guards.parentRows,a=Vo(t),l=a.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:s,validRows:s-i,invalidRows:i,errorCount:n.length,columns:o,errors:n,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:an(l),guards:ln(l),deletedRows:{total:0,parentRows:0},diagnostic:a};return Rr.set(p,Ki(o,r,e.appId)),p}function JR(e,t,r){let n=t.validations,i=n.flatMap(p=>p.errors),o=n.reduce((p,d)=>p+(d.invalidRows>0?1:0),0),s=n[0]?.columns?[...n[0].columns]:[...De(r,e.assignments.map(p=>p.field)).payloadFields,...Br],a=Vr(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:s,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:an(a.branches[0]),guards:ln(a.branches[0]),deletedRows:{total:t.plans.reduce((p,d)=>p+d.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(d=>d.deletedRows>0)).length},diagnostic:a};return Rr.set(l,Ki(s,r,e.appId)),l}function QR(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"})),s=new Set(o.map(E=>E.$err_row)).size,a=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...De(r,e.fields).payloadFields,...Br],l=Wo(t),p=l.branches.find(E=>E.branch==="insert"),d=l.branches.find(E=>E.branch==="update"),c=an(p),u=an(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-s,invalidRows:s,errorCount:o.length,columns:[...a],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:ln(p)},update:{apply:u,guards:ln(d)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,g)=>m+g.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return Rr.set(f,Ki([...a],r,e.appId)),f}function an(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:Ct(t,"REMOVE")}:{field:t.field,operations:r,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Ct(t,"ADD"),removedValues:Ct(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function ln(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 rt=100,Ie=500;function Pe(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 Ki(e,t,r){let n=new Map(t.filter(s=>!s.inSubtable).map(s=>[s.code,s])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let s of e){if(s==="$id"){o.set(s,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let a=n.get(s);if(a){o.set(s,Fe(a,r));continue}o.set(s,Y(i.has(s)?"number":"string"))}return o}async function ZR(e,t,r,n,i,o){let s=await Sc(e,t,r,n,i,o),a=await de(e.appId,r,i),l=bo(e,s,a),p=e.assignments.map(u=>u.field),d=await J(e.appId,r,i),c=await tt(e.appId,p,d,r,i);if(_t(l.flatMap(u=>u.records.map(f=>f.record)),p,d,c),n.confirm&&!await n.confirm(s.length,"UPDATE"))throw new Q("UPDATE",s.length);for(let u of l)await r.putRecords(u);return{type:"UPDATE",updatedCount:s.length}}function em(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 tm(e,t,r,n){if(await pr(e,t,n),et(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return om(e,t,r,n);let i=Tl(e),s=(await ai(t.getRecords,i.app,i.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1})).ids;if(r.confirm&&!await r.confirm(s.length,"DELETE"))throw new Q("DELETE",s.length);let a=wl(e.appId,s);for(let l of a)await t.deleteRecords(l);return{type:"DELETE",deletedCount:s.length}}async function rm(e,t,r,n){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return TR(e,t,r,n);if(e.checkGroups?.length)return fn(e,t,r,n);let i=await _e(e.appId,e.fields,t,n),o=await tt(e.appId,e.fields,i,t,n),s=[],a=[],l=await de(e.appId,t,n),p=Ic(e),d=await dn(e.appId,e.keyFields,p,t,r,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((m,g)=>{let y=u[g];y.type==="CASE_VALUE"?E[m]={value:ut(y.expr,{},l.get(m))}:E[m]={value:je(y,l.get(m))}});let R=pn(d,p[f]);R!==void 0?a.push({id:R,record:E}):s.push(E)}),_t([...s,...a.map(u=>u.record)],e.fields,i,o),r.confirm&&s.length+a.length>0){let u=s.length+a.length;if(!await r.confirm(u,"UPDATE"))throw new Q("UPDATE",u)}let c=[];for(let u=0;u<s.length;u+=100){let f=await t.postRecords({app:e.appId,records:s.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<a.length;u+=100)await t.putRecords({app:e.appId,records:a.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:a.length}}function Ic(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"?we(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Bs(e,t,r,n){if(t.length===0)return;let i=await de(e,r,n);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let s=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(s)}}async function nm(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 s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),a=Bi(s),l=new Map;for(let d of e.values){let c=Qu(d[o]);if(!a.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Qu(d[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let p=[];for(let[d,c]of l.entries()){let u=a.get(d),E=[...En(u,i),...c];p.push(Pc(e.appId,d,Rn(u),i,E))}for(let d of p)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function im(e,t,r,n){let i=e.subtableCode;if(!en(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ze(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&Ni(u.value.expr,o);let s=await Bs(e.appId,o,t,n),a=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=$s(a,i).filter(u=>q(e.where,u.flat,s));if(r.confirm&&!await r.confirm(p.length,"UPDATE"))throw new Q("UPDATE",p.length);let d=new Map;for(let u of p){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(u.parentId);f||(f=new Map,d.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:jn(R.value,u.flat,s)}}f.set(u.rowId,E)}let c=Bi(a);for(let[u,f]of d.entries()){let E=c.get(u);if(!E)continue;let m=En(E,i).map(g=>{let y=g.id??"";if(!y)return g;let T=f.get(y);return T?{id:y,value:T}:{id:y}});await t.putRecords(sm(e.appId,u,Rn(E),i,m))}return{type:"UPDATE",updatedCount:p.length}}async function om(e,t,r,n){let i=e.subtableCode;if(!en(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ze(e.where,o);let s=await Bs(e.appId,o,t,n),a=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=$s(a,i).filter(u=>q(e.where,u.flat,s));if(r.confirm&&!await r.confirm(p.length,"DELETE"))throw new Q("DELETE",p.length);let d=new Map;for(let u of p){let f=d.get(u.parentId);f?f.push(u.rowIndex):d.set(u.parentId,[u.rowIndex])}let c=Bi(a);for(let[u,f]of d.entries()){let E=c.get(u);if(!E)continue;let R=En(E,i),m=new Set(f),g=R.filter((y,T)=>!m.has(T));await t.putRecords(Pc(e.appId,u,Rn(E),i,g))}return{type:"DELETE",deletedCount:p.length}}function Bi(e){let t=new Map;for(let r of e){let n=String(r.$id?.value??"");n&&t.set(n,r)}return t}function $s(e,t){let r=[];for(let n of e){let i=String(n.$id?.value??""),o=Rn(n),s=En(n,t);for(let a=0;a<s.length;a++){let l=s[a],p={...zn(l,a),_pid:i};for(let[d,c]of Object.entries(n))d!==t&&(p[`_p.${d}`]=bs(c?.value));r.push({parent:n,parentId:i,parentRevision:o,rowIndex:a,rowId:l.id??"",row:l,flat:p})}}return r}function En(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function Rn(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Pc(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function sm(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function am(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 Qu(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?G(e):e.type==="CASE_VALUE"?we(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 en(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return en(e.left)||en(e.right);case"NOT":case"GROUP":return en(e.expr);default:return!1}}async function lm(e,t,r,n){let i=[];Ze(e.where,i);let o=await Bs(e.appId,i,t,n),s=await J(e.appId,t,n);if(et(e.where))return{type:"REORDER",reorderedParentCount:0};let a=new Map(s.map(f=>[f.code,f.semantics??z(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 a.get(E)??x("string")},p=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),d=$s(p,e.subtableCode),c=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&q(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(r.confirm&&!await r.confirm(c.size,"UPDATE"))throw new Q("UPDATE",c.size);let u=Bi(p);for(let f of c){let E=u.get(f);if(!E)continue;let m=En(E,e.subtableCode).map((y,T)=>({row:y,i:T,flat:um(E,e.subtableCode,y,T)}));m.sort((y,T)=>cm(y.flat,T.flat,e.by,l));let g=m.map(y=>y.row.id??"");await t.putRecords(am(e.appId,f,Rn(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function um(e,t,r,n){let i={_pid:String(e.$id?.value??""),_rid:r.id??"",_idx:String(n)};for(let[o,s]of Object.entries(e))o!==t&&(i[`_p.${o}`]=bs(s?.value));for(let[o,s]of Object.entries(r.value??{}))i[o]=bs(s?.value);return i}function cm(e,t,r,n){for(let i of r){let o=Zu(i.key,e),s=Zu(i.key,t),a=i.key.type==="FIELD_NAME"?n(Oe(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?Nt(i.key.expr).semantics??x("string"):x("number"),l=yt(o,s,a??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Zu(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ee(e.expr,t));case"FUNC_KEY":return te(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Cc(e,t,r,n,i){if(e.checkGroups?.length)return fn(e,t,r,n,i);let o=await _e(e.appId,e.fields,t,n),s=await tt(e.appId,e.fields,o,t,n),a=await Ks.materialize(e,t,r,n,i,o),{rows:l,columns:p}=a;if(Tc(a),p.length!==e.fields.length){let g=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${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],c=[],u=await de(e.appId,t,n),f=l.map((g,y)=>{let T={};return e.fields.forEach((A,N)=>{if(a.importPresence&&!a.importPresence[y]?.has(A))return;let w=g[p[N]]??"";T[A]={value:gc(w,u.get(A))}}),T});f.forEach(g=>_t([g],e.fields.filter(y=>y in g),o,s));let E=f.map(g=>e.keyFields.map(y=>String(g[y]?.value??"")));if(ki.has(e)){let g=e.keyFields.map(T=>u.get(T)==="NUMBER"),y=new Set;for(let T of E){let A=Lt(T,g);if(y.has(A))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(A)}}let R=await dn(e.appId,e.keyFields,E,t,r,u);if(f.forEach((g,y)=>{let T=pn(R,E[y]);T!==void 0?c.push({id:T,record:g}):d.push(g)}),r.confirm&&d.length+c.length>0){let g=d.length+c.length;if(!await r.confirm(g,"UPDATE"))throw new Q("UPDATE",g)}let m=[];for(let g=0;g<d.length;g+=100){let y=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});m.push(y.ids)}for(let g=0;g<c.length;g+=100)await t.putRecords({app:e.appId,records:c.slice(g,g+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function Nc(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 Oc(e,t,r){let n=await J(e.appId,t,r),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=n.map(s=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:s.code,\u30E9\u30D9\u30EB:s.label,\u30BF\u30A4\u30D7:s.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function pm(e,t=!1){try{let r=new Ft(e).tokenize(),n=new Bt(r,{import:t}).parse();return Cn("phase15b",n),tr(n),n}catch(r){throw r instanceof le||r instanceof S,r}}async function un(e,t,r,n,i){let o=[];bi(e,t,r,n,o,i),await Promise.all(o)}async function Lc(e,t,r,n,i){let o=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let a of s.expr.branches)o.push(un(a.condition,t,r,n,i));await Promise.all(o)}function tn(e,t,r,n,i){return i!==void 0&&i.size>0?Ot(e,t,r,i,n):Et(e,t,r,n)}function bi(e,t,r,n,i,o){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(tn(s.query,t,r,n,o).then(a=>{let l=s.column??a.columns[0]??"";s.resolved=new Set(a.rows.map(p=>p[l]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(tn(s.query,t,r,n,o).then(a=>{if(a.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(a.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=a.columns[0]??"";s.resolved=a.rows[0]?.[l]??""}));break}case"LOGICAL":bi(e.left,t,r,n,i,o),bi(e.right,t,r,n,i,o);break;case"NOT":case"GROUP":bi(e.expr,t,r,n,i,o);break;case"EXISTS":{let s=e;i.push(tn(s.query,t,r,n,o).then(a=>{s.resolved=a.rowCount>0}));break}case"BOOLEAN":break}}async function _c(e,t,r,n){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Et(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 s=o.columns[0]??"",a=o.rows[0]?.[s]??"";i.value={type:"STRING",value:a}}}async function vc(e,t,r,n,i){let o=new Map,s=[];for(let p=0;p<e.length;p++){let d=e[p];if(d.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(d.query),u=o.get(c);u||(u=tn(d.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(c,u)),s.push([p,u])}let a=await Promise.all(s.map(([,p])=>p)),l=new Map;return s.forEach(([p],d)=>l.set(p,a[d])),l}var Dc=new WeakMap,kc=new WeakMap;async function dm(e,t,r,n=1e4){let i=new Set,o=new Set,s=new Set,a={...t,getFields:async u=>(i.add(u),t.getFields(u)),getProcessStatuses:async u=>(o.add(u),t.getProcessStatuses(u)),getNumberPrecision:async u=>(s.add(u),t.getNumberPrecision(u))},l=new Map,p=new Map,d=new Set,c=async u=>{if(u===null||typeof u!="object"||d.has(u))return;if(d.add(u),Array.isArray(u)){await Promise.all(u.map(c));return}let f=u;if(f.type==="SELECT"){let E=u;await Mi(E,a,r);let R=[E.from,...E.joins.map(y=>y.table)].filter(y=>y.cteName===null).map(y=>y.appId);(Ue(E.where)||E.orderBy.length>0||E.columns.some(y=>y.type==="WINDOW_COL"&&y.orderBy.length>0))&&R.forEach(y=>i.add(y));let g=await Ii(E,a,r);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(g)}).`);if(l.set(E,g),E.orderBy.length>0||E.columns.some(y=>y.type==="WINDOW_COL"&&y.orderBy.length>0)){let y=await sn(E,a,r);if(E.orderMode!=="KINTONE_NATIVE")for(let A of y.semantics.values())A.fieldType==="STATUS"&&A.source&&o.add(A.source.appId);let T=[E.from,...E.joins.map(A=>A.table)].some(A=>A.cteName!==null);if(Pi(E)&&!T){let A=g.capability==="EXACT_PUSHDOWN"?He(E):"FULL_SCAN";p.set(E,(E.orderMode==="KINTONE_NATIVE"?Hr:Wr)({stmt:E,staticMode:A,whereCapability:g.capability,orderSemantics:y.semantics,maxRecords:n,hasKlike:oe(E.where)}))}}}else if(f.type==="VALIDATE"){let E=u;i.add(E.appId);let R=await J(E.appId,a,r),m=new Map(R.filter(h=>!h.inSubtable).map(h=>[h.code,h])),g=new Set(R.filter(h=>h.inSubtable).map(h=>h.code)),y=Ko(E,R),T=ir(E.checkGroups??[]),A=Ns(E.where);for(let h of T){if(h.field!=="$id"&&!m.has(h.field)&&!g.has(h.field))throw ae(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u306F APP${E.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(h.field!=="$id"&&!m.has(h.field)&&g.has(h.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let h of A){if(h!=="$id"&&!m.has(h)&&!g.has(h))throw new Error(`ArgumentError: WHERE field ${h} does not exist in APP${E.appId}.`);if(h!=="$id"&&!m.has(h)&&g.has(h))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${h} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let N=new Map([...m].map(([h,C])=>[h,C.fieldType]));N.set("$id","RECORD_NUMBER"),vt(E,N);let w=ur(E.where,h=>h.field==="$id"?z({fieldType:"__ID__"}):m.get(h.field)?.semantics??(m.has(h.field)?z(m.get(h.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(w)}).`);let L=new Map([...m].map(([h,C])=>[h,C.fieldType])),I=new Map([...m.values()].flatMap(h=>h.optionOrder?[[h.code,new Set(Object.keys(h.optionOrder))]]:[])),D=E.where===null?null:w.capability==="EXACT_PUSHDOWN"?E.where:Xt(E.where,{allowUnqualifiedFields:!0,fieldTypes:L,fieldOptions:I,allowKlike:!1}),P=y.some(h=>h.field.fieldType==="NUMBER");P&&(s.add(E.appId),await $e(E.appId,a,r)),Dc.set(E,{targetFields:y.map(h=>h.subtableCode?`${h.subtableCode}(${h.field.code})`:h.field.code),fetchFields:[...new Set(["$id",...y.map(h=>h.subtableCode??h.field.code),...A,...T.map(h=>h.field)])],subtables:new Map([...new Set(y.flatMap(h=>h.subtableCode?[h.subtableCode]:[]))].map(h=>[h,y.filter(C=>C.subtableCode===h).length])),capability:w,prefilter:D,numberPrecision:P})}else if(f.type==="UPDATE"||f.type==="DELETE"){if(i.add(u.appId),f.type==="UPDATE"&&u.applyBlocks?.length){let R=u,m=await J(R.appId,a,r);if(qe(R,m),vi(R)){let g=m.filter(T=>!T.inSubtable),y=Yo(R.where,{fieldTypes:new Map(g.map(T=>[T.code,T.fieldType])),fieldOptions:new Map(g.flatMap(T=>T.optionOrder?[[T.code,new Set(Object.keys(T.optionOrder))]]:[]))});kc.set(R,y)}}let E=u;(E.type!=="UPDATE"||!vi(E))&&await pr(E,a,r)}await Promise.all(Object.values(f).map(c))};if(await c(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&qt(e)){let u=zt(e),f=await Ii(u,a,r);if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Pt(f)}).`);if(l.set(u,f),Pi(u)){let E=await sn(u,a,r);p.set(u,(u.orderMode==="KINTONE_NATIVE"?Hr:Wr)({stmt:u,staticMode:f.capability==="EXACT_PUSHDOWN"?He(u):"FULL_SCAN",whereCapability:f.capability,orderSemantics:E.semantics,maxRecords:n,hasKlike:oe(u.where)}))}}return{capabilities:l,orderPlans:p,fieldApps:i,processStatusApps:o,numberPrecisionApps:s}}function fm(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}`)]}async function Em(e,t,r,n,i,o=100,s=Ie){let a=await dm(e.query,t,r,n),l=[...fm(a),...Rm(Uc(e.query,void 0,a.capabilities,a.orderPlans,o,s,n),i)];return{type:"SELECT",columns:["plan"],rows:l.map(p=>({plan:p})),rowCount:l.length}}function Rm(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 Uc(e,t,r,n,i=100,o=Ie,s=1e4){if(e.type==="UNION")return gm(e,r,n);if(e.type==="WITH")return hm(e,r,n);if(e.type==="INSERT")return Sm(e,t,i,o);if(e.type==="INSERT_SELECT")return Tm(e,t,r,n);if(e.type==="UPSERT")return Pm(e,t,i,o);if(e.type==="UPSERT_SELECT")return Cm(e,t,r,n);if(e.type==="UPDATE")return wm(e,t,r,n,i,o,s);if(e.type==="DELETE")return Im(e,t);if(e.type==="REORDER")return Nm(e,t);if(e.type==="VALIDATE")return mm(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=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",...p.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let a=e.keyFields?"UPSERT":"INSERT",l=e.targets?.some(p=>p.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${a} 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",...l?[" 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&&l?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...l?[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 Ne(e,t,r,n)}function mm(e,t){let r=Dc.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)":W(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?Cs:Ps).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 Ne(e,t,r,n){let i=r?.get(e)??(r?[...r].find(([f])=>JSON.stringify(f)===JSON.stringify(e))?.[1]:void 0),o=n?.get(e)??(n?[...n].find(([f])=>JSON.stringify(f)===JSON.stringify(e))?.[1]:void 0),s=o?.kind==="CANONICAL_LOCAL"||i&&i.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":He(e),a=ym(e);i&&i.capability!=="EXACT_PUSHDOWN"&&a.push(...i.reasons.map(f=>f.code));let l=[],p=Zl(e,on.get(e)?.allItems.length);t&&l.push(t),l.push(` mode: ${s}`),p&&(l.push(` grouping source: ${p.source}`),l.push(` grouping sets: ${p.expandedSetCount} (limit: ${p.setLimit})`),l.push(` grouping items: ${p.groupingItemCount} (limit: ${p.itemLimit})`),l.push(` grouping output rows: runtime checked (limit: ${p.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),o?(l.push(` order plan: ${o.kind}`),o.reasonCodes.length>0&&l.push(` order reason: ${o.reasonCodes.join(", ")}`),o.kind==="KORDER_NATIVE"?(l.push(" order semantics: kintone native (not kSQL canonical)"),l.push(" REST execution: single GET")):o.kind==="KORDER_CURSOR"&&(l.push(" order semantics: kintone native (not kSQL canonical)"),l.push(" fetch API: POST/GET/DELETE records/cursor.json"),l.push(" cursor page size: 500"),l.push(` scan rows: ${o.scanRows}`))):p&&l.push(" order plan: CANONICAL_LOCAL");let d=o&&!o.requiresCompleteInput?{...e,orderBy:[]}:e,c=gt(d);o?.requiresCompleteInput&&c.add("LOCAL_ORDER");let u=et(e.where);if(c.size>0&&(!u||p!==null)&&(l.push(" complete input: required (onLimit=truncate disabled)"),l.push(` complete input reason: ${[...c].join(", ")}`),l.push(" onLimit=truncate: disabled")),u)return l.push(" predicate: constant false"),l.push(" records API access: none"),l.push(` app: APP${e.from.appId} (${e.from.appId})`),l;if(s==="FULL_SCAN"&&a.length>0&&l.push(` reason: ${a.join(", ")}`),s==="SIMPLE"){let f=Nn(o?.kind==="CANONICAL_REST_TOP_N"?uc(e):e);l.push(` app: APP${e.from.appId} (${e.from.appId})`);let E=o?.kind==="KORDER_CURSOR"?jo(e):f.query;l.push(` kintone query: ${E||"(\u306A\u3057)"}`),l.push(` fields: ${f.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":f.fields.join(", ")}`)}else{let f=Qt(e),E=ht(e,e.from),R=e.from.alias?` AS ${e.from.alias}`:"",m=f.mainCondition,g=ic(e),y=e.joins.length===0&&i?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ot(e.where)?W(e.where):"",T=m!==null?W(m):y||"(\u5168\u4EF6\u53D6\u5F97)";l.push(` app: APP${e.from.appId}${R} (${e.from.appId})`),l.push(` kintone query: ${T}`),g!==null&&l.push(` pushdown candidate: ${W(g)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),l.push(` fields: ${E.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":E.join(", ")}`);for(let A of e.joins){let N=ht(e,A.table),w=A.table.alias?` AS ${A.table.alias}`:"",L=A.type==="INNER"?"JOIN":`${A.type} JOIN`,I=A.table.alias?f.joinConditions.get(A.table.alias)??null:null,D=A.table.alias&&!A.table.subtableCode&&A.table.cteName===null&&e.where?Cr(e.where,{tableAlias:A.table.alias}):null,P=I!==null?W(I):"(\u5168\u4EF6\u53D6\u5F97)";l.push(` ${L}: APP${A.table.appId}${w} (${A.table.appId})`),l.push(` kintone query: ${P}`),D!==null&&l.push(` pushdown candidate: ${W(D)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),l.push(` fields: ${N.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":N.join(", ")}`)}}return l.push(...Am(e,r,n)),l}function gm(e,t,r){let n=[],i=s=>{if(s.type==="SELECT"){n.push(s);return}i(s.left),n.push(s.right)};i(e);let o=[];return n.forEach((s,a)=>{a>0&&o.push(""),o.push(...Ne(s,`[union:${a+1}]`,t,r))}),o}function hm(e,t,r){let n=[];for(let i of e.ctes)i.query.type==="SELECT"&&(n.push(...Ne(i.query,`[cte: ${i.name}]`,t,r)),n.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&n.push(...Uc(e.query,"[main]",t,r)),qt(e)){n.push("");let i=zt(e);n.push(...Ne(i,"[effective: inlined CTE]",t,r))}return n}function ym(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=ne(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"),ot(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),it(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 Am(e,t,r){let n=[],i=1,o=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(n.push(""),n.push(...Ne(s.right.query,`[subquery:${i++}]`,t,r))),s.right.type==="SUBQUERY_IN_LIST"&&(n.push(""),n.push(...Ne(s.right.query,`[subquery:${i++}]`,t,r)));break;case"EXISTS":n.push(""),n.push(...Ne(s.query,`[subquery:${i++}]`,t,r));break;case"LOGICAL":o(s.left),o(s.right);break;case"NOT":case"GROUP":o(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};o(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(n.push(""),n.push(...Ne(s.query,`[subquery:${i++}]`,t,r)));return e.having&&o(e.having),n}function Sm(e,t,r=rt,n=Ie){let i=e.values.length,o=Math.ceil(i/100),s=[];return t&&s.push(t),s.push(" [INSERT]"),s.push(` target: APP${e.appId} (${e.appId})`),s.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),s.push(` api: POST /k/v1/records.json \xD7 ${o}`),s.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...s,...Gs(oi(e,r,n))]:s}function Tm(e,t,r,n){let i=[];return t&&i.push(t),i.push(" [INSERT SELECT]"),i.push(` target: APP${e.appId} (${e.appId})`),i.push(` fields: ${e.fields.join(", ")}`),i.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"),i.push(""),i.push(...Ne(e.select,"[source SELECT]",r,n)),i}function wm(e,t,r,n,i=100,o=Ie,s=1e4){if(e.applyBlocks?.length)return bm(e,t,i,o,s);let a=hl(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=Yn(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?cn(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${cn(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(et(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(a&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!d&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),p){let f=Lm(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${vm(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...Ne(f.value.query,`[subquery: ${f.field}]`,r,n)));return c}function bm(e,t,r,n,i){let o=oi(e,r,n),s=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"}),d=[...new Set(s.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=d.includes("REMOVE"),u=kc.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":W(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${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: ${cn(e.where)}`,`parent cardinality: ${We(e.where)?"single":"multiple"}`,...f,`apply target: ${s.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${d.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=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${r}`,`dmlMaxSubtableRows: ${n}`,"MCP mutation: disabled in v1",...Gs(o)]}function Im(e,t){let r=[];return t&&r.push(t),r.push(" [DELETE]"),r.push(` target: APP${e.appId} (${e.appId})`),r.push(` kintone query: ${cn(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(et(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),r}function Pm(e,t,r=rt,n=Ie){let i=e.values.length,o=Math.ceil(i/100),s=[...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?[...s,...Gs(oi(e,r,n))]:s}function Gs(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 Cm(e,t,r,n){let i=[...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 i.push(...Ne(e.select,"[source SELECT]",r,n)),i}function Nm(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(Om).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${r}`,` scope: ${n}`,` by: ${i}`,et(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${cn(e.where)}`),o}function Om(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function cn(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return W(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Lm(e){let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"&&Di(r,t),r.type==="STRING_FUNC"&&Di(r,t),(r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP")&&rn(r,t);return[...t]}function Di(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Di(e.left,t),Di(e.right,t)),e.type==="STRING_FUNC")for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&rn(r,t)}async function Mc(e,t,r,n,i){let o=Fs(e),s=await de(e.appId,r,n),a=t.cteName,l=a!==null?new Map((i?.get(a)?.columns??[]).map(u=>[u,i?.get(a)?.columnMeta?.get(u)?.fieldType??(i?.get(a)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await de(t.appId,r,n),p=new Set,d=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!s.has(u.field))throw ae(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw ae(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else throw ae(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||s.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw ae(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw ae(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(u.field)}let c=new Map;for(let[u,f]of s)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...p],sourceFields:[...d],evaluationTypes:c}}function _m(e,t,r){if(!e)return{};let n=Xe(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 rn(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"&&rn(r,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(rn(e.left,t),rn(e.right,t))}function vm(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} = ${xc(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 xc(e){return`${ec(e.left)} ${e.op} ${ec(e.right)}`}function ec(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?G(e):e.type==="ARITH"?`(${xc(e)})`:"..."}var Q=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 fe=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 Dt(e){return new fe("READ_ONLY_VIOLATION",e)}function Vs(e,t){return new fe("PARSE_ERROR",e,t)}function Fc(){let e=new fr;return new fe("SEARCH_ABORTED",e.message,e)}function mn(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function Dm(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 fe?e:e instanceof le||e instanceof S?new fe("PARSE_ERROR",mn(e),e):e instanceof fr||e?.name==="SearchAbortedError"?new fe("SEARCH_ABORTED",mn(e),e):e instanceof ye||e?.name==="FetchAllLimitError"?new fe("FETCH_LIMIT_EXCEEDED",mn(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new fe("CLIENT_ERROR",e.message,e.cause):Dm(e)?new fe("CLIENT_ERROR",mn(e),e):new fe("EXECUTION_ERROR",mn(e),e)}var km=2,$i=5,Um=3e4,Mm=10*6e4+3e4,Gi=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??km;if(!Number.isSafeInteger(n)||n<1||n>$i)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${$i}.`);this.maxActive=n,this.waitTimeoutMs=r.waitTimeoutMs??Um,this.quarantineMs=r.quarantineMs??Mm}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 li(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>$i)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${$i}.`)}};function xm(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Fm(e,t=n=>new Promise(i=>setTimeout(i,n)),r=xm){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 Km(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 Kc(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 Km(Fm(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),r=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Bc(e){return $c(e,$m(e))}function $c(e,t,r=!1,n){let i=[];for(let o of Object.values(e)){let s=Gm(o.options),a=Vm(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:s,sortKind:a,required:o.required,minValue:Vi(o.minValue),maxValue:Vi(o.maxValue),minLength:Vi(o.minLength),maxLength:Vi(o.maxLength),defaultValue:o.defaultValue,inSubtable:r,...n?{subtableCode:n}:{},writable:!t.has(o.code)&&!Bm.has(o.type)};l.semantics=z(l),i.push(l),o.fields&&i.push(...$c(o.fields,t,!0,o.type==="SUBTABLE"?o.code:n))}return i}var Bm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function $m(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 Vi(e){return e==null||e===""?void 0:e}function Gm(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 Vm(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Gc(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 Wm="Filter aborted because of too many search results";function Vc(e){return e?.includes(Wm)===!0}var Wc="/k/v1/records.json",Wi="/k/v1/records/cursor.json",Hm=4096,Ym=2,Ws=e=>kintone.api.url(e,!0);function jm(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},n=kintone.api.urlForGet(Wc,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(n).byteLength<=Hm?{url:n,init:{method:"GET",credentials:"include",headers:i}}:{url:Ws(Wc),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 hn(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,s]of Object.entries(r.errors)){let a=Array.isArray(s?.messages)?s.messages.filter(l=>typeof l=="string"):[];a.length>0&&n.push(`${o}: ${a.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 qm(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let n=t;return hn({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}),hn(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}),hn(r)}}function zm(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function kt(e,t,r){try{return await kintone.api(Ws(e),t,r)}catch(n){throw hn(n)}}function Xm(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Hs(e={}){let t=e.cursorMaxActive??Ym;Xm(t);let r=null,n=null,i=new Set;return{async getRecords(s){try{let a=jm(s),l=await fetch(a.url,a.init);if(!l.ok)throw await qm(l);let p=await l.json();return Vc(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(a){throw hn(a)}},async openCursor(s){let a=Ws(Wi),l=new URL(a,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 Gi(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(),d;try{d=await r.runCreate(()=>kt(Wi,"POST",{app:s.app,query:s.query,size:s.size,fields:s.fields&&s.fields.length>0?s.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(p.release(),R):(p.quarantine(),new ui(R))}let c=d.id,u=Kc(Number(d.totalCount),{get:()=>kt(Wi,"GET",{id:c}),delete:()=>kt(Wi,"DELETE",{id:c}),isAlreadyReleasedError:zm,onReleased:()=>p.release(),onReleaseUnknown:()=>p.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let a=[],l=0;for(;;){let p=await kt("/k/v1/apps.json","GET",{limit:100,offset:l});for(let d of p.apps)a.push({appId:Number(d.appId),name:d.name,description:d.description});if(p.apps.length<100)break;l+=100}return a},async getFields(s){let a=await kt("/k/v1/app/form/fields.json","GET",{app:s});return Bc(a.properties)},async getNumberPrecision(s){let a=await kt("/k/v1/app/settings.json","GET",{app:s});return xl(a)},async getProcessStatuses(s){let a=await kt("/k/v1/app/status.json","GET",{app:s,lang:"user"});return{enable:a.enable,states:Gc(a.states)}}}}var Hc=new Set(["postRecords","putRecords","deleteRecords"]),yn=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 Rt(e){try{return await e()}catch(t){throw new yn(t)}}function Jm(e){return()=>{throw Dt(`${String(e)} is blocked by the readonly client`)}}function Ys(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),s=e.getProcessStatuses.bind(e),a=Object.assign(Object.create(null),{getRecords:async l=>{let p=await Rt(()=>t(l));if(p.searchAborted===!0)throw Fc();return p},openCursor:async l=>{let p=await Rt(()=>r(l)),d=p.nextPage.bind(p),c=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>Rt(()=>d()),close:()=>Rt(()=>c())}},getApps:()=>Rt(()=>n()),getFields:l=>Rt(()=>i(l)),getNumberPrecision:l=>Rt(()=>o(l)),getProcessStatuses:l=>Rt(()=>s(l))});return new Proxy(a,{get(l,p,d){return Hc.has(p)?Jm(p):Reflect.get(l,p,d)},has(l,p){return Hc.has(p)?!1:Reflect.has(l,p)}})}function Qm(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),s=null,a={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return s||(s=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(a)}),s)}};return t.add(a),a},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(s=>s.close()))).find(s=>s.status==="rejected");if(o)throw new yn(o.reason)})(),r)}}}async function js(e,t){let r=Qm(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 Yc=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Zm=new Set([...Yc,"onLimitReached"]);function eg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function qs(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function tg(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 zs(e,t){eg(e);let r=t==="run"?Zm:Yc;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(tg(e.client),e.maxRecords!==void 0&&qs(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&qs(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(qs(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 jc(e,t={}){let r=new Ft(e).tokenize(),n=new Bt(r,t).parse();return tr(n),n}function qc(e){if(e.trim()==="")throw Vs("SQL statement is empty");try{return jc(e,{import:!0})}catch(t){let r=gn(t);throw r.code==="PARSE_ERROR"?r:Vs("SQL statement could not be parsed",t)}}function rg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw Dt("Unclassifiable statement branch is not allowed");return e.type}function Ut(e,t){let r=rg(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 Dt("WITH contains an unclassifiable CTE list");for(let i of n.ctes){if(i===null||typeof i!="object"||!("query"in i))throw Dt("WITH contains an unclassifiable CTE body");Ut(i.query,t)}Ut(n.query,t);return}case"UNION":{let n=e;Ut(n.left,t),Ut(n.right,t);return}default:break}throw Dt(`${r} statements are not allowed in ${t} queries`)}function ng(e){Ut(e,"run")}function zc(e){ng(qc(e))}function Xc(e){let t=e.trim(),r=qc(t);return r.type==="EXPLAIN"?(Ut(r.query,"explain"),t):(Ut(r,"explain"),`EXPLAIN ${t}`)}function Jc(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function Qc(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)]))}async function Xs(e,t){try{let r=zs(t,"run");zc(e);let n=await js(r.client,i=>Is(e,Ys(i),r.executeOptions));return Qc(n),{type:"query",rows:n.rows.map(ig),columns:n.columns.map(i=>({name:i,valueType:"string"})),rowCount:n.rowCount,warnings:[...n.warnings??[]],metrics:Jc(n.metrics)}}catch(r){throw gn(r)}}async function Js(e,t){try{let r=zs(t,"explain"),n=await js(r.client,o=>Is(Xc(e),Ys(o),r.executeOptions));Qc(n);let i=n.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
- `),metrics:Jc(n.metrics)}}catch(r){throw gn(r)}}var Qs="3.19.0";var Zc=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function og(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Zc(e,t)?e[t]:void 0}})}function sg(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 ep(e,t,r,n=console){let i;if(e.ksql===void 0){i=og();try{e.ksql=i}catch(s){n.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,s);return}}else if(sg(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(Zc(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(s){n.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,s);return}return i}var ag={version:Qs,createReadonlyKintoneClient:Hs,explainQuery:Js,KsqlEngineError:fe,runQuery:Xs};ep(window,Qs,ag);})();
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 _m(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Lm}`)}async function Dm(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))]]:[])),d=ra(e.where,{fieldTypes:s,fieldOptions:l});_m(d);let p=d.prefilter===null?"":W(d.prefilter),c=new Set(ri(e,n));for(let E of vm(e.where))c.add(E);let u=await km(e.appId,e.where,a,t,i);return(await Re(t.getRecords,e.appId,p,[...c],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:et(E,null)})).filter(({row:E})=>q(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function vm(e){return Ba(e)}async function km(e,t,r,n,i){let s=[...Um(t)].some(p=>r.get(p)?.fieldType==="STATUS")?await qa(e,n,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":r.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return sr(z({fieldType:"__ID__"}),e,"$id");let c=r.get(p.field);if(!c)return;let u=c.semantics??z(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return sr(f,e,c.code)}}}function Um(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 Mm(e,t,r){let n=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Me(r,e.fields).payloadFields,...Wr],a=t.guards.parentRows,s=Zo(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:n.length,columns:o,errors:n,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Rn(l),guards:mn(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return hr.set(d,qi(o,r,e.appId)),d}function xm(e,t,r){let n=t.validations,i=n.flatMap(d=>d.errors),o=n.reduce((d,p)=>d+(p.invalidRows>0?1:0),0),a=n[0]?.columns?[...n[0].columns]:[...Me(r,e.assignments.map(d=>d.field)).payloadFields,...Wr],s=jr(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:Rn(s.branches[0]),guards:mn(s.branches[0]),deletedRows:{total:t.plans.reduce((d,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return hr.set(l,qi(a,r,e.appId)),l}function Fm(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??[...Me(r,e.fields).payloadFields,...Wr],l=ea(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Rn(d),u=Rn(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:mn(d)},update:{apply:u,guards:mn(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((g,m)=>g+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return hr.set(f,qi([...s],r,e.appId)),f}function Rn(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:vt(t,"REMOVE")}:{field:t.field,operations:r,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:vt(t,"ADD"),removedValues:vt(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function mn(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 ot=100,be=500;function Pe(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 qi(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:z({fieldType:"RECORD_NUMBER"})});continue}let s=n.get(a);if(s){o.set(a,Ve(s,r));continue}o.set(a,Y(i.has(a)?"number":"string"))}return o}async function Km(e,t,r,n,i,o){let a=await Vc(e,t,r,n,i,o),s=await de(e.appId,r,i),l=ko(e,a,s),d=e.assignments.map(u=>u.field),p=await Q(e.appId,r,i),c=await it(e.appId,d,p,r,i);if(xt(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),n.confirm&&!await n.confirm(a.length,"UPDATE"))throw new Z("UPDATE",a.length);for(let u of l)await r.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function Bm(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 $m(e,t,r,n){if(await Er(e,t,n),nt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Hm(e,t,r,n);let i=kl(e),a=(await Ri(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 Z("DELETE",a.length);let s=Ul(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function Vm(e,t,r,n){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return lm(e,t,r,n);if(e.checkGroups?.length)return Sn(e,t,r,n);let i=await ke(e.appId,e.fields,t,n),o=await it(e.appId,e.fields,i,t,n),a=[],s=[],l=await de(e.appId,t,n),d=Yc(e),p=await An(e.appId,e.keyFields,d,t,r,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((g,m)=>{let h=u[m];h.type==="CASE_VALUE"?E[g]={value:Et(h.expr,{},l.get(g))}:E[g]={value:Je(h,l.get(g))}});let R=yn(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),xt([...a,...s.map(u=>u.record)],e.fields,i,o),r.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await r.confirm(u,"UPDATE"))throw new Z("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function Yc(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"?V(i):i.type==="CASE_VALUE"?we(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Qa(e,t,r,n){if(t.length===0)return;let i=await de(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 Gm(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 Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),s=zi(a),l=new Map;for(let p of e.values){let c=gc(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,g)=>{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:gc(p[g])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...Tn(u,i),...c];d.push(jc(e.appId,p,wn(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function Wm(e,t,r,n){let i=e.subtableCode;if(!ln(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];rt(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&xi(u.value.expr,o);let a=await Qa(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),d=Za(s,i).filter(u=>q(e.where,u.flat,a));if(r.confirm&&!await r.confirm(d.length,"UPDATE"))throw new Z("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(u.parentId);f||(f=new Map,p.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:ti(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=zi(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let g=Tn(E,i).map(m=>{let h=m.id??"";if(!h)return m;let T=f.get(h);return T?{id:h,value:T}:{id:h}});await t.putRecords(Ym(e.appId,u,wn(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function Hm(e,t,r,n){let i=e.subtableCode;if(!ln(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];rt(e.where,o);let a=await Qa(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),d=Za(s,i).filter(u=>q(e.where,u.flat,a));if(r.confirm&&!await r.confirm(d.length,"DELETE"))throw new Z("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=zi(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=Tn(E,i),g=new Set(f),m=R.filter((h,T)=>!g.has(T));await t.putRecords(jc(e.appId,u,wn(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function zi(e){let t=new Map;for(let r of e){let n=String(r.$id?.value??"");n&&t.set(n,r)}return t}function Za(e,t){let r=[];for(let n of e){let i=String(n.$id?.value??""),o=wn(n),a=Tn(n,t);for(let s=0;s<a.length;s++){let l=a[s],d={...ni(l,s),_pid:i};for(let[p,c]of Object.entries(n))p!==t&&(d[`_p.${p}`]=Ua(c?.value));r.push({parent:n,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return r}function Tn(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function wn(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function jc(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function Ym(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function jm(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 gc(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?V(e):e.type==="CASE_VALUE"?we(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Ua(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 ln(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ln(e.left)||ln(e.right);case"NOT":case"GROUP":return ln(e.expr);default:return!1}}async function qm(e,t,r,n){let i=[];rt(e.where,i);let o=await Qa(e.appId,i,t,n),a=await Q(e.appId,t,n);if(nt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??z(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")},d=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=Za(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&q(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(r.confirm&&!await r.confirm(c.size,"UPDATE"))throw new Z("UPDATE",c.size);let u=zi(d);for(let f of c){let E=u.get(f);if(!E)continue;let g=Tn(E,e.subtableCode).map((h,T)=>({row:h,i:T,flat:zm(E,e.subtableCode,h,T)}));g.sort((h,T)=>Xm(h.flat,T.flat,e.by,l));let m=g.map(h=>h.row.id??"");await t.putRecords(jm(e.appId,f,wn(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:c.size}}function zm(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}`]=Ua(a?.value));for(let[o,a]of Object.entries(r.value??{}))i[o]=Ua(a?.value);return i}function Xm(e,t,r,n){for(let i of r){let o=hc(i.key,e),a=hc(i.key,t),s=i.key.type==="FIELD_NAME"?n(De(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?kt(i.key.expr).semantics??x("string"):x("number"),l=It(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function hc(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ee(e.expr,t));case"FUNC_KEY":return te(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function qc(e,t,r,n,i){if(e.checkGroups?.length)return Sn(e,t,r,n,i);let o=await ke(e.appId,e.fields,t,n),a=await it(e.appId,e.fields,o,t,n),s=await Ja.materialize(e,t,r,n,i,o),{rows:l,columns:d}=s;if(Gc(s),d.length!==e.fields.length){let m=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await de(e.appId,t,n),f=l.map((m,h)=>{let T={};return e.fields.forEach((S,P)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let w=m[d[P]]??"";T[S]={value:Fc(w,u.get(S))}}),T});f.forEach(m=>xt([m],e.fields.filter(h=>h in m),o,a));let E=f.map(m=>e.keyFields.map(h=>String(m[h]?.value??"")));if(Gi.has(e)){let m=e.keyFields.map(T=>u.get(T)==="NUMBER"),h=new Set;for(let T of E){let S=Mt(T,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 An(e.appId,e.keyFields,E,t,r,u);if(f.forEach((m,h)=>{let T=yn(R,E[h]);T!==void 0?c.push({id:T,record:m}):p.push(m)}),r.confirm&&p.length+c.length>0){let m=p.length+c.length;if(!await r.confirm(m,"UPDATE"))throw new Z("UPDATE",m)}let g=[];for(let m=0;m<p.length;m+=100){let h=await t.postRecords({app:e.appId,records:p.slice(m,m+100)});g.push(h.ids)}for(let m=0;m<c.length;m+=100)await t.putRecords({app:e.appId,records:c.slice(m,m+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:c.length}}async function zc(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 Xc(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 Jm(e,t=!1){try{let r=new Wt(e).tokenize(),n=new Yt(r,{import:t}).parse();return Un("phase15b",n),or(n),n}catch(r){throw r instanceof le||r instanceof A,r}}async function gn(e,t,r,n,i){let o=[];ki(e,t,r,n,o,i),await Promise.all(o)}async function Jc(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(gn(s.condition,t,r,n,i));await Promise.all(o)}function un(e,t,r,n,i){return i!==void 0&&i.size>0?Ut(e,t,r,i,n):yt(e,t,r,n)}function ki(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(un(a.query,t,r,n,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(un(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":ki(e.left,t,r,n,i,o),ki(e.right,t,r,n,i,o);break;case"NOT":case"GROUP":ki(e.expr,t,r,n,i,o);break;case"EXISTS":{let a=e;i.push(un(a.query,t,r,n,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function Qc(e,t,r,n){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await yt(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 Zc(e,t,r,n,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=un(p.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(c,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var ep=new WeakMap,tp=new WeakMap;async function Qm(e,t,r,n=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async R=>(o.add(R),t.getFields(R)),getProcessStatuses:async R=>(a.add(R),t.getProcessStatuses(R)),getNumberPrecision:async R=>(s.add(R),t.getNumberPrecision(R))},d=new Map,p=new Map,c=new Set,u=i??await xa(e,l,r),f=R=>u.nodes.find(g=>g.source===R||JSON.stringify(g.source)===JSON.stringify(R)),E=async R=>{if(R===null||typeof R!="object"||c.has(R))return;if(c.add(R),Array.isArray(R)){await Promise.all(R.map(E));return}let g=R;if(g.type==="SELECT"){let m=R;await Hi(m,l,r);let h=[m.from,...m.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Fe(m.where)||m.orderBy.length>0||m.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&h.forEach(w=>o.add(w));let S=await dn(m,l,r),P=f(m);if(S.capability==="UNSUPPORTED"&&!P)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(S)}).`);if(d.set(m,S),m.orderBy.length>0||m.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await En(m,l,r);if(m.orderMode!=="KINTONE_NATIVE")for(let I of w.semantics.values())I.fieldType==="STATUS"&&I.source&&a.add(I.source.appId);let _=[m.from,...m.joins.map(I=>I.table)].some(I=>I.cteName!==null);if(Ui(m)&&!_&&P?.allowed!==!1){let I=S.capability==="EXACT_PUSHDOWN"?Ce(m):"FULL_SCAN";p.set(m,(m.orderMode==="KINTONE_NATIVE"?zr:qr)({stmt:m,staticMode:I,whereCapability:S.capability,whereReasons:S.reasons,orderSemantics:w.semantics,maxRecords:n,hasKlike:oe(m.where)}))}}}else if(g.type==="VALIDATE"){let m=R;o.add(m.appId);let h=await Q(m.appId,l,r),T=new Map(h.filter(N=>!N.inSubtable).map(N=>[N.code,N])),S=new Set(h.filter(N=>N.inSubtable).map(N=>N.code)),P=zo(m,h),w=lr(m.checkGroups??[]),_=Ba(m.where);for(let N of w){if(N.field!=="$id"&&!T.has(N.field)&&!S.has(N.field))throw se(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${m.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!T.has(N.field)&&S.has(N.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let N of _){if(N!=="$id"&&!T.has(N)&&!S.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${m.appId}.`);if(N!=="$id"&&!T.has(N)&&S.has(N))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let I=new Map([...T].map(([N,v])=>[N,v.fieldType]));I.set("$id","RECORD_NUMBER"),Ft(m,I);let k=Lt(m.where,N=>N.field==="$id"?z({fieldType:"__ID__"}):T.get(N.field)?.semantics??(T.has(N.field)?z(T.get(N.field)):void 0));if(k.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(k)}).`);let C=new Map([...T].map(([N,v])=>[N,v.fieldType])),y=new Map([...T.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),O=m.where===null?null:k.capability==="EXACT_PUSHDOWN"?m.where:er(m.where,{allowUnqualifiedFields:!0,fieldTypes:C,fieldOptions:y,allowKlike:!1}),L=P.some(N=>N.field.fieldType==="NUMBER");L&&(s.add(m.appId),await He(m.appId,l,r)),ep.set(m,{targetFields:P.map(N=>N.subtableCode?`${N.subtableCode}(${N.field.code})`:N.field.code),fetchFields:[...new Set(["$id",...P.map(N=>N.subtableCode??N.field.code),..._,...w.map(N=>N.field)])],subtables:new Map([...new Set(P.flatMap(N=>N.subtableCode?[N.subtableCode]:[]))].map(N=>[N,P.filter(v=>v.subtableCode===N).length])),capability:k,prefilter:O,numberPrecision:L})}else if(g.type==="UPDATE"||g.type==="DELETE"){if(o.add(R.appId),g.type==="UPDATE"&&R.applyBlocks?.length){let h=R,T=await Q(h.appId,l,r);if(Qe(h,T),$i(h)){let S=T.filter(w=>!w.inSubtable),P=ra(h.where,{fieldTypes:new Map(S.map(w=>[w.code,w.fieldType])),fieldOptions:new Map(S.flatMap(w=>w.optionOrder?[[w.code,new Set(Object.keys(w.optionOrder))]]:[]))});tp.set(h,P)}}let m=R;(m.type!=="UPDATE"||!$i(m))&&f(m)?.allowed!==!1&&await Er(m,l,r)}await Promise.all(Object.values(g).map(E))};if(await E(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&ut(e)){let R=ct(e),g=await dn(R,l,r),m=f(R);if(g.capability==="UNSUPPORTED"&&!m)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Dt(g)}).`);if(d.set(R,g),Ui(R)&&m?.allowed!==!1){let h=await En(R,l,r);p.set(R,(R.orderMode==="KINTONE_NATIVE"?zr:qr)({stmt:R,staticMode:g.capability==="EXACT_PUSHDOWN"?Ce(R):"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:h.semantics,maxRecords:n,hasKlike:oe(R.where)}))}}return{capabilities:d,orderPlans:p,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:u}}function yc(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 Zm(e){if(!e.hasRelativeDate)return[];if(!e.allowed&&e.rejection)return[` relative date 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)for(let n of r.functionNames){let i=r.capability?.reasons.find(o=>o.functionName===n);t.push(` relative date function: ${n}`," evaluation: kintone server",` field: ${i?.field??"(unknown)"} (${i?.fieldType??"unknown"})`,` operator: ${i?.operator??"(unknown)"}`,` where capability: ${r.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${r.restQuery||"(\u306A\u3057)"}`)}return t}async function eg(e,t,r,n,i,o=100,a=be,s){let l=s??await xa(e.query,t,r),d=await Qm(e.query,t,r,n,l),p=Zm(l),c=l.hasRelativeDate&&!l.allowed?[...yc(d),...p]:[...yc(d),...p,...tg(rp(e.query,void 0,d.capabilities,d.orderPlans,o,a,n),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function tg(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 rp(e,t,r,n,i=100,o=be,a=1e4){if(e.type==="UNION")return ng(e,r,n);if(e.type==="WITH")return ig(e,r,n);if(e.type==="INSERT")return sg(e,t,i,o);if(e.type==="INSERT_SELECT")return lg(e,t,r,n);if(e.type==="UPSERT")return dg(e,t,i,o);if(e.type==="UPSERT_SELECT")return fg(e,t,r,n);if(e.type==="UPDATE")return ug(e,t,r,n,i,o,a);if(e.type==="DELETE")return pg(e,t);if(e.type==="REORDER")return Eg(e,t);if(e.type==="VALIDATE")return rg(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let d=e.targets?.filter(p=>p.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",...d.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 s=e.keyFields?"UPSERT":"INSERT",l=e.targets?.some(d=>d.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${s} 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",...l?[" 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&&l?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...l?[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 _e(e,t,r,n)}function rg(e,t){let r=ep.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)":W(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?Ka:Fa).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 _e(e,t,r,n){let i=r?.get(e)??(r?[...r].find(([f])=>JSON.stringify(f)===JSON.stringify(e))?.[1]:void 0),o=n?.get(e)??(n?[...n].find(([f])=>JSON.stringify(f)===JSON.stringify(e))?.[1]:void 0),a=o?.kind==="CANONICAL_LOCAL"||i&&i.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ce(e),s=og(e);i&&i.capability!=="EXACT_PUSHDOWN"&&s.push(...i.reasons.map(f=>f.code));let l=[],d=pu(e,fn.get(e)?.allItems.length);t&&l.push(t),l.push(` mode: ${a}`),d&&(l.push(` grouping source: ${d.source}`),l.push(` grouping sets: ${d.expandedSetCount} (limit: ${d.setLimit})`),l.push(` grouping items: ${d.groupingItemCount} (limit: ${d.itemLimit})`),l.push(` grouping output rows: runtime checked (limit: ${d.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),o?(l.push(` order plan: ${o.kind}`),o.reasonCodes.length>0&&l.push(` order reason: ${o.reasonCodes.join(", ")}`),o.kind==="KORDER_NATIVE"?(l.push(" order semantics: kintone native (not kSQL canonical)"),l.push(" REST execution: single GET")):o.kind==="KORDER_CURSOR"&&(l.push(" order semantics: kintone native (not kSQL canonical)"),l.push(" fetch API: POST/GET/DELETE records/cursor.json"),l.push(" cursor page size: 500"),l.push(` scan rows: ${o.scanRows}`))):d&&l.push(" order plan: CANONICAL_LOCAL");let p=o&&!o.requiresCompleteInput?{...e,orderBy:[]}:e,c=Tt(p);o?.requiresCompleteInput&&c.add("LOCAL_ORDER");let u=nt(e.where);if(c.size>0&&(!u||d!==null)&&(l.push(" complete input: required (onLimit=truncate disabled)"),l.push(` complete input reason: ${[...c].join(", ")}`),l.push(" onLimit=truncate: disabled")),u)return l.push(" predicate: constant false"),l.push(" records API access: none"),l.push(` app: APP${e.from.appId} (${e.from.appId})`),l;if(a==="FULL_SCAN"&&s.length>0&&l.push(` reason: ${s.join(", ")}`),a==="SIMPLE"){let f=Mn(o?.kind==="CANONICAL_REST_TOP_N"?Lc(e):e);l.push(` app: APP${e.from.appId} (${e.from.appId})`);let E=o?.kind==="KORDER_CURSOR"?na(e):f.query;l.push(` kintone query: ${E||"(\u306A\u3057)"}`),l.push(` fields: ${f.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":f.fields.join(", ")}`)}else{let f=rr(e),E=wt(e,e.from),R=e.from.alias?` AS ${e.from.alias}`:"",g=f.mainCondition,m=bc(e),h=e.joins.length===0&&i?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!lt(e.where)?W(e.where):"",T=g!==null?W(g):h||"(\u5168\u4EF6\u53D6\u5F97)";l.push(` app: APP${e.from.appId}${R} (${e.from.appId})`),l.push(` kintone query: ${T}`),m!==null&&l.push(` pushdown candidate: ${W(m)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),l.push(` fields: ${E.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":E.join(", ")}`);for(let S of e.joins){let P=wt(e,S.table),w=S.table.alias?` AS ${S.table.alias}`:"",_=S.type==="INNER"?"JOIN":`${S.type} JOIN`,I=S.table.alias?f.joinConditions.get(S.table.alias)??null:null,k=S.table.alias&&!S.table.subtableCode&&S.table.cteName===null&&e.where?_r(e.where,{tableAlias:S.table.alias}):null,C=I!==null?W(I):"(\u5168\u4EF6\u53D6\u5F97)";l.push(` ${_}: APP${S.table.appId}${w} (${S.table.appId})`),l.push(` kintone query: ${C}`),k!==null&&l.push(` pushdown candidate: ${W(k)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),l.push(` fields: ${P.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":P.join(", ")}`)}}return l.push(...ag(e,r,n)),l}function ng(e,t,r){let n=[],i=a=>{if(a.type==="SELECT"){n.push(a);return}i(a.left),n.push(a.right)};i(e);let o=[];return n.forEach((a,s)=>{s>0&&o.push(""),o.push(..._e(a,`[union:${s+1}]`,t,r))}),o}function ig(e,t,r){let n=[];for(let i of e.ctes)i.query.type==="SELECT"&&(n.push(..._e(i.query,`[cte: ${i.name}]`,t,r)),n.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&n.push(...rp(e.query,"[main]",t,r)),ut(e)){n.push("");let i=ct(e);n.push(..._e(i,"[effective: inlined CTE]",t,r))}return n}function og(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=ne(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"),lt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),st(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 ag(e,t,r){let n=[],i=1,o=a=>{if(a)switch(a.type){case"BINARY":a.right.type==="SCALAR_SUBQUERY"&&(n.push(""),n.push(..._e(a.right.query,`[subquery:${i++}]`,t,r))),a.right.type==="SUBQUERY_IN_LIST"&&(n.push(""),n.push(..._e(a.right.query,`[subquery:${i++}]`,t,r)));break;case"EXISTS":n.push(""),n.push(..._e(a.query,`[subquery:${i++}]`,t,r));break;case"LOGICAL":o(a.left),o(a.right);break;case"NOT":case"GROUP":o(a.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};o(e.where);for(let a of e.columns)a.type==="SCALAR_SUBQUERY_COL"&&(n.push(""),n.push(..._e(a.query,`[subquery:${i++}]`,t,r)));return e.having&&o(e.having),n}function sg(e,t,r=ot,n=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,...es(fi(e,r,n))]:a}function lg(e,t,r,n){let i=[];return t&&i.push(t),i.push(" [INSERT SELECT]"),i.push(` target: APP${e.appId} (${e.appId})`),i.push(` fields: ${e.fields.join(", ")}`),i.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"),i.push(""),i.push(..._e(e.select,"[source SELECT]",r,n)),i}function ug(e,t,r,n,i=100,o=be,a=1e4){if(e.applyBlocks?.length)return cg(e,t,i,o,a);let s=Ll(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=ei(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?hn(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${hn(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(nt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=mg(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${hg(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(..._e(f.value.query,`[subquery: ${f.field}]`,r,n)));return c}function cg(e,t,r,n,i){let o=fi(e,r,n),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=tp.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":W(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${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: ${hn(e.where)}`,`parent cardinality: ${ze(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${r}`,`dmlMaxSubtableRows: ${n}`,"MCP mutation: disabled in v1",...es(o)]}function pg(e,t){let r=[];return t&&r.push(t),r.push(" [DELETE]"),r.push(` target: APP${e.appId} (${e.appId})`),r.push(` kintone query: ${hn(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(nt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),r}function dg(e,t,r=ot,n=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,...es(fi(e,r,n))]:a}function es(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 fg(e,t,r,n){let i=[...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 i.push(..._e(e.select,"[source SELECT]",r,n)),i}function Eg(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(Rg).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${r}`,` scope: ${n}`,` by: ${i}`,nt(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: ${hn(e.where)}`),o}function Rg(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function hn(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return W(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function mg(e){let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"&&Vi(r,t),r.type==="STRING_FUNC"&&Vi(r,t),(r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP")&&cn(r,t);return[...t]}function Vi(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Vi(e.left,t),Vi(e.right,t)),e.type==="STRING_FUNC")for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&cn(r,t)}async function np(e,t,r,n,i){let o=Xa(e),a=await de(e.appId,r,n),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await de(t.appId,r,n),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw se(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw se(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw se(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw se(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw se(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],evaluationTypes:c}}function gg(e,t,r){if(!e)return{};let n=et(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 cn(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"&&cn(r,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(cn(e.left,t),cn(e.right,t))}function hg(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${ip(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 ip(e){return`${Ac(e.left)} ${e.op} ${Ac(e.right)}`}function Ac(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?V(e):e.type==="ARITH"?`(${ip(e)})`:"..."}var Z=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 fe=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 Kt(e){return new fe("READ_ONLY_VIOLATION",e)}function ts(e,t){return new fe("PARSE_ERROR",e,t)}function op(){let e=new mr;return new fe("SEARCH_ABORTED",e.message,e)}function In(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function yg(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 bn(e){return e instanceof fe?e:e instanceof le||e instanceof A?new fe("PARSE_ERROR",In(e),e):e instanceof mr||e?.name==="SearchAbortedError"?new fe("SEARCH_ABORTED",In(e),e):e instanceof ye||e?.name==="FetchAllLimitError"?new fe("FETCH_LIMIT_EXCEEDED",In(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new fe("CLIENT_ERROR",e.message,e.cause):yg(e)?new fe("CLIENT_ERROR",In(e),e):new fe("EXECUTION_ERROR",In(e),e)}var Ag=2,Xi=5,Sg=3e4,Tg=10*6e4+3e4,Ji=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??Ag;if(!Number.isSafeInteger(n)||n<1||n>Xi)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Xi}.`);this.maxActive=n,this.waitTimeoutMs=r.waitTimeoutMs??Sg,this.quarantineMs=r.quarantineMs??Tg}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,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 mi(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>Xi)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Xi}.`)}};function wg(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Ig(e,t=n=>new Promise(i=>setTimeout(i,n)),r=wg){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 bg(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 ap(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 d=await t.get();return d.next||(r=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>r?Promise.resolve():o||(n=!0,o=i.then(async()=>{if(!r)try{await bg(Ig(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),r=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function sp(e){return lp(e,Ng(e))}function lp(e,t,r=!1,n){let i=[];for(let o of Object.values(e)){let a=Cg(o.options),s=Og(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Qi(o.minValue),maxValue:Qi(o.maxValue),minLength:Qi(o.minLength),maxLength:Qi(o.maxLength),defaultValue:o.defaultValue,inSubtable:r,...n?{subtableCode:n}:{},writable:!t.has(o.code)&&!Pg.has(o.type)};l.semantics=z(l),i.push(l),o.fields&&i.push(...lp(o.fields,t,!0,o.type==="SUBTABLE"?o.code:n))}return i}var Pg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Ng(e){let t=new Set,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 Qi(e){return e==null||e===""?void 0:e}function Cg(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 Og(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function up(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 cp(e){return e?.includes(Lg)===!0}var pp="/k/v1/records.json",Zi="/k/v1/records/cursor.json",_g=4096,Dg=2,rs=e=>kintone.api.url(e,!0);function vg(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},n=kintone.api.urlForGet(pp,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(n).byteLength<=_g?{url:n,init:{method:"GET",credentials:"include",headers:i}}:{url:rs(pp),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 Pn(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 kg(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let n=t;return Pn({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}),Pn(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}),Pn(r)}}function Ug(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Bt(e,t,r){try{return await kintone.api(rs(e),t,r)}catch(n){throw Pn(n)}}function Mg(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function ns(e={}){let t=e.cursorMaxActive??Dg;Mg(t);let r=null,n=null,i=new Set;return{async getRecords(a){try{let s=vg(a),l=await fetch(s.url,s.init);if(!l.ok)throw await kg(l);let d=await l.json();return cp(l.headers.get("X-Cybozu-Warning"))?{records:d.records,searchAborted:!0}:{records:d.records}}catch(s){throw Pn(s)}},async openCursor(a){let s=rs(Zi),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 Ji(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 d=await r.acquire(),p;try{p=await r.runCreate(()=>Bt(Zi,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(d.release(),R):(d.quarantine(),new gi(R))}let c=p.id,u=ap(Number(p.totalCount),{get:()=>Bt(Zi,"GET",{id:c}),delete:()=>Bt(Zi,"DELETE",{id:c}),isAlreadyReleasedError:Ug,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await Bt("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Bt("/k/v1/app/form/fields.json","GET",{app:a});return sp(s.properties)},async getNumberPrecision(a){let s=await Bt("/k/v1/app/settings.json","GET",{app:a});return zl(s)},async getProcessStatuses(a){let s=await Bt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:up(s.states)}}}}var dp=new Set(["postRecords","putRecords","deleteRecords"]),Nn=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 At(e){try{return await e()}catch(t){throw new Nn(t)}}function xg(e){return()=>{throw Kt(`${String(e)} is blocked by the readonly client`)}}function is(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 d=await At(()=>t(l));if(d.searchAborted===!0)throw op();return d},openCursor:async l=>{let d=await At(()=>r(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>At(()=>p()),close:()=>At(()=>c())}},getApps:()=>At(()=>n()),getFields:l=>At(()=>i(l)),getNumberPrecision:l=>At(()=>o(l)),getProcessStatuses:l=>At(()=>a(l))});return new Proxy(s,{get(l,d,p){return dp.has(d)?xg(d):Reflect.get(l,d,p)},has(l,d){return dp.has(d)?!1:Reflect.has(l,d)}})}function Fg(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 Nn(o.reason)})(),r)}}}async function os(e,t){let r=Fg(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 fp=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Kg=new Set([...fp,"onLimitReached"]);function Bg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function as(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function $g(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let r of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[r]!="function")throw new TypeError(`client.${r} must be a function`)}function ss(e,t){Bg(e);let r=t==="run"?Kg:fp;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($g(e.client),e.maxRecords!==void 0&&as(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&as(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(as(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 Ep(e,t={}){let r=new Wt(e).tokenize(),n=new Yt(r,t).parse();return or(n),n}function Rp(e){if(e.trim()==="")throw ts("SQL statement is empty");try{return Ep(e,{import:!0})}catch(t){let r=bn(t);throw r.code==="PARSE_ERROR"?r:ts("SQL statement could not be parsed",t)}}function Vg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw Kt("Unclassifiable statement branch is not allowed");return e.type}function $t(e,t){let r=Vg(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 Kt("WITH contains an unclassifiable CTE list");for(let i of n.ctes){if(i===null||typeof i!="object"||!("query"in i))throw Kt("WITH contains an unclassifiable CTE body");$t(i.query,t)}$t(n.query,t);return}case"UNION":{let n=e;$t(n.left,t),$t(n.right,t);return}default:break}throw Kt(`${r} statements are not allowed in ${t} queries`)}function Gg(e){$t(e,"run")}function mp(e){Gg(Rp(e))}function gp(e){let t=e.trim(),r=Rp(t);return r.type==="EXPLAIN"?($t(r.query,"explain"),t):($t(r,"explain"),`EXPLAIN ${t}`)}function hp(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function yp(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function Wg(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,String(r)]))}async function ls(e,t){try{let r=ss(t,"run");mp(e);let n=await os(r.client,i=>Ma(e,is(i),r.executeOptions));return yp(n),{type:"query",rows:n.rows.map(Wg),columns:n.columns.map(i=>({name:i,valueType:"string"})),rowCount:n.rowCount,warnings:[...n.warnings??[]],metrics:hp(n.metrics)}}catch(r){throw bn(r)}}async function us(e,t){try{let r=ss(t,"explain"),n=await os(r.client,o=>Ma(gp(e),is(o),r.executeOptions));yp(n);let i=n.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
+ `),metrics:hp(n.metrics)}}catch(r){throw bn(r)}}var cs="3.20.0";var Ap=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function Hg(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Ap(e,t)?e[t]:void 0}})}function Yg(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 Sp(e,t,r,n=console){let i;if(e.ksql===void 0){i=Hg();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(Yg(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(Ap(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 jg={version:cs,createReadonlyKintoneClient:ns,explainQuery:us,KsqlEngineError:fe,runQuery:ls};Sp(window,cs,jg);})();