@rex0220/kintone-sql-tools 3.22.0 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
- "use strict";var po=Object.defineProperty;var vp=Object.getOwnPropertyDescriptor;var Up=Object.getOwnPropertyNames;var kp=Object.prototype.hasOwnProperty;var Mp=(e,t)=>{for(var r in t)po(e,r,{get:t[r],enumerable:!0})},xp=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Up(t))!kp.call(e,i)&&i!==r&&po(e,i,{get:()=>t[i],enumerable:!(n=vp(t,i))||n.enumerable});return e};var Fp=e=>xp(po({},"__esModule",{value:!0}),e);var Rg={};Mp(Rg,{KsqlEngineError:()=>ye,createReadonlyKintoneClient:()=>Tp,explainQuery:()=>Dp,runQuery:()=>_p,version:()=>Eg});module.exports=Fp(Rg);async function Re(e,t,r,n,i={}){let o=i.pageSize??Kp,a=Math.max(1,i.parallel??Bp),s=i.maxRecords??$p,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let c=p??s,d=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,y=0,m=Ts(r,R),g=await Ss(e,t,m,d,o,y);if(As(g,i),u.push(...g.records),p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Se(E)}if(g.records.length<o)return u;for(y+=o,y>=fo&&(R=Is(g.records),y=0);;){if(p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Se(E)}let h=c-u.length,A=Math.ceil(h/o),P=Math.max(1,Math.min(a,A)),I=[];for(let O=0;O<P;O++){let S=y+O*o;if(S>=fo)break;I.push(S)}let _=Ts(r,R),w=await Promise.all(I.map(O=>Ss(e,t,_,d,o,O)));for(let O of w)As(O,i);let v=!1;for(let O of w){if(u.push(...O.records),p!==void 0&&u.length>=p)return u.slice(0,p);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Se(E)}if(O.records.length<o){v=!0;break}}if(v)break;if(y+=o*I.length,y>=fo){let O=w[w.length-1];R=Is(O.records),y=0}}return u}function As(e,t){e.searchAborted&&t.onSearchAborted?.()}function ws(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 Kp=500,Bp=1,$p=1e4,fo=1e4;async function Ss(e,t,r,n,i,o){let a=Gp(r,i,o);return e({app:t,query:a,fields:n})}function Ts(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 Gp(e,t,r){let n=e.trimEnd(),i=`limit ${t} offset ${r}`;return n?`${n} ${i}`:i}function Is(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 Se=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var kn=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 ue=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"}},Yt=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(Ht(r))return this.readNumber(t);let n=this.tryReadOperator(t);if(n)return n;if(Eo(r))return this.readIdentOrKeyword(t);if(r==="#")return this.readHashIdent(t);if(r==="@")return this.readVariable(t);throw new ue(`\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 ue("\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 ue("\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&&Ht(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Ht(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Ht(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||!Ht(this.input[this.pos]))throw new ue("\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&&Ht(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&&bs(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos),n=r.toUpperCase(),i=kn.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(!Eo(r))throw new ue("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&bs(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ue(`@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 ue("\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 ue("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";var Eo=Object.defineProperty;var Bp=Object.getOwnPropertyDescriptor;var $p=Object.getOwnPropertyNames;var Gp=Object.prototype.hasOwnProperty;var Vp=(e,t)=>{for(var r in t)Eo(e,r,{get:t[r],enumerable:!0})},Wp=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of $p(t))!Gp.call(e,i)&&i!==r&&Eo(e,i,{get:()=>t[i],enumerable:!(n=Bp(t,i))||n.enumerable});return e};var Hp=e=>Wp(Eo({},"__esModule",{value:!0}),e);var Lg={};Vp(Lg,{KsqlEngineError:()=>ge,createReadonlyKintoneClient:()=>Op,explainQuery:()=>Kp,runQuery:()=>Fp,version:()=>Og});module.exports=Hp(Lg);async function Re(e,t,r,n,i={}){let o=i.pageSize??Yp,a=Math.max(1,i.parallel??jp),s=i.maxRecords??qp,l=i.onLimit??"error",p=i.stopAfter;if(p!==void 0&&(!Number.isSafeInteger(p)||p<=0||p>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let u=p??s,d=n.length>0&&!n.includes("$id")?[...n,"$id"]:n,c=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=bs(r,R),g=await ws(e,t,y,d,o,m);if(Is(g,i),c.push(...g.records),p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Ie(E)}if(g.records.length<o)return c;for(m+=o,m>=Ro&&(R=Ps(g.records),m=0);;){if(p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Ie(E)}let h=u-c.length,T=Math.ceil(h/o),O=Math.max(1,Math.min(a,T)),b=[];for(let C=0;C<O;C++){let v=m+C*o;if(v>=Ro)break;b.push(v)}let L=bs(r,R),w=await Promise.all(b.map(C=>ws(e,t,L,d,o,C)));for(let C of w)Is(C,i);let _=!1;for(let C of w){if(c.push(...C.records),p!==void 0&&c.length>=p)return c.slice(0,p);if(c.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),c.slice(0,s);throw new Ie(E)}if(C.records.length<o){_=!0;break}}if(_)break;if(m+=o*b.length,m>=Ro){let C=w[w.length-1];R=Ps(C.records),m=0}}return c}function Is(e,t){e.searchAborted&&t.onSearchAborted?.()}function Ns(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 Yp=500,jp=1,qp=1e4,Ro=1e4;async function ws(e,t,r,n,i,o){let a=zp(r,i,o);return e({app:t,query:a,fields:n})}function bs(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 zp(e,t,r){let n=e.trimEnd(),i=`limit ${t} offset ${r}`;return n?`${n} ${i}`:i}function Ps(e){let r=e[e.length-1]?.$id?.value;if(r===void 0)return 0;let n=Number(r);return Number.isFinite(n)?n:0}var Ie=class extends Error{constructor(t){super(t),this.name="FetchAllLimitError"}};var Mn=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 ue=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"}},Yt=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(Ht(r))return this.readNumber(t);let n=this.tryReadOperator(t);if(n)return n;if(mo(r))return this.readIdentOrKeyword(t);if(r==="#")return this.readHashIdent(t);if(r==="@")return this.readVariable(t);throw new ue(`\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 ue("\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 ue("\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&&Ht(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Ht(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Ht(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||!Ht(this.input[this.pos]))throw new ue("\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&&Ht(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&&Cs(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos),n=r.toUpperCase(),i=Mn.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(!mo(r))throw new ue("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Cs(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ue(`@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 ue("\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 ue("\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 ue("\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 Eo(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Vp(t)}function bs(e){let t=e.codePointAt(0);return Eo(e)||t>=48&&t<=57}function Ht(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Vp(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Wp=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Hp(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 Te(e){let t=Wp.exec(e.trim());if(t===null)return null;let r=Hp(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 Yp(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 Ns(e){let t=Te(e);return t===null?null:Yp(t)}function jp(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 Mn(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let r=jp(e,t);return e.sign===-1?r===0?0:r===-1?1:-1:r}function xn(e,t){let r=Te(e),n=Te(t);if(r===null||n===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Mn(r,n)}var lt="__NO_FROM__";function ce(e){return{type:"NUMBER",value:Number(e),raw:e}}function V(e){let t=e.raw??String(e.value);return Ns(t)??t}function Cs(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 qp(e){return`${e.tableAlias??""}\0${e.field}`}function ie(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=qp(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 Os(e){return ie(e).type!=="NONE"}function Ls(e,t){let r=ie(e);if(r.type!=="GROUPING_SETS")return null;let n=new Map,i=s=>{let l=t(s),p=n.get(l.canonicalId);if(p)return p;let c={...l,field:s};return n.set(c.canonicalId,c),c},o=r.allItems.map(i).filter((s,l,p)=>p.findIndex(c=>c.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 Fn(e){return`'${e.replace(/'/g,"''")}'`}function jt(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return V(e);if(e.type==="STRING_FUNC")return mo(e);let r=`${jt(e.left)}${e.op}${jt(e.right)}`;return t?r:`(${r})`}function _s(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return mo(e.expr);if(e.type==="ARITH_FIELD")return jt(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 vs(e){switch(e.type){case"STRING":return Fn(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=>Fn(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(vs).join(",")})`;case"ARITH_VALUE":return jt(e.expr);case"CASE_VALUE":return Ro(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function wr(e){switch(e.type){case"BINARY":return`${_s(e.left)} ${e.op.replace("_"," ")} ${vs(e.right)}`;case"NULL_CHECK":return`${_s(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${wr(e.left)} ${e.op} ${wr(e.right)})`;case"NOT":return`NOT (${wr(e.expr)})`;case"GROUP":return`(${wr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Ds(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Fn(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?jt(e):It(e)}function Ro(e){let t=e.branches.map(n=>`WHEN ${wr(n.condition)} THEN ${Ds(n.result)}`).join(" "),r=e.elseResult===null?"":` ELSE ${Ds(e.elseResult)}`;return`CASE ${t}${r} END`}function zp(e){return e.type==="AGG_REF"?Ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?br(e):It(e)}function mo(e){return`${e.func}(${e.args.map(zp).join(",")})`}function It(e){switch(e.type){case"STRING":return Fn(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 mo(e);case"CASE_WHEN":return Ro(e);case"SCALAR_ARITH":return`(${It(e.left)}${e.op}${It(e.right)})`;case"CONCAT_OP":return`(${It(e.left)}||${It(e.right)})`}}function Xp(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?jt(e,!0):It(e)}function Ie(e,t,r){let n=Xp(r);return t?`${e}(DISTINCT ${n})`:`${e}(${n})`}function br(e){return e.type==="NUMBER"?V(e):e.type==="AGG_REF"?Ie(e.func,e.distinct,e.arg):`${br(e.left)}${e.op}${br(e.right)}`}var Pr=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),qe="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN";function he(e){return Pr.has(e)}var Us=20,yo=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"}),Ms=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),go=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"}),Mg=Object.freeze(Object.values(go).filter(e=>e!==void 0)),Jp=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Qp=new Set(Jp);function Zp(e){return Qp.has(e)}var xs=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Kn=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function ks(e){return Kn[e]!==void 0}var ed=Object.freeze([...Pr]),td=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),rd=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function nd(e){return td.has(e)}function id(e){return rd.has(e)}function od(e){return Number.isInteger(e)&&e>=1&&e<=31}var xg=Object.freeze(Array.from(new Set([...Object.keys(yo),...Ms,...Object.keys(go),...Object.keys(xs),...Object.keys(Kn),...ed,"IF"]))),ad=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 sd(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!ad.has(e.kind):!0}var T=class extends Error{constructor(r,n){super(`${r}\uFF08\u4F4D\u7F6E ${n.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${n.value}\u300D\uFF09`);this.token=n;this.name="ParseError"}},qt=class{constructor(t,r={}){this.tokens=t;this.capabilities=r;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[]}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let r=this.tempTableRefs[0];throw new T(`temp table ${r.value} is not defined in this batch.`,r)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>Us)throw new T(`batch exceeds ${Us} statements.`,r);let n=this.peek();if(n.kind!==";"&&n.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",n)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let r=t.value.toUpperCase();if(r==="CREATE")return this.parseCreateTempTable();if(r==="DROP")return this.parseDropTempTable();if(r==="DECLARE")return this.parseDeclareVariable();if(r==="VALIDATE")return this.parseValidate();if(r==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let r=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:r}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseScalarExpr(t,r){let n=this.peek();if(n.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,n);if(n.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(n.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!r)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",n);return{type:"SCALAR_SUBQUERY",query:a}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};let i=Kn[n.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,n);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,n,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,n)}rejectNonScalarExpr(t,r,n){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${n} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,r,n),this.rejectNonScalarExpr(t.right,r,n);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,r,n);return}throw new T(`${n} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),n;if(r.kind==="WITH")n=this.parseWith();else if(r.kind==="SELECT")n=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return{type:"CREATE_TEMP_TABLE",name:t,query:n}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,r){let n=this.peek();if(n.kind==="IDENT"&&n.value.toUpperCase()===t){this.advance();return}throw new T(r,n)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(t,this.prev());if(n)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:r}}parseExplain(){this.advance();let t=this.peek(),r;if(t.kind==="WITH"){let n=this.parseWith();if(n.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);r=n}else if(t.kind==="SELECT"){let n=this.parseSelect(!0);r=this.tryParseUnionChain(n)}else if(t.kind==="INSERT")r=this.parseInsert();else if(t.kind==="UPSERT")r=this.parseUpsert();else if(t.kind==="UPDATE")r=this.parseUpdate();else if(t.kind==="DELETE")r=this.parseDelete();else if(t.kind==="REORDER")r=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")r=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);r=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:r}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let r=this.parseIdentifier(),{appId:n,subtableCode:i}=ze(r,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let I=this.parseIdentifier();if(s.has(I))throw new T(`IMPORT target ${I} is declared more than once.`,this.prev());if(s.add(I),this.peek().kind==="("){this.advance();let _=this.parseIdentList();if(this.expect(")"),new Set(_).size!==_.length)throw new T(`IMPORT subtable ${I} contains duplicate child declarations.`,this.prev());let w;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}w=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:I,children:_,...w?{rowIdSourceHeader:w}:{}})}else a.push(I),o.push({kind:"FIELD",field:I});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let p=this.parseIdentifier(),c,d=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let I=this.parseIdentifier().toUpperCase();if(I!=="UTF8"&&I!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());c=I==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(d)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==lt||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(I=>I.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!d)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let y,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let I of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(I))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}m=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(y=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let h=o.filter(I=>I.kind==="SUBTABLE");if(h.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(h.some(I=>I.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!m)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let I=new Set(g);for(let _ of h){if(!_.rowIdSourceHeader)throw new T(`CSV subtable ${_.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!I.has(_.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${_.subtableCode}.`,this.prev())}for(let _ of I)if(!h.some(w=>w.subtableCode===_))throw new T(`REPLACE SUBTABLES target ${_} is not declared in INTO.`,this.prev())}}else if(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!m)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(y)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),P=this.parseDmlControlSuffix();return{type:"IMPORT",appId:n,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:c,hasHeader:d,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...g?{replaceSubtables:g}:{},...y?{keyFields:y}:{},...A,...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 T("IMPORT projection cannot use subqueries.",r);if(typeof n.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",r);Object.values(n).forEach(i=>this.validateImportProjectionScope(i,r))}parseValidate(){let t=this.advance(),r=this.parseIdentifier(),{appId:n,subtableCode:i}=ze(r,this.prev());if(i)throw new T(`VALIDATE APP${n}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${n} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let d=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:d,children:u})}else o.push({kind:"FIELD",field:d})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let d=this.peek();if(d.kind!=="IDENT"||!d.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",d);p=this.parseTableName()}let c={type:"VALIDATE",appId:n,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(c,t),c}assertValidateExpressions(t,r){let n=i=>{if(Array.isArray(i)){i.forEach(n);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);Object.values(o).forEach(n)};n(t.where),n(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,r=this.parseAssertOperand(),n=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:r,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",n);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:r,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let r=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!r.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&r.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:r}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let r=this.parseArithAddSub();return this.rejectNonLiteralArith(r,t),r.type==="NUMBER",r}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,r){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,r);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",r);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,r),this.rejectNonLiteralArith(t.right,r))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,r){let n="";for(let i=t;i<r;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,n.length>0&&sd(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:lt},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],p,c=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?p=this.parseGroupingSetsClause():this.isRollupStart()?p=this.parseRollupClause():this.isCubeStart()?p=this.parseCubeClause():l=this.parseGroupByKeys(),p&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(c=this.parseWhereExpr("HAVING"))}let d="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());d="KINTONE_NATIVE",this.expect("BY"),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"),y=n.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||p!==void 0||y))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(p&&d==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:r,columns:n,from:o,joins:a,where:s,groupBy:l,...p?{grouping:p}:{},having:c,orderMode:d,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 T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let r=this.consume("ALL"),n=this.parseSelect(),i={type:"UNION",all:r,left:t,right:n};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.continueArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let r=this.tryAggregateFunc();if(r!==null){let o=this.parseAggregateRef(r);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseArithAddSub(),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let n=this.parseColumnFieldRef();if(n==="_p.*")return{type:"PARENT_WILDCARD"};if(n==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:n},a=this.continueArith(o),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:n,alias:i}}tryWindowFunc(){return xs[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let n=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:r,orderBy:n,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(r=>this.stringFuncArgHasAggregate(r)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(r=>this.stringFuncArgHasAggregate(r)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(n=>n.result),...t.elseResult?[t.elseResult]:[]].some(n=>n.type==="ARRAY"||n.type==="FIELD_REF"||n.type==="ARITH"?!1:this.scalarValueHasAggregate(n)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:r,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let r=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:r,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let r=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),r}if(this.peek().kind==="-"){this.advance();let r=this.parseAggPrimary();return r.type==="NUMBER"?ce(`-${V(r)}`):{type:"AGG_ARITH",left:ce("0"),op:"-",right:r}}if(this.peek().kind==="NUMBER"){let r=this.advance();return ce(r.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let r=this.scalarAllowsAggregateArgs,n=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=r,this.scalarAllowsCase=n}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let r=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let n=this.advance(),i=this.parseScalarMulDiv(t);r=n.kind==="||"?{type:"CONCAT_OP",left:r,right:i}:{type:"SCALAR_ARITH",left:r,op:n.kind==="+"?"+":"-",right:i}}return r}parseScalarMulDiv(t){let r=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.advance(),i=n.kind==="*"?"*":n.kind==="/"?"/":"%";r={type:"SCALAR_ARITH",left:r,op:i,right:this.parseScalarPrimary(t)}}return r}parseScalarPrimary(t){let r=this.peek();if(r.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let n=this.parseScalarAddSubConcat(t);return this.expect(")"),n}if(r.kind==="+"||r.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseScalarPrimary(t);if(n.type==="NUMBER")return ce(`${r.kind==="-"?"-":"+"}${V(n)}`);if(r.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",r);return{type:"SCALAR_ARITH",left:ce("0"),op:"-",right:n}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};if(r.kind==="NUMBER")return this.advance(),ce(r.value);if(r.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:r.value.slice(1).toLowerCase()};if(r.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(r.kind==="IDENT"||r.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:r.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:r.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",r)}hasTopLevelTokenBeforeValueEnd(t){let r=0;for(let n=this.pos;n<this.tokens.length;n++){let i=this.tokens[n].kind;if(i==="("||i==="[")r++;else if(i===")"||i==="]"){if(r===0)break;r--}if(i===t)return!0;if(r===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.parseArithOp(),n=this.parseArithPrimary();t={type:"ARITH",left:t,op:r,right:n}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let r=this.parseArithOp(),n=this.parseArithMulDiv();t={type:"ARITH",left:t,op:r,right:n}}return t}parseArithPrimary(){if(this.consume("(")){let r=this.parseArithAddSub();return this.expect(")"),r}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return ce(`+${r.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseArithPrimary();return r.type==="NUMBER"?ce(`-${V(r)}`):{type:"ARITH",left:ce("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ce(t.value);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let r=t.value;if(this.peek().kind==="."){this.advance();let n=this.advance();r=`${r}.${n.value}`}return{type:"FIELD_REF",field:r}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let r=this.parseCaseCondition(t);this.expect(",");let n=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:r,result:n}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let r=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();r.push({condition:i,result:o})}if(r.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=null;return this.consume("ELSE")&&(n=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:r,elseResult:n}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let r=yo[this.peek().kind];if(r==="LEFT"||r==="RIGHT")return r}let t=yo[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(Ms.includes(r)&&this.peekAt(1).kind==="(")return r}return null}parseStringFuncExpr(){let t=this.peek().kind,r=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let n=[];if(this.peek().kind!==")")do n.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:r,args:n}}parseCastType(){let t=this.peek(),r;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),r=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let n=ld(r);if(n===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${r}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:n}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let r=this.parseAggPrimary(),n=this.continueAggArith(r);if(this.hasAggregateOperand(n))return n}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return go[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let r=this.consume("DISTINCT"),n=r?this.prev():null;if(t==="MODE"&&n)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);let i;if(this.consume("*")){if(!Zp(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:r,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let r=this.parseArithAddSub();if(this.isAggregateArgEnd())return r}catch{}this.pos=t,this.insideAggregateArg++;try{let r;try{r=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(n){if(n instanceof T){if(n.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",n.token);if(n.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n.token)}throw n}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(r),r}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let r=n=>{if(n===null||typeof n!="object")return;let i=n;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))r(o)};r(t)}parseTableRef(){let t=this.peek(),r=this.parseTableName();if(t.kind==="IDENT"&&r.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:r};if(this.cteNames.has(r))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:r};let{appId:n,subtableCode:i}=ze(r,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:n,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??r;return{appId:n,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let r=this.tryJoinType();if(r===null)break;let n=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:r,table:n,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let r=this.parseQualifiedIdent();return{left:t,right:r}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseIdentifier();return{tableAlias:t,field:r}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,r=this.allowRelativeDateFunctions){let n=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??n,this.allowRelativeDateFunctions=r;try{return this.parseOrExpr()}finally{this.groupingFieldContext=n,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let r=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:r}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let r=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:r}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let r=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:r}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r].kind;if(n==="(")t++;else if(n===")"&&(t--,t===0)){let i=this.tokens[r+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}r++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let r=this.parseCompareOp(),n=this.parseWhereSqlValue();return{type:"BINARY",op:r,left:t,right:n}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(n)}:{type:"FUNC_FIELD",expr:n}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:Ie(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==="("&&he(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),r=t.value.toUpperCase();switch(this.expect("("),r){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${r}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:r,args:{kind:"NONE"}};case"FROM_TODAY":{let n="";if(this.consume("-")&&(n="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${n}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!nd(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let p=String(a===0?0:a);return{type:"KINTONE_FUNC",name:r,args:{kind:"FROM_TODAY",offset:a,offsetText:p,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let n=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${r} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!id(o))throw new T(`${r} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);n=o}return this.expect(")",`${r} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:r,args:{kind:"WEEK",weekday:n}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let n=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),n="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!od(o))throw new T(`${r} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);n=o}else throw new T(`${r} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${r} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:r,args:{kind:"MONTH",day:n}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${r} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(ks(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Kn[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let r=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:r}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let r=this.parseArithAddSub();return r.type==="NUMBER"?r:{type:"ARITH_VALUE",expr:r}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let r=this.parseInListOrSubquery();return this.expect(")"),r}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),r=t.columns[0],n=r&&r.type==="FIELD"?r.alias??r.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:n}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],r="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\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(ce(n.value));else if(n.kind==="-"||n.kind==="+"){let i=this.peek();if(i.kind!=="NUMBER")throw new T(r,n);this.advance();let o=n.kind==="-"?"-":"+";t.push(ce(`${o}${i.value}`))}else if(n.kind==="VARIABLE")t.push({type:"VARIABLE",name:n.value.slice(1).toLowerCase()});else throw new T(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 T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let r=new Set,n=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);r.has(a)||(r.add(a),n.push(o))}return n}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),r=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:r.tableAlias,field:r.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let r=[];if(this.peek().kind!==")")do r.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:r})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let r=Array.from({length:t.length+1},(n,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(r),sets:r}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let r=Cs(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(r),sets:r}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let r=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:r.tableAlias,field:r.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let r=[];do{let n=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),r.push({key:n,direction:i})}while(this.consume(","));return r}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let d=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:r,fields:i,select:c,...d,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let c=this.parseInsertRow(i.length);this.expect(")"),o.push(c)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let p=a.length>0?{applyBlocks:a}:{};return n?{type:"INSERT",appId:r,subtableCode:n,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:r,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(t,this.prev());if(n)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:r,fields:i,select:d,keyFields: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 T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:r,fields:i,values:o,keyFields:a,...s,...p,...c}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,r;for(;this.isUpsertApplyBranchStart();){this.advance();let n=this.advance(),i=n.kind==="INSERT";if(i&&t||!i&&r)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,n);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:r=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...r?{onUpdateApplyBlocks:r}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let r=this.expect("STRING");t.push({type:"STRING",value:r.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let n=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:n})}else if(this.peek().kind==="IF"){let n=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:n})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let n=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(ce(`${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(ce(n.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",n)}while(this.consume(","));if(r.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(n&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${r}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${r} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(n)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let 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 T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),c=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&p.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(n&&(c.validateOnly||c.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:r,assignments:i,where:s,from:o,...d,...p,...c}:n?{type:"UPDATE",appId:r,subtableCode:n,assignments:i,where:s,...d,...p,...c}:{type:"UPDATE",appId:r,assignments:i,where:s,...d,...p,...c}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=[];for(;r.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let n=r.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=r.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(n&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:r}:{field:t,targetKind:"SUBTABLE",operations:r}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),r=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:r,...n?{expectRows:n}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let r=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),r.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:r}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...r?{expectRows:r}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let r=this.parseExpectRowsCount();if(t>r)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:r}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let r=this.advance(),n=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});n.push({condition:i,message:o})}if(n.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",r);t.push({rules:n})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=null;if(this.consume("INTO")){let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);r=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:r}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);let n=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:n,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,r,n){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==r.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${r} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,n);continue}if(this.nodeContainsQualifiedField(i.value,r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",n);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",n)}}decomposeUpdateFromWhere(t,r,n,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((c,d)=>{let u=this.matchUpdateFromJoin(c,r,n);u!==null&&a.push({index:d,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let c=0;c<o.length;c++){if(c!==s.index&&this.nodeContainsQualifiedField(o[c],n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(c!==s.index&&this.nodeContainsForeignQualifier(o[c],r))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${r} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let p=o.filter((c,d)=>d!==s.index).reduce((c,d)=>c===null?d:{type:"LOGICAL",op:"AND",left:c,right:d},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:p}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,r,n){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,r)&&this.isSourceRef(i,n)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,n)&&this.isTargetRef(i,r)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let r=t.indexOf(".");return r<0?{alias:null,field:t}:{alias:t.slice(0,r),field:t.slice(r+1)}}isTargetRef(t,r){return t.alias===null||t.alias.toLowerCase()===`app${r}`.toLowerCase()}isSourceRef(t,r){return t.alias?.toLowerCase()===r.toLowerCase()}nodeContainsQualifiedField(t,r){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,r));if(t===null||typeof t!="object")return!1;let n=t;if(n.type==="FIELD"&&typeof n.tableAlias=="string"&&n.tableAlias.toLowerCase()===r.toLowerCase())return!0;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let i=this.splitQualifiedField(n.field);if(this.isSourceRef(i,r))return!0}return Object.values(n).some(i=>this.nodeContainsQualifiedField(i,r))}nodeContainsForeignQualifier(t,r){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,r));if(t===null||typeof t!="object")return!1;let n=t,i=`app${r}`.toLowerCase();if(n.type==="FIELD"&&typeof n.tableAlias=="string")return n.tableAlias.toLowerCase()!==i;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let o=this.splitQualifiedField(n.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(n).some(o=>this.nodeContainsForeignQualifier(o,r))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(n=>this.nodeContainsAnyQualifier(n));if(t===null||typeof t!="object")return!1;let r=t;return r.type==="FIELD"&&typeof r.tableAlias=="string"||r.type==="FIELD_REF"&&typeof r.field=="string"&&this.splitQualifiedField(r.field).alias!==null?!0:Object.values(r).some(n=>this.nodeContainsAnyQualifier(n))}parseAssignments(){let t=[];do{let r=this.parseIdentifier();this.expect("=");let n=this.parseAssignmentValue();t.push({field:r,value:n})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(ks(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let r=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let n;try{n=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=r}if(n.type==="NUMBER"||n.type==="ARITH"||n.type==="STRING_FUNC")return n;if(n.type==="FIELD_REF"){let i=n.field.indexOf(".");if(i>0&&i<n.field.length-1)return{type:"SOURCE_FIELD",alias:n.field.slice(0,i),field:n.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return n?{type:"DELETE",appId:r,subtableCode:n,where:o}:{type:"DELETE",appId:r,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let r=this.parseIdentifier(),{appId:n,subtableCode:i}=ze(r,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:n,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,r){let n=this.peek();if(n.kind!==t)throw new T(r??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,n);return this.advance()}expectKeyword(t,r){return this.expect(t,r)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),r=Number(t.value);if(!Number.isInteger(r)||r<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return r}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||kn.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let r=this.parseIdentifier();return`${t}.${r}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let r=this.parseIdentifier();return`${t}.${r}`}};function ld(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 ze(e,t){let r=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!r)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(r[1]),subtableCode:r[2]??null}}function Fs(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var ud=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function pe(e,t){for(let r of t)e.add(r)}function Bn(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"&&ud.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=>Bn(i,t)):Bn(n,t))}function wt(e){let t=new Set;if(Fs(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":pe(t,Xt(e));break;case"UNION":pe(t,Ks(e));break;case"WITH":for(let r of e.ctes)pe(t,wt(r.query));pe(t,wt(e.query));break;case"CREATE_TEMP_TABLE":pe(t,wt(e.query));break;default:break}return Bn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function Ks(e){let t=e.left.type==="SELECT"?Xt(e.left):Ks(e.left);return pe(t,Xt(e.right)),t}function Xt(e){let t=new Set;ie(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"&&pe(t,Xt(r.query)),r.type==="CASE_COL")for(let n of r.expr.branches)pe(t,zt(n.condition));return pe(t,zt(e.where)),pe(t,zt(e.having)),Bn(e)&&t.add("STATISTICAL_AGGREGATE"),t}function zt(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")&&pe(t,Xt(e.right.query));break;case"LOGICAL":pe(t,zt(e.left)),pe(t,zt(e.right));break;case"NOT":case"GROUP":pe(t,zt(e.expr));break;case"EXISTS":pe(t,Xt(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var cd=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})}),So=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})}),Nr="v1";function B(e){throw new Error(`UnsupportedError: APPLY ${Nr} scope does not support ${e}`)}function pd(e,t){let r=Nr;Nr=e;try{return t()}finally{Nr=r}}function dd(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function Gn(e,t){return pd(e,()=>fd(t,cd[e]))}function fd(e,t){let r=dd(e);if(r===null)return;if(r.type==="UPSERT"){Rd(r,t);return}let n=r.applyBlocks;if(ho(n),!t.multipleBlocks&&n.length!==1&&B("multiple APPLY blocks in this phase"),r.type==="INSERT"){md(r,n,t);return}let i=r;i.subtableCode&&B("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&B("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&B("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&B("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&B("REJECT LIMIT in this phase"),yd(i.where,t.multipleParents),$s(n,t)}function $s(e,t){for(let r of e){for(let n of r.operations)t.operations.has(n.kind)||B(`${n.kind} in this phase`);Gs(r);for(let n of r.operations){if(n.kind==="APPEND"){for(let i of n.fields)$n(i,"APPEND targets");Qt(n.values,"APPEND values");continue}if(n.kind==="REMOVE"){!t.expectRows&&n.expectRows&&B("EXPECT ROWS in this phase"),n.selector.kind==="WHERE"&&Bs(n.selector.where,t.idxSelectors);continue}if(n.kind==="PATCH"){!t.expectRows&&n.expectRows&&B("EXPECT ROWS in this phase"),n.assignments.length===0&&B("an empty PATCH operation in this phase");for(let i of n.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&B("parent or qualified PATCH targets in this phase")}Qt(n.assignments,"PATCH assignments"),n.selector.kind==="WHERE"&&Bs(n.selector.where,t.idxSelectors)}}}}function Gs(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 Ed=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Vs(e,t){if(Gs(e),e.targetKind==="MULTI_VALUE"){if(!Ed.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 ho(e){let t=new Set;for(let r of e){if(t.has(r.field))throw new Error(`ArgumentError: APPLY ${Nr} scope allows only one block for table ${r.field}`);t.add(r.field)}}function Rd(e,t){t.upsert||B("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&B("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&B("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&B("REJECT LIMIT in this phase");let r=e.onInsertApplyBlocks??[],n=e.onUpdateApplyBlocks??[];ho(r),ho(n),!t.multipleBlocks&&(r.length>1||n.length>1)&&B("multiple APPLY blocks in this phase"),Ws(r,"UPSERT ON INSERT"),$s(n,{...t,idxSelectors:!1,expectRows:!1})}function Ws(e,t){for(let r of e)for(let n of r.operations){n.kind!=="APPEND"&&B(`${n.kind} for ${t} in this phase`);for(let i of n.fields)$n(i,"APPEND targets");Qt(n.values,"APPEND values")}}function md(e,t,r){r.insert||B("INSERT in this phase"),e.subtableCode&&B("a subtable INSERT as the parent statement in this phase"),!r.check&&e.checkGroups?.length&&B("CHECK in this phase"),!r.onErrorSkip&&e.onErrorSkip&&B("ON ERROR SKIP in this phase"),!r.rejectLimit&&e.rejectLimit!=null&&B("REJECT LIMIT in this phase"),Ws(t,"INSERT")}function Xe(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 Hs(e,t){let r=So[e],n="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!n&&Ys(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Jt(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 ${Jt(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 ${Jt(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!r.multipleParentPreflight&&!Xe(t.where))throw new Error(`UnsupportedError: APPLY ${Jt(e)} execution does not support multiple-parent APPLY`)}function Ys(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 js(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Xe(t.where))&&!So[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Jt(e)} public multiple-parent write is not connected`)}function Zt(e){if(!So[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Jt(e)} internal prepared write is not available`)}function Jt(e){return`Phase ${e.slice(5)}`}function yd(e,t){Xe(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&B("a parent $id that is not a positive safe integer in this phase"),t||B("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Ao(e,t))}function Ao(e,t){if(Array.isArray(e)){for(let o of e)Ao(o,t);return}if(e===null||typeof e!="object")return;let r=e,n=typeof r.type=="string"?r.type:null,i=typeof r.op=="string"?r.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&B("KLIKE in parent WHERE"),(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="SUBQUERY_IN_LIST"||n==="EXISTS")&&B("subqueries in parent WHERE"),(n==="WINDOW_COL"||n==="AGGREGATE"||n==="AGG_REF"||n==="AGG_ARITH"||n==="ARITH_AGG_COL")&&B("aggregate or window expressions in parent WHERE"),(n==="FIELD"||n==="FIELD_REF")&&typeof r.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(r.field)&&B("aggregate or window expressions in parent WHERE"),n==="KINTONE_FUNC"&&!(typeof r.name=="string"&&he(r.name))&&B("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(r))Ao(o,t)}function Bs(e,t){Qt(e,"child row selectors",t)}function Qt(e,t,r=!1){if(Array.isArray(e)){for(let s of e)Qt(s,t,r);return}if(e===null||typeof e!="object")return;let n=e,i=typeof n.type=="string"?n.type:null,o=typeof n.kind=="string"?n.kind:null,a=typeof n.op=="string"?n.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&B(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&B(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&B(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof n.name=="string"&&he(n.name))&&B(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=n.tableAlias,l=n.field;s!=null&&B(`qualified or parent field references in ${t}`),$n(l,t,r)}if(i==="FIELD_REF"&&$n(n.field,t,r),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(n))Qt(s,t,r)}function $n(e,t,r=!1){if(typeof e!="string")return;let n=e.toLowerCase();n==="_idx"&&!r&&B(`_idx in ${t}`),(n.startsWith("_p.")||n.includes("."))&&B(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&B(`aggregate expressions in ${t}`)}function Cr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=gd(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:Cr(e.left),right:Cr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Cr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function gd(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 qs(e){return e.includes("%")||e.includes("_")}function Or(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function er(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function ut(e){if(e===null)return!1;if(Or(e))return!0;switch(e.type){case"LOGICAL":return ut(e.left)||ut(e.right);case"NOT":case"GROUP":return ut(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ae(e){if(e===null)return!1;if(er(e))return!0;switch(e.type){case"LOGICAL":return ae(e.left)||ae(e.right);case"NOT":case"GROUP":return ae(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return hd(e);case"NULL_CHECK":return Sd(e);case"LOGICAL":return Td(e);case"NOT":return Id(e);case"GROUP":return wd(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 hd(e){if(Or(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=Xs(e.left),r=Ad(e.op),n=bd(e.right,e.op);return`${t} ${r} ${n}`}function Ad(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 Sd(e){let t=Xs(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Td(e){let t=G(e.left),r=G(e.right),n=e.op==="AND"?"and":"or",i=zs(e.left)?`(${t})`:t,o=zs(e.right)?`(${r})`:r;return`${i} ${n} ${o}`}function Id(e){return G(Cr(e.expr))}function wd(e){return`(${G(e.expr)})`}function Xs(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 Ud(e.field)}function bd(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 Js(e);case"NUMBER":return V(e);case"KINTONE_FUNC":return Pd(e);case"IN_LIST":return Dd(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 Js(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Pd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return Nd(e)}function Nd(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Lr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!Ld(e.args.offset,e.args.offsetText)||!Cd.has(e.args.unit)?Lr():`${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&&!Od.has(e.args.weekday)?Lr():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"||!_d(e.args.day)?Lr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Lr()}var Cd=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Od=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ld(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function _d(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Lr(){throw new J("internal error: invalid relative date function AST reached kintone query conversion")}function Dd(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 vd(e.values),`(${e.values.map(n=>n.type==="STRING"?Js(n):V(n)).join(",")})`}function vd(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 Ud(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function zs(e){return e.type==="LOGICAL"}var J=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function kd(e){return e.some(t=>t.type==="WINDOW_COL")}function we(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ie(e).type!=="NONE"||e.distinct||kd(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&rl(t.expr)||t.type==="SCALAR_VALUE_COL"&&Dr(t.expr))||ct(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function ct(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Qs(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Or(e);case"NULL_CHECK":return Qs(e.field);case"LOGICAL":return ct(e.left)||ct(e.right);case"NOT":case"GROUP":return ct(e.expr);case"EXISTS":return!0}}function Qs(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Vn(e){let t=[],n=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Md).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:xd(e.columns),totalCount:!1}}function tl(e,t){let r=[];return e.where!==null&&e.joins.length===0&&!ct(e.where)&&r.push(G(e.where)),{app:t,query:r.join(" "),fields:[]}}function bt(e,t){let n=$d(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 Md(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 xd(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(Io(n.field)):n.type==="ARITH_COL"?_r(n.expr,r):n.type==="STRFUNC_COL"?wo(n.expr,r):n.type==="SCALAR_VALUE_COL"&&tr(n.expr,r);return[...new Set(r)]}function Fd(e,t){_r(e.left,t),_r(e.right,t)}function _r(e,t){e.type==="FIELD_REF"?t.push(Io(e.field)):e.type==="ARITH"?Fd(e,t):e.type==="STRING_FUNC"&&wo(e,t)}function Io(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function wo(e,t){for(let r of e.args)Kd(r,t)}function Kd(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){To(e,t);return}tr(e,t)}function tr(e,t){if(e.type==="FIELD"){t.push(Io(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){wo(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){tr(e.left,t),tr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let r of e.branches)Zs(r.result,t);e.elseResult&&Zs(e.elseResult,t)}}function Zs(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){_r(e,t);return}tr(e,t)}}function To(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Bd(e.arg,t);return}e.type==="AGG_ARITH"&&(To(e.left,t),To(e.right,t))}function Bd(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?_r(e,t):tr(e,t)}function rl(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Dr(t))}function Dr(e){return e.type==="STRING_FUNC"?rl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Dr(e.left)||Dr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>el(t.result))||e.elseResult!==null&&el(e.elseResult):!1}function el(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Dr(e)}function $d(e){let t=[e.from,...e.joins.map(S=>S.table)].filter(S=>S.cteName===null),r=new Map;for(let S of t)r.set(S,{table:S,allFields:!1,fields:new Set});if(r.size===0)return r;let n=t[0]??null,i=t.find(S=>!!S.subtableCode)??null,o=new Map;for(let S of t)S.alias&&o.set(S.alias,S),S.subtableCode||(o.set(`APP${S.appId}`,S),o.set(`app${S.appId}`,S));let a=Gd(e.columns),s=S=>{let C=r.get(S);C&&(C.allFields=!0,C.fields.clear())},l=()=>{for(let S of t)s(S)},p=()=>{for(let S of t)S.subtableCode&&s(S)},c=(S,C)=>{let L=r.get(S);if(!(!L||L.allFields)){if(S.subtableCode){if(C.startsWith("_p.")){let N=C.slice(3);N&&N!=="*"&&L.fields.add(N);return}return void 0}C&&L.fields.add(C)}},d=(S,C="select")=>{if(!S||S==="*")return;if(S==="_p.*"){p();return}if(S.endsWith(".*")){let N=S.slice(0,-2);if(!N){l();return}if(N==="_p"){p();return}let U=o.get(N);if(U){s(U);return}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&a.has(S)||(C==="orderBy"||C==="having"||C==="groupBy")&&Vd(S))return;let L=S.indexOf(".");if(L>0){let N=S.slice(0,L),U=S.slice(L+1);if(N==="_p"){i&&c(i,`_p.${U}`);return}let b=o.get(N);if(b){c(b,U);return}}n&&c(n,S)},u=(S,C,L="select")=>{if(C){if(C==="_p"){i&&c(i,`_p.${S}`);return}let N=o.get(C);if(N){c(N,S);return}}d(S,L)},f=(S,C="select")=>{if(S.type==="FIELD_REF"){d(S.field,C);return}if(S.type==="ARITH"){f(S.left,C),f(S.right,C);return}if(S.type==="STRING_FUNC"){y(S,C);return}},E=(S,C="select")=>{if(S.type==="AGG_REF"){S.arg.type!=="WILDCARD"&&g(S.arg,C);return}S.type==="AGG_ARITH"&&(E(S.left,C),E(S.right,C))},R=(S,C="select")=>{if(S.type==="AGG_REF"||S.type==="AGG_ARITH"){E(S,C);return}m(S,C)},y=(S,C="select")=>{for(let L of S.args)R(L,C)},m=(S,C="select")=>{if(S.type==="FIELD"){u(S.field,S.tableAlias,C);return}if(S.type==="STRING_FUNC"){y(S,C);return}if(S.type==="SCALAR_ARITH"||S.type==="CONCAT_OP"){m(S.left,C),m(S.right,C);return}S.type==="CASE_WHEN"&&A(S,C)},g=(S,C="select")=>{if(S.type==="FIELD_REF"||S.type==="ARITH"){f(S,C);return}m(S,C)},h=(S,C="select")=>{if(S.type!=="ARRAY"){if(S.type==="FIELD_REF"||S.type==="ARITH"){f(S,C);return}m(S,C)}},A=(S,C="select")=>{for(let L of S.branches)_(L.condition,C),h(L.result,C);S.elseResult&&h(S.elseResult,C)},P=(S,C="select")=>{if(S.type==="FIELD"){u(S.field,S.tableAlias,C);return}if(S.type==="FUNC_FIELD"){y(S.expr,C);return}if(S.type==="ARITH_FIELD"){f(S.expr,C);return}S.type!=="GROUPING_FIELD"&&A(S.expr,C)},I=(S,C="select")=>{if(S.type==="ARITH_VALUE"){f(S.expr,C);return}if(S.type==="CASE_VALUE"){A(S.expr,C);return}},_=(S,C="where")=>{if(S)switch(S.type){case"BINARY":P(S.left,C),I(S.right,C);return;case"NULL_CHECK":P(S.field,C);return;case"LOGICAL":_(S.left,C),_(S.right,C);return;case"NOT":case"GROUP":_(S.expr,C);return;case"EXISTS":case"BOOLEAN":return}},w=S=>{if(S.type==="FIELD_NAME"){d(S.name,"groupBy");return}if(S.type==="ARITH_KEY"){f(S.expr,"groupBy");return}y(S.expr,"groupBy")},v=(S,C="orderBy")=>{if(S.type==="FIELD_NAME"){d(S.name,C);return}if(S.type==="ARITH_KEY"){f(S.expr,C);return}S.type!=="GROUPING_KEY"&&y(S.expr,C)};for(let S of e.columns)switch(S.type){case"WILDCARD":l();break;case"PARENT_WILDCARD":p();break;case"FIELD":d(S.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${S.name}`);case"AGGREGATE":S.arg.type!=="WILDCARD"&&g(S.arg,"select");break;case"ARITH_AGG_COL":E(S.expr,"select");break;case"ARITH_COL":f(S.expr,"select");break;case"CASE_COL":A(S.expr,"select");break;case"STRFUNC_COL":y(S.expr,"select");break;case"SCALAR_VALUE_COL":m(S.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of S.partitionBy)u(C.field,C.tableAlias,"select");for(let C of S.orderBy)v(C.key,"select");break}for(let S of e.joins)u(S.on.left.field,S.on.left.tableAlias,"where"),u(S.on.right.field,S.on.right.tableAlias,"where");_(e.where,"where");let O=ie(e);if(O.type==="PLAIN")for(let S of O.allItems)w(S);else if(O.type==="GROUPING_SETS")for(let S of O.allItems)u(S.field,S.tableAlias,"select");_(e.having,"having");for(let S of e.orderBy)v(S.key);return r}function Gd(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(Ie(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 Vd(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function pt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||we(t.query)!=="SIMPLE"||!t.query.columns.every(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||Os(r)||r.distinct?!1:!r.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")}function dt(e){let t=e.ctes[0].query,r=e.query,n=Wn(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 Wn(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:nl(e.left,t)};case"NULL_CHECK":return{...e,field:nl(e.field,t)};case"LOGICAL":return{...e,left:Wn(e.left,t),right:Wn(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Wn(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function nl(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function rr(e,t={}){return vr(e,r=>Wd(r,t))}function Ur(e,t={}){return vr(e,r=>il(r,t)||ol(r,t))}function vr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=vr(e.left,t),n=vr(e.right,t);return r&&n?{...e,left:r,right:n}:r??n??null}case"GROUP":return vr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Wd(e,t){return Hd(e,t)||qd(e,t)?!0:il(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":jd(e,t)}function Hd(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!bo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Yd=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function jd(e,t){if(!ol(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let r=t.fieldTypes?.get(e.left.field);if(r===void 0||!Yd.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 qd(e,t){return!zd(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function zd(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 il(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!bo(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 ol(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!bo(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 bo(e,t){let r=t.tableAlias??null;return e.tableAlias===r?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function kr(e,t={}){let r=e!==null&&t.extractCondition!==!1?rr(e,t):null,n=new Set;nr(r,n);let i=new Set;return nr(e,i),{condition:r,appliedKlikes:n,allKlikes:[...i]}}function ir(e,t={}){let n={allowKlike:e.joins.every(c=>c.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=kr(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 c of e.joins){if(!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let d=rr(e.where,{...n,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});d!==null&&l.set(c.table.alias,d)}let p=new Set(a.appliedKlikes);for(let c of l.values())nr(c,p);return{mainCondition:s,joinConditions:l,appliedKlikes:p,allKlikes:a.allKlikes}}function Po(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function nr(e,t){if(e!==null){if(er(e)){t.add(e);return}switch(e.type){case"LOGICAL":nr(e.left,t),nr(e.right,t);return;case"NOT":case"GROUP":nr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function sr(e){al(e)}function Co(e){if(Po(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function al(e){switch(e.type){case"SELECT":ar(e);return;case"UNION":Lo(e);return;case"WITH":sl(e);return;case"EXPLAIN":al(e.query);return;case"CREATE_TEMP_TABLE":Oo(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":or(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Xe(e.where)&&ae(e.where)){No(e.where),or(e);return}if(ft(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&ae(e.where)&&!Jd(e,e.where)){No(e.where),or(e);return}if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(ft(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&ae(e.where)){No(e.where),or(e);return}if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function No(e){Yn(e,t=>{if(!er(t))return;let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(r.type==="STRING"&&r.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Oo(e){e.type==="SELECT"?ar(e):e.type==="UNION"?Lo(e):sl(e)}function Lo(e){Oo(e.left),ar(e.right)}function sl(e){if(pt(e)){ar(dt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?ar(t.query):t.query.type==="UNION"&&Lo(t.query);Oo(e.query)}function ar(e){if(Xd(e),ae(e.where)&&!(we(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(r=>r.table.cteName===null))){let r=ir(e,{allowUnresolvedVariables:!0});if(Po(r).length===0){or(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}or(e)}function Xd(e){Yn(e,t=>{if(!er(t))return;if(!Hn(e.where,t))throw new oe("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 oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(r.type==="STRING"&&r.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function or(e){jn(e,t=>{t.type==="SELECT"&&ar(t)},!0)}function ft(e){let t=!1;return jn(e,r=>{r.type==="BINARY"&&(r.op==="KLIKE"||r.op==="NOT_KLIKE")&&(t=!0)}),t}function Jd(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 Hn(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Hn(e.left,t)||Hn(e.right,t);case"NOT":case"GROUP":return Hn(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Yn(e,t){if(Array.isArray(e)){for(let n of e)Yn(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&&Qd(n)||Yn(n,t)}function jn(e,t,r=!1){if(Array.isArray(e)){for(let i of e)jn(i,t);return}if(e===null||typeof e!="object")return;let n=e;r||t(n);for(let i of Object.values(n))jn(i,t)}function Qd(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ll=Symbol("ksql.groupingRowMeta"),ul=new WeakMap;function cl(e,t){return Object.defineProperty(e,ll,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Zd(e){return e[ll]}function ef(e){return Zd(e)?.includedCanonicalIds}function pl(e,t){ul.set(e,t)}function lr(e,t){let r=ef(t);if(!r)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let n=ul.get(e);if(!n)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return r.has(n)?"0":"1"}var fl=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 Xn(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function vo(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 be(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>be(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=>be(n,t))}}function Jn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Jn(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="AGGREGATE"||r.type==="AGG_REF"){be(r.arg,t);return}Object.values(r).forEach(n=>Jn(n,t))}}function Mr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Mr(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(vo(r.field));return}Object.values(r).forEach(i=>Mr(i,t))}}function Do(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Do);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(Do)}function tf(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"?Do(e):!1}function rf(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function dl(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 nf(e,t,r){let n=t(e.field);if(!n.physical)throw new Error(`ArgumentError: B65 grouping reference ${Xn(e.field)} must resolve to a physical APP field.`);if(!r.has(n.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Xn(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);pl(e,n.canonicalId)}function _o(e,t,r,n){let i=t(e);if(!i.physical||!r.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Xn(e)} in ${n} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function of(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[vo(e.name)];let t=[];return Mr(e,t),t}function El(e){let t=ie(e),r=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&be(i,r);be(e.having,r),be(e.orderBy,r);let n=[];be(e.where,n),be(e.joins,n),Jn(e.columns,n),Jn(e.having,n);for(let i of e.columns)i.type==="WINDOW_COL"&&be(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 Rl(e,t,r=()=>{}){El(e);let n=ie(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&be(c,i);if(be(e.having,i),be(e.orderBy,i),n.type!=="GROUPING_SETS")return null;let o=Ls(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: B65 grouping item ${Xn(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}r({expandedSetCount:n.sets.length,canonicalItemCount:a.size});for(let c of i)nf(c,t,a);let l=rf(e.columns);for(let c of e.columns){if(c.type==="GROUPING_COL"||c.type==="AGGREGATE"||c.type==="ARITH_AGG_COL"||c.type==="LITERAL_COL"||c.type==="VARIABLE_COL"||c.type==="SCALAR_SUBQUERY_COL")continue;let d=[];c.type==="FIELD"?d.push(vo(c.field)):Mr(c,d);for(let u of d)_o(u,t,a,"SELECT")}if(e.having){let c=[];Mr(e.having,c);for(let d of c)d.tableAlias===null&&l.has(d.field)||dl(d)||_o(d,t,a,"HAVING")}for(let c of e.orderBy)for(let d of of(c.key))d.tableAlias===null&&l.has(d.field)||dl(d)||_o(d,t,a,"ORDER BY");let p=new Set;for(let c of s)p.add(c.directKey),c.unqualifiedBridgeKey!==null&&p.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!tf(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&p.has(d))throw new Error(`ArgumentError: B65 aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var af=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),sf=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":sf.has(e.fieldType)?t="option":af.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 ur(e,t,r){return{...e,source:{appId:t,fieldCode:r}}}function Qn(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 Et(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 lf(e,t){return e<t?-1:e>t?1:0}function ml(e){if(e==="")return{band:0};let t=Te(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 uf(e,t){let r=ml(e),n=ml(t);return r.band!==n.band?r.band<n.band?-1:1:r.band===2&&n.band===2?Mn(r.value,n.value):r.band===5&&n.band===5?Et(r.value,n.value):0}function yl(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 cf(e,t,r){let n=yl(e,r),i=yl(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=Et(n.normalizedId,i.normalizedId);return o!==0?o:Et(n.display,i.display)}function pf(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let r=JSON.parse(e);return Array.isArray(r)?r.map(n=>String(n??"")):[e]}catch{return[e]}}function gl(e,t){let r=t.optionOrder??new Map,i=[...new Set(pf(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(hl),i}function hl(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Et(e.label,t.label)}function df(e,t,r){let n=gl(e,r),i=gl(t,r),o=Math.min(n.length,i.length);for(let a=0;a<o;a++){let s=hl(n[a],i[a]);if(s!==0)return s}return n.length<i.length?-1:n.length>i.length?1:0}function Pt(e,t,r){switch(r.compareMode){case"string":return Et(e,t);case"number":return uf(e,t);case"recordNumber":return cf(e,t,r.fieldType==="RECORD_NUMBER");case"option":return df(e,t,r);case"unsupported":throw new Error(`ArgumentError: values of type ${r.fieldType} cannot be compared.`)}}function Nt(e,t,r,n=x("string")){let i=Pt(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 Al(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=Te(o),l=Te(a),p=s!==null&&l!==null?Mn(s,l):lf(Number(o),Number(a));if(p!==0)return p}return Et(o,a)};return r.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function te(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Je(t,e.field));if(e.type==="STRING_FUNC")return Number(re(e,t));let r=te(e.left,t),n=te(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 Je(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 re(e,t,r,n);case"CASE_WHEN":return Pe(e,t,r,n);case"CONCAT_OP":return re({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 Rt(e,t,r,n){switch(e.type){case"CASE_WHEN":return wl(e,t,r,n);case"SCALAR_ARITH":{let i=Rt(e.left,t,r,n),o=Rt(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=Rt(e.left,t,r,n),o=Rt(e.right,t,r,n);return`${i??""}${o??""}`}default:return se(e,t,r,n)}}function Zn(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 ff(e){return e>=55296&&e<=56319}function Ef(e){return e>=56320&&e<=57343}function ti(e,t){return t>0&&t<e.length&&ff(e.charCodeAt(t-1))&&Ef(e.charCodeAt(t))}function Sl(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 ko(e,t){let r=Math.min(Math.max(0,t),e.length);return ti(e,r)&&(r-=1),e.slice(0,r)}function Rf(e,t){let r=Math.max(0,e.length-t);return ti(e,r)&&(r+=1),e.slice(r)}function mf(e,t,r){let n=Sl(t,e.length),i=Sl(r,e.length);return i<=n?"":(ti(e,n)&&(n+=1),ti(e,i)&&(i-=1),e.slice(n,Math.max(n,i)))}function yf(e,t){let r=e.repeat(Math.ceil(t/e.length));return ko(r,t)}var gf=200,xr=new Map;function hf(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 Uo(e,t,r=!1){let n=hf(t)+(r?"g":""),i=`${e}\0${n}`,o=xr.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(xr.size>=gf){let s=xr.keys().next().value;s!==void 0&&xr.delete(s)}return xr.set(i,a),a}function Af(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Sf(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 Tf(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 c=Number(s+l);if(c>=1&&c<=r.length){i+=r[c-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=r.length){i+=r[p-1]??"",o+=1;continue}}i+="$"}return i}function If(e,t,r,n){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==n)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,p=a.length-(l?3:2),c=a.slice(0,p);return Tf(r,o,c,l?s:void 0)})}function re(e,t,r,n){let i=e.args.map(o=>_f(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 de("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 mf(o,a,s!==void 0?a+s:o.length)}case"LEFT":{de("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ko(o,a)}case"RIGHT":{de("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Rf(o,a)}case"INSTR":return de("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{de(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 ko(o,a);let s=i[2]??" ";if(s==="")return o;let l=yf(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return de(e.func,i,2),Al(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 de("REGEXP_LIKE",i,2,3),Uo(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{de("REGEXP_REPLACE",i,3,5),Af(i[2]);let o=Sf(i[4]),a=Uo(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):If(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return de("REGEXP_SUBSTR",i,2,3),Uo(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{de("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,p)=>{s.has(l)||s.set(l,a[p])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Zn("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Zn("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Zn("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return de("TRUNCATE",i,1,2),Zn("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 Of(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 de(e.func,i,1,1),ei(i[0])?String(Mo(i[0])+1):"";case"QUARTER":return de(e.func,i,1,1),ei(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return de(e.func,i,1,1),ei(i[0])?String(Il(i[0])):"";case"DATE_FORMAT":return bf(i[0]??"",i[1]??"");case"DATEDIFF":return Pf(i[0]??"",i[1]??"");case"DATE_ADD":return Nf(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return de("LAST_DAY",i,1,1),Cf(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 de(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 Fr(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 ri(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 ei(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let r=ri(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 ri(e).getUTCDay()}function Tl(e){let t=ri(e),r=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-r),t}function wf(e){return Tl(e).getUTCFullYear()}function Il(e){let t=Tl(e),r=t.getUTCFullYear(),n=ri(`${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 bf(e,t){if(!e||e.length<10)return"";let{y:r,mo:n,d:i,h:o,mi:a,sec:s}=Fr(e),l=ei(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){case"%Y":return r;case"%y":return r.slice(2);case"%m":return n;case"%c":return String(parseInt(n,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Mo(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Mo(e)]:"";case"%v":return l?String(Il(e)).padStart(2,"0"):"";case"%G":return l?String(wf(e)).padStart(4,"0"):"";default:return p}})}function Pf(e,t){if(e.length<10||t.length<10)return"0";let r=Fr(e),n=Fr(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 Nf(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}=Fr(e),a=new Date(Date.UTC(+n,+i-1,+o));switch(r){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${p}`}function Cf(e){if(!e||e.length<10)return e;let{y:t,mo:r}=Fr(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 Of(e,t){if(/^-?\d+$/.test(t.trim()))return Lf(e,Math.max(0,Number(t)));let r=t.endsWith("%"),n=t.includes(","),i=r?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,p=s+l,c=i.toFixed(p),[d,u=""]=c.split(".");l>0&&(u=u.replace(/0+$/,""));let f=n?d.replace(/\B(?=(\d{3})+(?!\d))/g,","):d,E=u?`${f}.${u}`:f;return r?E+"%":E}function Lf(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 _f(e,t,r,n){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?V(e):String(se(e,t,r,n))}function Je(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 Df(e,t,r,n,i);case"NULL_CHECK":return Ff(e,t);case"LOGICAL":return Kf(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 Df(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=Dl(e.left,t,r,i),a=e.left.type==="FIELD"?r?.(e.left):void 0,s=Uf(e.left,a,i);return vf(e.op,o,e.right,t,a,r,s,i)}function vf(e,t,r,n,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(r.type==="IN_LIST"&&(xf(r.values),p=new Set(r.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?V(d):String(d.value):d.value))),r.type==="SUBQUERY_IN_LIST"&&(p=r.resolved),p===null)return e==="NOT_IN";let c=Mf(t,p,i);return e==="IN"?c:!c}if(e==="LIKE"){let p=xo(r,n,o);return _l(t,p)}if(e==="NOT_LIKE"){let p=xo(r,n,o);return!_l(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=xo(r,n,o,s);return Nt(e,t,l,a)}var bl=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Uf(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(bl.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(bl.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 Pl=new Set(["CHECK_BOX","MULTI_SELECT"]),Nl=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),kf=new Set(["CREATOR","MODIFIER"]);function Mf(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=>Nt("=",e,a,o))}let i;if(Pl.has(r)||Nl.has(r)||kf.has(r))try{i=JSON.parse(e)}catch{return n()}else return n();return Pl.has(r)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Nl.has(r)?!Array.isArray(i)||!i.every(Cl)?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Cl(i)?t.has(i.code):n()}function Cl(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function xf(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`)}function Ff(e,t){let r=Dl(e.field,t);return e.not?r!=="":r===""}function Kf(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 Dl(e,t,r,n){if(e.type==="FUNC_FIELD")return re(e.expr,t);if(e.type==="ARITH_FIELD")return String(te(e.expr,t));if(e.type==="CASE_FIELD")return Pe(e.expr,t,r,n);if(e.type==="GROUPING_FIELD")return lr(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Je(t,i)}function xo(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 Bf(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"?Je(t,e.expr.field):e.expr.type==="STRING_FUNC"?re(e.expr,t):String(te(e.expr,t));case"CASE_VALUE":return Pe(e.expr,t,r,n);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Pe(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?Ll(e.elseResult,t,r,n):""}function wl(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return Ol(i.result,t,r,n);return e.elseResult===null?null:Ol(e.elseResult,t,r,n)}function Ol(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"?te(e,t):Rt(e,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"?String(te(e,t)):String(se(e,t,r,n))}function vl(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 Bf(e){if(he(e))throw new Error(`${e}: ${qe}`);switch(e){case"TODAY":case"NOW":case"LOGINUSER":return vl(e);default:throw new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}}var ni=new Map,$f=200;function _l(e,t){if(!qs(t))return e.includes(t);let r=ni.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"),ni.size>=$f&&ni.clear(),ni.set(t,r)}return r.test(e)}function cr(e){return kl(e)}function Ul(e){return kl(e.flatMap(t=>t.rules.map(r=>r.condition)))}function kl(e){let t=[],r=new Set,n=o=>{if(Array.isArray(o)){o.forEach(n);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw le("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))n(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw le("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;r.has(s)||(r.add(s),t.push({tableAlias:o,field:a}))};return n(e),t}function le(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function ii(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=se(a.message,t);n.push({groupIndex:o,message:s==null?"":String(s)});break}}),n}function Ko(e){if(ut(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 Gf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Vf=new Set(["CHECK_BOX","MULTI_SELECT"]);function ai(e,t=new Map){let r=e.values.map(n=>Wf(e.fields,n,t));return Gr(r,100).map(n=>({app:e.appId,records:n}))}function Wf(e,t,r){let n={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?n[i]={value:mt(a.expr,{},r.get(i))}:n[i]={value:Qe(a,r.get(i))}}),n}function Br(e){Ko(e.where);let t=ql(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function $r(e,t,r=new Map){let n=Hf(e.assignments,r);return Gr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:n}))}))}function Hf(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:Qe(i,t.get(n))});return r}function Kl(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 si(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 Bo(e){Ko(e.where);let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"?Bl(r,t):r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP"?pr(r,t):r.type==="STRING_FUNC"?$o(r,t):r.type==="CASE_VALUE"&&$l(r.expr,t);return ql(e).forEach(r=>t.add(r)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Bl(e,t){Kr(e.left,t),Kr(e.right,t)}function Kr(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Bl(e,t):e.type==="STRING_FUNC"&&$o(e,t)}function $o(e,t){for(let r of e.args)Yf(r,t)}function Yf(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Fo(e,t);return}pr(e,t)}function pr(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"){pr(e.left,t),pr(e.right,t);return}e.type==="CASE_WHEN"&&$l(e,t)}function Fo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&jf(e.arg,t);return}e.type==="AGG_ARITH"&&(Fo(e.left,t),Fo(e.right,t))}function jf(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Kr(e,t):pr(e,t)}function Ml(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Kr(e,t);return}pr(e,t)}}function $l(e,t){for(let r of e.branches)oi(r.condition,t),Ml(r.result,t);e.elseResult!==null&&Ml(e.elseResult,t)}function oi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Kr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":oi(e.left,t),oi(e.right,t);break;case"NOT":case"GROUP":oi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Go(e,t,r=new Map){let n=t.map(i=>{let o=Number(i.$id.value),a=Gl(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:Vo(p,a,r.get(l),i)};return{id:o,record:s}});return Gr(n,100).map(i=>({app:e.appId,records:i}))}function Vo(e,t,r,n){if(e.type==="ARITH")return String(n?Ho(e,n):te(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(se(e,t));if(e.type==="STRING_FUNC")return re(e,t);if(e.type==="CASE_VALUE")return mt(e.expr,t,r);if(e.type==="SOURCE_FIELD")throw new j("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Qe(e,r)}function li(e,t,r){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return V(e);if(e.type==="ARITH")return String(te(e,t));if(e.type==="CASE_VALUE")return Pe(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 qf=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Wo(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=Gl(i),l={};for(let{field:p,value:c}of e.assignments){let d=r.get(p);if(c.type==="SOURCE_FIELD"){if(qf.has(d??""))throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${d} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,c.field))throw new j(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[c.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: ${c.field}\uFF09`);if((d==="NUMBER"||d==="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:Qe({type:"STRING",value:u},d)}}else{if(c.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");c.type==="ARITH"?l[p]={value:String(Ho(c,i))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?l[p]={value:String(se(c,s))}:c.type==="CASE_VALUE"?l[p]={value:mt(c.expr,s,d)}:l[p]={value:Qe(c,d)}}}return{id:a,record:l}});return Gr(n,100).map(i=>({app:e.appId,records:i}))}function Gl(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r.value=="string"?r.value:JSON.stringify(r.value??"")]))}function Ho(e,t){let r=xl(e.left,t),n=xl(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 xl(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Ho(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 Vl(e){return Ko(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Wl(e,t){return Gr(t,100).map(r=>({app:e,ids:r}))}function Hl(e){return Gf.has(e??"")}function zf(e){return Vf.has(e??"")}function Xf(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 Jf(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Yl(e,t){return Hl(t)?e===""?[]:e.split(",").map(r=>({code:r.trim()})):zf(t)?e===""?[]:e.split(",").map(r=>r.trim()):t==="DATETIME"?Xf(e):t==="DATE"?Jf(e):e}function jl(e,t){return Hl(t)?e.map(r=>({code:r})):e}function Fl(e,t,r){return e.type==="ARRAY"?jl(e.elements.map(n=>n.value),r):e.type==="STRING"?Yl(e.value,r):e.type==="STRING_FUNC"?re(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(te(e,t)):String(se(e,t))}function ql(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(cr(e.checkGroups).filter(r=>r.tableAlias===null||r.tableAlias.toLowerCase()===t).map(r=>r.field).filter(r=>r!=="$id"))]}function mt(e,t,r){for(let n of e.branches)if(q(n.condition,t))return Fl(n.result,t,r);return e.elseResult!==null?Fl(e.elseResult,t,r):""}function Qe(e,t){let r=Yo(e,t);if(!r.ok)throw new j(r.message);return r.value}function Yo(e,t){try{return{ok:!0,value:Qf(e,t)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:String(r)}}}function Qf(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 Yl(e.value,t);case"NUMBER":return V(e);case"ARRAY":return jl(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 Gr(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 jo=new Set(["CHECK_BOX","MULTI_SELECT"]),Zf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Vr(e){throw new Error(`ArgumentError: ${e}`)}function zl(e,t,r){let n=eE(r.fieldType,e.field),i=tE(t,n,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let g=m.value;g!==""&&(m.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let m of s)l.has(m)&&Vr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let p=i.filter(m=>!l.has(m)),c=a.filter(m=>!o.has(m)),d=[...p,...c],u=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let g=m.kind==="ADD"?f:E,h=!g.has(m.value);return g.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&h&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),y=jo.has(n)?d:d.map(m=>({code:m}));return{field:e.field,fieldType:n,operations:R,postImageValue:y,addedValues:c.length,removedValues:u,changedValues:c.length+u}}function eE(e,t){return jo.has(e)||Zf.has(e)?e:Vr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function tE(e,t,r){if(!Array.isArray(e))return Vr(`APPLY snapshot for ${r} must be an array.`);let n=e.map((i,o)=>jo.has(t)?typeof i!="string"?Vr(`APPLY snapshot for ${r} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Vr(`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 Xo(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 Ze(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)qo(s.field,null,n),rE(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(d=>d.field===s.field)&&$(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(d=>d.code===s.field&&!d.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?$(`APPLY target ${s.field} is not a SUBTABLE.`):$(`APPLY target ${s.field} does not exist as a top-level field.`);if(Vs(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 p=l,c=new Map(t.filter(d=>d.inSubtable&&d.subtableCode===s.field).map(d=>[d.code,d]));i.set(s.field,p),a.set(s.field,c);for(let d of s.operations)if(d.kind==="PATCH"){for(let u of d.assignments)qo(u.field,s.field,n,c),zo(u.value,s.field,n,c);d.selector.kind==="WHERE"&&zo(d.selector.where,s.field,n,c)}else if(d.kind==="APPEND"){let u=new Set;for(let f of d.fields)u.has(f)&&$(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),qo(f,s.field,n,c)}else d.kind==="REMOVE"&&d.selector.kind==="WHERE"&&zo(d.selector.where,s.field,n,c)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:n}}function rE(e,t){Wr(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 qo(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 zo(e,t,r,n){Wr(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 ui(e,t){let r=Ze(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)Wr(i.value,o=>{let a=r.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&n.add(o)});return[...n]}function ci(e,t){let r={_rid:e.id??"",_idx:String(t)};for(let[n,i]of Object.entries(e.value??{}))r[n]=tu(i?.value);return r}function Jl(e){let{statement:t,snapshot:r,fieldInfos:n}=e,i=e.metadata??Ze(t,n),o=Zo(r.$id?.value,"APPLY snapshot $id"),a=Xo(t);return o!==a&&$(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Zl(t,r,i,o)}function Ql(e,t,r,n=Ze(e,r)){let i=new Set;return t.map(o=>{let a=Zo(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&$(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Zl(e,o,n,a)})}function Zl(e,t,r,n){let i=Zo(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let O=r.targetMultiValueFields.get(c.field);O||$(`APPLY multi-value metadata for ${c.field} is missing.`),a.push(zl(c,t[c.field]?.value,O));continue}let d=r.childrenByTable.get(c.field),u=lE(t,c.field),f=new Set;for(let O of u)O.id||$(`APPLY snapshot for ${c.field} contains a row without _rid.`),f.has(O.id)&&$(`APPLY snapshot for ${c.field} contains duplicate _rid ${O.id}.`),f.add(O.id);let E=O=>O.field==="_rid"?"SINGLE_LINE_TEXT":O.field==="_idx"?"NUMBER":d.get(O.field)?.fieldType,R=[],y=[],m=[],g=new Set,h=new Set,A=new Set,P=c.operations.some(O=>O.kind==="REMOVE");for(let[O,S]of c.operations.entries()){if(S.kind==="APPEND"){let L=Jo(S,d,c.field);m.push({kind:"APPEND",addedRows:L.length}),y.push(...L);continue}if(S.kind==="REMOVE"){let L=oE(S,u,E,c.field);S.expectRows&&Xl(S.expectRows,L.length,n,c.field,O,S.kind),m.push({kind:"REMOVE",removedRows:L.length});for(let N of L){let U=u[N].id;h.has(N)&&$(`APPLY row ${U} is selected by both PATCH and REMOVE.`),A.has(N)&&$(`APPLY removes row ${U} more than once.`),A.add(N)}continue}if(S.kind!=="PATCH")continue;let C=iE(S,u,E,c.field);S.expectRows&&Xl(S.expectRows,C.length,n,c.field,O,S.kind),m.push({kind:"PATCH",matchedRows:C.length,changedRows:C.length});for(let L of C){let N=u[L];A.has(L)&&$(`APPLY row ${N.id} is selected by both PATCH and REMOVE.`),h.add(L);let U=ci(N,L);for(let b of S.assignments){let k=`${N.id}\0${b.field}`;g.has(k)&&$(`APPLY patches cell ${N.id}.${b.field} more than once.`),g.add(k),R.push({rowIndex:L,field:b.field,value:li(b.value,U,E)})}}}let I=new Map;for(let O of R){let S=I.get(O.rowIndex)??{};S[O.field]={value:O.value},I.set(O.rowIndex,S)}let w=[...u.flatMap((O,S)=>A.has(S)?[]:[{id:O.id,value:{...O.value,...I.get(S)??{}}}]),...y],v={table:c.field,operations:m,changedSubtableRows:I.size+A.size+y.length,deletedRows:A.size,snapshotRowIds:u.map(O=>O.id),postImageRows:w};P?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((O,S)=>A.has(S)?[O.id]:[]),payloadRows:w.map(O=>({...O.id===void 0?{}:{id:O.id},value:O.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((O,S)=>{let C=I.get(S);return C?{id:O.id,value:C}:{id:O.id}}),...y.map(O=>({value:O.value}))]})}let s=uE(t),l={};for(let c of e.assignments){let d=r.fieldsByCode.get(c.field)?.fieldType;l[c.field]={value:Vo(c.value,s,d,t)}}let p={...t};Object.assign(p,l);for(let c of o)p[c.table]={value:c.postImageRows};for(let c of a)p[c.field]={value:c.postImageValue};return{app:e.appId,parentId:n,revision:i,parentRows:1,changedSubtableRows:o.reduce((c,d)=>c+d.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function Xl(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 pi(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,p)=>{let c=a[p];return c?.value?l.id===void 0?{value:c.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(d=>[d,c.value[d]]))}:$(`APPLY normalized post-image for ${o.table} row ${p+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),n=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:$(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:n,tables:r,multiValues:i,postImage:t}}function Jo(e,t,r){return e.values.map(n=>({value:nE(e,n,t,r)}))}function nE(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?Qo(a):s.type==="CASE_VALUE"?mt(s.expr,{},a.fieldType):Qe(s,a.fieldType)}}return o}function Qo(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 iE(e,t,r,n){return eu(e.selector,t,r,n)}function oE(e,t,r,n){return eu(e.selector,t,r,n)}function eu(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,ci(l,p),r)?[p]:[]),a=aE(i);a!==null&&o.length===0&&$(`APPLY _rid ${a} does not exist in snapshot table ${n}.`);let s=sE(i);return s!==null&&o.length===0&&$(`APPLY _idx ${s} does not exist in snapshot table ${n}.`),o}function aE(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 sE(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 lE(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 Zo(e,t){let r=Number(e);return(!Number.isSafeInteger(r)||r<=0)&&$(`${t} must be a positive integer.`),r}function uE(e){let t={};for(let[r,n]of Object.entries(e))t[r]=tu(n?.value);return t}function tu(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 Wr(e,t){if(Array.isArray(e)){e.forEach(n=>Wr(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))Wr(n,t)}function X(e){throw new Error(`ArgumentError: ${e}`)}function fi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?X("APPLY snapshot $revision must be a positive integer."):t}function Hr(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),cE(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function ru(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 cE(e){let t=ea(e.snapshotRowIds,`${e.table} snapshot`),r=e.payloadRows.flatMap(c=>c.id===void 0?[]:[c.id]);for(let c of e.payloadRows)c.id===void 0&&c.value===void 0&&X(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(ea(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 c=e.payloadRows.slice(0,t.length).map(u=>u.id??"");di(t,c,`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 d=e.postImageRows.slice(0,t.length).map(u=>u.id??"");di(t,d,`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(c=>c.kind==="REMOVE")||X(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let n=ea(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(c=>c.id===void 0?[]:[c.id]),o=new Set(n),a=new Set(i);for(let c of n)a.has(c)&&X(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${c}.`);let s=t.filter(c=>!o.has(c));di(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(c=>c.id??"");di(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(c=>c.id!==void 0)||e.postImageRows.slice(i.length).some(c=>c.id!==void 0))&&X(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(c=>c.value===void 0)&&X(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((c,d)=>!ta(c.value,e.postImageRows[d]?.value))&&X(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...n]);(p.size!==t.length||t.some(c=>!p.has(c)))&&X(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function ea(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 di(e,t,r){(e.length!==t.length||e.some((n,i)=>n!==t[i]))&&X(r)}function ta(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)=>ta(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)&&ta(r[a],n[a]))}function nu(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 iu(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let r=nu(t.digits,"digits",1,30),n=nu(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 ou(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 pE=new Set(["CHECK_BOX","MULTI_SELECT"]),dE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ae(e,t,r){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=fE(e);if(i!==""&&!EE(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=Yr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:RE(t.fieldType),message:o}}if(t.required&&Ei(n))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Ei(n)&&t.fieldType==="NUMBER"){let i=String(n),o=Te(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&xn(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&&xn(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}=ou(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(!Ei(n)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ct(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!Ei(n)&&dE.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 fE(e){return e==null?"":Ri(e)&&e.type==="NUMBER"?V(e):Ri(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function EE(e,t){if(t==="DATE")return Ct(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ct(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)?Ct(r.slice(0,10),"DATE")&&Ct(r.slice(11),"TIME"):Ct(r,"DATETIME")}function Yr(e,t){if(Ri(e)){let n=Yo(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(pE.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 Ri(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Ot(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ri(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Ei(e){return e===""||Array.isArray(e)&&e.length===0}function RE(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ct(e,t){if(t==="TIME"){let p=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return p!==null&&Number(p[1])<=23&&Number(p[2])<=59&&Number(p[3]??0)<=59}let r=t==="DATE"?e:e.slice(0,10),n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r);if(!n)return!1;let i=Number(n[1]),o=Number(n[2]),a=Number(n[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Ct(l,"TIME")}var dr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ra(e,t,r){let n=new Map(r.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=n.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(c=>typeof c=="object"&&c!==null&&"code"in c),p=a;try{p=Yr(a,s)}catch{}i.record[o]={value:l?a:p}}}}function na(e,t,r,n,i,o,a,s=[],l=!0,p=!0,c={}){let d=new Map(i.map(y=>[y.code,y])),u=[],f=new Set,E=[];c.validateUpdateBuiltIns===!1&&ra(e,n,i);let R;for(let y of e){y.record??={};let m=p?[...y.preErrors]:[],g=[],h=[],A=y.mode==="create"||c.validateUpdateBuiltIns!==!1;for(let w of n){if(!y.payload.has(w))continue;let v=y.payload.get(w),O=d.get(w).fieldType,S=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(O)&&Array.isArray(v)&&v.every(L=>typeof L=="object"&&L!==null&&"code"in L);if(!A)continue;let C=Ae(v,d.get(w),a);C.ok?y.record[w]={value:S?v:C.value}:g.push({field:w,code:C.code,message:C.message})}if(l&&y.mode==="create")for(let w of i){if(w.inSubtable||y.payload.has(w.code))continue;if(Ot(w.defaultValue)){let O=Ae("",w,a);O.ok?w.required&&g.push({field:w.code,code:"ERR_REQUIRED",message:`${w.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:w.code,code:O.code,message:O.message})}else{let O=Ae(w.defaultValue,w,a);O.ok||g.push({field:w.code,code:O.code,message:`\u65E2\u5B9A\u5024: ${O.message}`})}}if(s.length>0){let w=y.evaluationRow??Object.fromEntries([...y.payload].map(([S,C])=>[S,xe(C)])),v=y.evaluationFieldTypes,O=S=>{let C=S.tableAlias?`${S.tableAlias}.${S.field}`:S.field;return v?.get(C)??v?.get(S.field)};try{for(let S of ii(s,w,O))h.push({field:"",code:"ERR_CHECK",message:S.message})}catch(S){R??=S}}let P=w=>w.map(v=>{let O={};for(let S of r)O[S]=xe(y.payload.get(S));return O.$err_statement=String(o),O.$err_operation=t,O.$err_row=String(y.rowNumber),O.$err_field=v.field,O.$err_code=v.code,O.$err_message=v.message,O.$err_value="",O.$err_subtable="",O.$err_subrow="",O.$err_subrow_id="",O}),I={rowNumber:y.rowNumber,preErrors:P(m),builtInErrors:P(g),checkErrors:P(h)};E.push(I);let _=[...I.preErrors,...I.builtInErrors,...I.checkErrors];_.length>0&&f.add(y.rowNumber),u.push(..._)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function xe(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 ia(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 mE(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 yE(e){return e.fieldType==="NUMBER"||mE(e)}function mi(e,t,r){return{subtable:e,subrow:t+1,subrowId:String(r.id??"")}}function oa(e,t){let{topByCode:r,childrenByTable:n}=ia(t),i=yE;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,p)=>{let c=p?`${p}\0${l.code}`:l.code;if(a.has(c))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(c),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...p?{subtableCode:p}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let d=n.get(l.subtableCode);if(!d)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=d.find(E=>E.code===u);if(!f){let E=[...n.entries()].some(([R,y])=>R!==l.subtableCode&&y.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 p=l.field;if(p==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let c=r.get(p);if(c?.fieldType==="SUBTABLE"){let d=(n.get(p)??[]).filter(i);if(d.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${p} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);d.forEach(u=>s(u,p));continue}if(c){s(c);continue}throw[...n.values()].some(d=>d.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 jr(e,t){return Ot(e)?"":xe(Yr(e,t))}var gE=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),qr=dr;function Fe(e,t=["$id"]){let r=ia(e),n=r.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!gE.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 Lt(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 _t(e,t,r,n,i=1,o="UPDATE"){let a=hE(e),s=[],l=new Set,p=[...t.payloadFields,...qr],c=xe(e.$id?.value),d=(u,f,E,R)=>{l.add(i);let y={};for(let m of t.payloadFields)y[m]=m==="$id"?c:xe(e[m]?.value);y.$err_statement=String(n),y.$err_operation=o,y.$err_row=String(i),y.$err_field=u.code,y.$err_code=E.code,y.$err_message=E.message,y.$err_value=jr(f,u.fieldType),y.$err_subtable=R?.subtable??"",y.$err_subrow=R?String(R.subrow):"",y.$err_subrow_id=R?.subrowId??"",s.push(y)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Ae(f,u,r);E.ok?a[u.code]={value:au(f,u.fieldType,E.value)}:d(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 y=0;y<E.length;y++){let m=E[y],g=R[y];for(let h of f){let A=m.value?.[h.code]?.value,P=Ae(A,h,r);P.ok?(g.value??={},g.value[h.code]={value:au(A,h.fieldType,P.value)}):d(h,A,P,mi(u,y,m))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function au(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 hE(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 yi(e){let{statement:t,snapshots:r,fieldInfos:n,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;su(o,"dmlMaxRows"),su(a,"dmlMaxSubtableRows");for(let h of r)fi(h);let l=Ql(t,r,n,i),p=Fe(n,t.assignments.map(h=>h.field)),c=l.some(h=>Lt(h.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=c?await e.loadNumberPrecision():void 0,u=l.map((h,A)=>_t(h.postImage,p,d,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let h=u.flatMap(A=>A.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:h})}`)}let f=l.length,E=l.reduce((h,A)=>h+A.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let y=l.map((h,A)=>pi(h,u[A].normalizedRecord)),m=y.flatMap(h=>Hr(h).records),g=u.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return lu({plans:y,records:m,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function su(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function lu(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))lu(r,t);return Object.freeze(e)}var aa=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function gi(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)uu(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 a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Ke(`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 Ke(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let c of l.fields){if(p.has(c))return Ke(`APPLY APPEND specifies child ${c} more than once.`);p.add(c),uu(c,o.field,r,s)}for(let c of l.values)if(c.length!==l.fields.length)return Ke(`APPLY APPEND for ${o.field} has ${c.length} values for ${l.fields.length} fields.`)}}return{targetTables:n,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:r}}function AE(e,t,r=gi(e,t),n){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ai(e,i).flatMap(s=>s.records);if(n&&n.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=r.childrenByTable.get(s.field),p=s.operations.flatMap(c=>Jo(c,l,s.field));return{table:s.field,rows:p,addedRows:p.length}});return o.map((s,l)=>{let p={};for(let d of t)d.inSubtable||d.fieldType==="SUBTABLE"||d.fieldType==="FILE"||d.writable===!1||aa.has(d.fieldType)||(p[d.code]=s[d.code]??{value:Qo(d)});let c={...s};for(let d of a){let u=d.rows.map(f=>({value:f.value}));p[d.table]={value:u},c[d.table]={value:u}}return{parentRowNumber:n?.[l]??l+1,tables:a,postImage:p,record:c}})}async function zr(e){let{statement:t,fieldInfos:r,dmlMaxRows:n,dmlMaxSubtableRows:i,statementNumber:o=1}=e;cu(n,"dmlMaxRows"),cu(i,"dmlMaxSubtableRows");let a=e.metadata??gi(t,r),s=AE(t,r,a,e.parentRowNumbers),l=r.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!aa.has(A.fieldType)),p=Fe(l,t.fields),c=s.some(A=>Lt(A.postImage,p));if(c&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=c?await e.loadNumberPrecision():void 0,u=s.map(A=>_t(A.postImage,p,d,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=u.flatMap(P=>P.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:A})}`)}let f=s.length,E=s.reduce((A,P)=>A+P.tables.reduce((I,_)=>I+_.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 y=s.map((A,P)=>{let I=u[P].normalizedRecord,_={};for(let w of t.fields)_[w]=I[w];for(let w of A.tables){let v=I[w.table]?.value;_[w.table]={value:w.rows.map((O,S)=>({value:Object.fromEntries(Object.keys(O.value).map(C=>[C,v[S]?.value?.[C]??O.value[C]]))}))}}return{...A,postImage:I,record:_}}),m=y.map(A=>A.record),g=[];for(let A=0;A<m.length;A+=100)g.push({app:t.appId,records:m.slice(A,A+100)});let h=u.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return pu({applyBlocks:t.applyBlocks??[],candidates:y,records:m,batches:g,validations:h,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:n,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function uu(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||aa.has(i.fieldType))return Ke(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function cu(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 pu(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))pu(r,t);return Object.freeze(e)}async function fu(e){let{statement:t,matches:r,fieldInfos:n,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;du(i,"dmlMaxRows"),du(o,"dmlMaxSubtableRows"),bE(t,r);let s=r.filter(m=>m.targetId===void 0),l=r.filter(m=>m.targetId!==void 0),p=SE(t,s.map(m=>m.sourceRowIndex)),c=await zr({statement:p,fieldInfos:n,metadata:gi(p,n),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),d=[],u=new Set;for(let m of l){let g=m.targetId;u.has(g)&&sa(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),u.add(g),m.snapshot||sa(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let h=Number(m.snapshot.$id?.value);h!==g&&sa(`UPSERT APPLY snapshot $id ${h} does not match target $id ${g}.`);let A=TE(t,m.sourceRowIndex,g),P=A.applyBlocks?.length?Ze(A,n):IE(n);d.push(await yi({statement:A,snapshots:[m.snapshot],fieldInfos:n,metadata:P,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=wE(d,i,o),E=c.guards.parentRows+f.guards.parentRows,R=c.guards.subtableRows+f.guards.subtableRows,y=E>i||R>o;if(!t.validateOnly){let m=[...c.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c.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 la({create:c,update:f,createBatches:c.batches,updateBatches:PE(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:y,create:c.guards,update:f.guards}})}function SE(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(r=>e.values[r]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function TE(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 IE(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function wE(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 la({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 bE(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 PE(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 du(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function sa(e){throw new Error(`ArgumentError: ${e}`)}function la(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))la(r,t);return Object.freeze(e)}function Jr(e){return fr("UPDATE",[mu(e)])}function ua(e){return fr("INSERT",[Ru(e)])}function ca(e){return fr("UPSERT",[Ru(e.create),mu(e.update)])}function Ne(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 Ai(e,t,r){return e.type==="UPDATE"?fr("UPDATE",[hi("update",e.applyBlocks??[],null,!0,t,r)]):e.type==="INSERT"?fr("INSERT",[hi("insert",e.applyBlocks??[],e.values.length,!1,t,r)]):fr("UPSERT",[hi("insert",e.onInsertApplyBlocks??[],null,!1,t,r),hi("update",e.onUpdateApplyBlocks??[],null,!0,t,r)])}function fr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Ru(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 mu(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:Eu(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of 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:Eu(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 Eu(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:Xr(i.count,r.count),...r.matchedRows!==void 0?{matchedRows:Xr(i.matchedRows,r.matchedRows)}:{},...r.changedRows!==void 0?{changedRows:Xr(i.changedRows,r.changedRows)}:{},...r.addedRows!==void 0?{addedRows:Xr(i.addedRows,r.addedRows)}:{},...r.removedRows!==void 0?{removedRows:Xr(i.removedRows,r.removedRows)}:{}}}):t.map(r=>({...r}))}function Xr(e,t){return e==null||t===null?null:e+t}function hi(e,t,r,n,i,o){let a=t.map(c=>{let d=c.operations.map(f=>NE(f,r)),u=d.every(f=>f.count!==null)?d.reduce((f,E)=>f+E.count,0):null;return{targetKind:c.targetKind,field:c.field,operations:d,changedCount:u}}),s=a.filter(c=>c.targetKind==="SUBTABLE"),l=s.every(c=>c.changedCount!==null)?s.reduce((c,d)=>c+d.changedCount,0):null,p=r===null||l===null?null:r>i||l>o;return{branch:e,parentRows:r,targets:a,guards:{revisionRequired:n,parentRows:r,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:p},chunk:{size:100,plannedChunks:r===null?null:Math.ceil(r/100)},deletedParentRows:e==="insert"?0:null}}function NE(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 et=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 yu(e,t,r){Zt("phase10c");let n=ru(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 et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ne(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 gu(e,t,r){Zt("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 et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ne(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 hu(e,t,r){Zt("phase14c");let n=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let c=await t.postRecords({app:p.app,records:[...p.records]});n.push(c.ids)}catch(c){throw new et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ne(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},c)}i+=1,a+=p.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let p=e.updateBatches[l];try{await t.putRecords({app:p.app,records:[...p.records]})}catch(c){throw new et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ne(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},c)}o+=1,s+=p.records.length}return{type:"UPSERT",createdIds:n,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function Au(e,t){let r=ie(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 Be(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 Be(e.left)||Be(e.right);case"NOT":case"GROUP":return Be(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 _e(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 Ti(e,t,r,n){let{records:i,metrics:o}=await _e(e,t,r,["$id"],n);return{ids:ws(i),metrics:o}}function da(e,t){let r=kr(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 CE(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function OE(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=CE(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"&&!OE(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 LE=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 _E(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,p=e.orderSemantics.get(l);if(!p){r.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(_E(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}LE.has(p.fieldType)||r.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&r.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let n=t.offset??0;(!Number.isSafeInteger(n)||n<0)&&r.push(`KORDER_OFFSET_INVALID(offset=${n})`);let i=t.limit===null?Number.NaN:n+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&r.push(`KORDER_SCAN_ROWS_INVALID(offset=${n}, limit=${t.limit})`);let o=[...new Set(r)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&n<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var Ii=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"}},wi=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},bi=class extends Error{constructor(t){let r=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${r}`),this.name="CursorCleanupWarning",this.cause=t}};async function Su(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),r=[],n=0,i,o;try{if(t.totalCount>e.offset)for(;r.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(n<e.offset)n+=1;else if(r.length<e.limit)r.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new bi(a).message}}return{records:r,cleanupWarning:o}}function fa(e){let t=[];e.where&&t.push(G(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 tt(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 DE(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(Tu(e,a,n.leftColumns),Tu(t,s,n.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let R=E[a]??"",y=d.get(R);y?y.push(E):d.set(R,[E])}let u={};for(let E of n.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",y=d.get(R)??[];if(y.length>0)for(let m of y)f.push({...m,...E});else f.push({...u,...E})}return f}let l=new Map;for(let d of t){let u=d[s]??"",f=l.get(u);f?f.push(d):l.set(u,[d])}let p=[],c={};for(let d of n.rightColumns??Object.keys(t[0]??{}))c[d]="";for(let d of e){let u=d[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)p.push({...d,...E});else o==="LEFT"&&p.push({...d,...c})}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 vE(e,t,r,n,i){return t===null?e:e.filter(o=>q(t,o,r,n,i))}function Ou(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&en(t.expr)||t.type==="SCALAR_VALUE_COL"&&yt(t.expr))}function UE(e,t,r,n){let i=new Map;for(let a of e){let s=t.map(p=>ME(p,a)).join("\0"),l=i.get(s);l?l.push(a):i.set(s,[a])}i.size===0&&t.length===0&&Ou(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[Aa(l.expr)]=String(te(l.expr,a[0])):l.type==="FUNC_KEY"&&(s[gt(l.expr)]=re(l.expr,a[0]));Lu(s,a,r,n),o.push(s)}return o}function kE(e,t,r,n,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let p={children:new Map},c=[];for(let u of e){let f=p;for(let E of l.items){let R=Iu(E,u),y=f.children.get(R);y||(y={children:new Map},f.children.set(R,y)),f=y}f.rows||(s(),f.rows=[],c.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),p.rows=[],c.push(p.rows));let d=new Set(l.items.map(u=>u.canonicalId));for(let u of c){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Iu(R,u[0]));for(let R of t.allItems){let y=E.get(R.canonicalId)??"";f[R.directKey]=y,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=y)}Lu(f,u,r,n),cl(f,d),o.push(f)}}return o}function Iu(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Lu(e,t,r,n){for(let i of r)if(i.type==="AGGREGATE"){let o=Ie(i.func,i.distinct,i.arg),a=String(ma(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??Er(i.expr);e[o]=String(Pi(i.expr,t,n))}else if(i.type==="STRFUNC_COL"&&en(i.expr)){let o=i.alias??gt(i.expr),a=Sa(i.expr,t,n);e[o]=re(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&yt(i.expr)){let o=i.alias??$e(i.expr),a=Ni(i.expr,t,n);e[o]=String(se(a,e))}}function ME(e,t){return e.type==="FIELD_NAME"?t[e.name]??"":e.type==="FUNC_KEY"?re(e.expr,t):String(te(e.expr,t))}function ma(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=te(r,f);if(isNaN(R))continue;E=String(R)}else{let R=Rt(r,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,p=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(n??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?_u(r,o):void 0,d=typeof c=="string"?x(c):c??(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 y of a)f.set(y,(f.get(y)??0)+1);let E="",R=0;for(let[y,m]of f){if(m>R){E=y,R=m;continue}if(m!==R)continue;let g=Pt(y,E,d);(g<0||g===0&&Et(y,E)<0)&&(E=y)}return E}if(e==="MIN"||e==="MAX"){let f=p;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let y=Pt(R,E,d);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(E=R)}return E}let u=s?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,y)=>R-y),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,y=0,m=0;for(let h of u){let A=h-E;R++;let P=A-y;y+=P/R,m+=P*(A-y)}let g=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(g):g}}}function xE(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(ma(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 Er(e){return br(e)}function _u(e,t){if(e.type==="FIELD_REF")return t?.(xE(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=>_u(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 FE(e,t,r,n){return t===null?e:e.filter(i=>q(t,i,r,void 0,n))}function KE(e,t,r,n,i){if(e.length===0)return e;let o=BE(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 BE(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(HE(t,a,o))}function ya(e,t,r,n,i,o){return t.length===0?e:Du(e,t,r,n,i,o).rows.map(a=>a.row)}function Du(e,t,r,n,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:x("number")};if(p.type==="FUNC_KEY")return{semantics:x(vu.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:x("number")};let c=i?.get(p.name);if(c)return{semantics:c};let d=r?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:x(n?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:c},d)=>({s:VE(c,p,o)}))})),l=(p,c)=>$E(p,c,t,a);return s.sort(l),{rows:s,compare:l}}function $E(e,t,r,n){for(let i=0;i<r.length;i++){let o=GE(e.keys[i],t.keys[i],n[i]);if(o!==0)return r[i].direction==="ASC"?o:-o}return 0}function GE(e,t,r){return Pt(e.s,t.s,r.semantics)}var vu=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function VE(e,t,r){switch(e.type){case"FIELD_NAME":return r?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(te(e.expr,t));case"FUNC_KEY":return re(e.expr,t);case"GROUPING_KEY":return lr(e.ref,t)}}function ga(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=>Je(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=Ie(a.func,a.distinct,a.arg);i.set(s,p=>p[s]??p[l]??"0");break}case"ARITH_AGG_COL":{let l=Er(a.expr);i.set(s,p=>p[s]??p[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(te(a.expr,l)));break;case"STRFUNC_COL":{let l=gt(a.expr);i.set(s,p=>en(a.expr)?p[s]??p[l]??re(a.expr,p,r,n):re(a.expr,p,r,n));break}case"CASE_COL":i.set(s,l=>Pe(a.expr,l,r,n));break;case"SCALAR_VALUE_COL":{let l=$e(a.expr);i.set(s,p=>yt(a.expr)?p[s]??p[l]??"":String(se(a.expr,p,r,n)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>lr(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function ha(e,t,r,n,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let p=JSON.stringify(a.partitionBy.map(d=>WE(l,d))),c=s.get(p);c?c.push(l):s.set(p,[l])}for(let l of s.values()){let p=Du(l,a.orderBy,r,n,i),c=p.rows,d=1,u=1;for(let f=0;f<c.length;f++){f>0&&p.compare(c[f-1],c[f])!==0&&(d=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?d:u;c[f].row[a.alias]=String(E)}}}return e}function WE(e,t){let r=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Je(e,r)}function Ci(e,t,r){let n=r??0;return t===null?e.slice(n):e.slice(n,n+t)}function Ra(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 Je(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=Ie(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Er(e.expr);return t[i]??"0"}case"ARITH_COL":return String(te(e.expr,t));case"CASE_COL":return Pe(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics);case"GROUPING_COL":return lr(e.ref,t);case"STRFUNC_COL":{let i=gt(e.expr);return en(e.expr)?t[e.alias??i]??t[i]??re(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics):re(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=$e(e.expr);return yt(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 HE(e,t,r={}){return e.map((n,i)=>{let o=Ra(n,t,i,r);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Oi(e,t,r,n,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=Nu(bu(E),a),y=Ra(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof y!="string")for(let[g,h]of y.entries)h!==null&&(m[g]=h);return m}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=qE(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),p=l?null:YE(t,s),c=p??[];return l&&e.length===0?{rows:[],columns:jE(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:r,resolveFieldType:n,resolveFieldSemantics:o,wildcardKeys:Object.keys(Nu(bu(u),a)),parentWildcardKeys:Object.keys(u).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let g=Ra(m,u,y,R);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof g!="string")for(let[h,A]of g.entries)A!==null&&(E[h]=A);break;case"PARENT_WILDCARD":{if(typeof g!="string")for(let[h,A]of g.entries)A!==null&&(E[h]=A),f===0&&c.push(h);break}case"FIELD":{let h=p?.[y]??m.alias??s.get(y)??m.field;E[h]=g,p===null&&f===0&&c.push(h);break}case"LITERAL_COL":{let h=p?.[y]??m.alias??`'${m.value}'`;E[h]=g,p===null&&f===0&&c.push(h);break}case"AGGREGATE":{let h=Ie(m.func,m.distinct,m.arg),A=p?.[y]??m.alias??h;E[A]=g,p===null&&f===0&&c.push(A);break}case"ARITH_AGG_COL":{let h=p?.[y]??m.alias??Er(m.expr);E[h]=g,p===null&&f===0&&c.push(h);break}case"ARITH_COL":{let h=p?.[y]??m.alias??Aa(m.expr);E[h]=g,p===null&&f===0&&c.push(h);break}case"CASE_COL":{let h=p?.[y]??m.alias??"case";E[h]=g,p===null&&f===0&&c.push(h);break}case"GROUPING_COL":{let h=p?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[h]=g,p===null&&f===0&&c.push(h);break}case"STRFUNC_COL":{let h=p?.[y]??m.alias??gt(m.expr);E[h]=g,p===null&&f===0&&c.push(h);break}case"SCALAR_VALUE_COL":{let h=p?.[y]??m.alias??$e(m.expr);E[h]=g,p===null&&f===0&&c.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=p?.[y]??m.alias??"(subquery)";E[h]=g,p===null&&f===0&&c.push(h);break}case"WINDOW_COL":{let h=p?.[y]??m.alias;E[h]=g,p===null&&f===0&&c.push(h);break}}}return E}),columns:c}}function YE(e,t){return e.map((r,n)=>Uu(r,n,t))}function jE(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=Uu(o,i,t);n.has(a)||(n.add(a),r.push(a))}return r}function Uu(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??Ie(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Er(e.expr);case"ARITH_COL":return e.alias??Aa(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??gt(e.expr);case"SCALAR_VALUE_COL":return e.alias??$e(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 qE(e){let t=new Map;for(let n of e){if(n.type!=="FIELD"||n.alias)continue;let i=wu(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=wu(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 wu(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function bu(e){let t={};for(let[r,n]of Object.entries(e))r.startsWith("_p.")||(t[r]=n);return t}function Aa(e){let t=r=>r.type==="FIELD_REF"?r.field:r.type==="NUMBER"?V(r):r.type==="STRING_FUNC"?gt(r):`(${t(r.left)}${r.op}${t(r.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function gt(e){let t=e.args.map(r=>r.type==="AGG_REF"||r.type==="AGG_ARITH"?Er(r):$e(r));return`${e.func}(${t.join(",")})`}function $e(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 gt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${$e(e.left)}${e.op}${$e(e.right)}`;case"CONCAT_OP":return`${$e(e.left)}||${$e(e.right)}`}}function zE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:yt(e)}function yt(e){return e.type==="STRING_FUNC"?en(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?yt(e.left)||yt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Pu(t.result))||e.elseResult!==null&&Pu(e.elseResult):!1}function Pu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:yt(e)}function en(e){return e.args.some(t=>zE(t))}function XE(e,t,r){if(e.type==="AGG_REF"){let n=ma(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"?Sa(e,t,r):Ni(e,t,r)}function Ni(e,t,r){return e.type==="STRING_FUNC"?Sa(e,t,r):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ni(e.left,t,r),right:Ni(e.right,t,r)}:e}function Sa(e,t,r){return{type:"STRING_FUNC",func:e.func,args:e.args.map(n=>XE(n,t,r))}}function Nu(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 Cu(e,t){if(e!==void 0)return t?e.flatMap(r=>[`${t}.${r}`,r]):[...e]}function Ea(e,t,r){if(!(e===void 0&&t===void 0&&r.length===0))return[...new Set([...e??[],...t??[],...Object.keys(r[0]??{})])]}function JE(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(vu.has(r.expr.func)?"number":"string")));return t}function Ta(e){let{stmt:t,tables:r,scalarCache:n,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:c,aggregateSortKindResolver:d,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:y}=e,m=JE(t.columns);for(let[w,v]of a??[])m.set(w,v);let g=[],h=t.from.alias;g=(r.get(h)??r.get(null)??[]).map(w=>tt(w,h));let P=Ea(Cu(E?.get(h),h),void 0,g);for(let w of t.joins){let v=w.table.alias,S=(r.get(v)??[]).map(L=>tt(L,v)),C=Ea(Cu(E?.get(v),v),void 0,S);g=DE(g,S,w,{leftColumns:P,rightColumns:C}),P=Ea(P,C,g)}let I=e.residualWhere!==void 0?e.residualWhere:t.where;g=vE(g,I,s,u,l);let _=ie(t);if(_.type==="GROUPING_SETS"){if(!y)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=kE(g,y,t.columns,d,{maxGeneratedRows:5e4})}else(_.type==="PLAIN"||Ou(t.columns))&&(g=UE(g,_.type==="PLAIN"?_.allItems:[],t.columns,d));return g=FE(g,t.having,p,c),g=ha(g,t.columns,i,o,m),t.distinct&&(g=KE(g,t.columns,n,s,l)),g=ya(g,t.orderBy,i,o,m,ga(t.columns,n,s,l)),g=Ci(g,t.limit,t.offset),Oi(g,t.columns,n,s,f,l,R)}function ku(e,t){let r=[];for(let n of e){let i=Ia(n.$id?.value),o=QE(n[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[p,c]of Object.entries(n)){if(p===t)continue;let d=Ia(c?.value);l[`_p.${p}`]={value:d}}for(let[p,c]of Object.entries(s.value??{}))l[p]={value:Ia(c?.value)};r.push(l)}}return r}function QE(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Ia(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 Mu(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function xu(e,t){let r=tn(e);for(let[n,i]of Object.entries(t))r[n]=tn(i);return r}function Fu(e){let t=[...e.preErrors.map(i=>wa(i)),...e.postImageErrors.map(i=>wa(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>wa(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]=tn(e.normalizedPostImage[i])}return{errors:t,invalidRows:r.size,invalidRowNumbers:r,writeRecord:n}}function wa(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 tn(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(tn(a,t));return o}let i={};t.set(r,i);for(let[o,a]of Object.entries(e))i[o]=tn(a,t);return i}var Ge=["=","!=",">","<",">=","<="],ZE=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),eR=new Set(Ge),tR=["=","!=","in","not in"],rR=new Map([["RECORD_NUMBER",new Set([...Ge,"in","not in"])],["__ID__",new Set([...Ge,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Ge)],["UPDATED_TIME",new Set(Ge)],["DATE",new Set(Ge)],["TIME",new Set(Ge)],["DATETIME",new Set(Ge)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Ge,"in","not in"])],["CALC",new Set([...Ge,"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(tR)]]),Ku=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"]),Bu=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function nR(e){return rR.get(e)??new Set}function rt(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:nn(e,t)}function nn(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return iR(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ba():sR(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ba();case"GROUP":return nn(e.expr,t);case"NOT":{let r=nn(e.expr,t);return r.capability!=="SUPERSET_PREFILTER"?r:$u(r.reasons)?on({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...r.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let r=nn(e.left,t),n=nn(e.right,t);return uR(e.op,r,n)}}}function iR(e,t,r,n){if(r.type==="KINTONE_FUNC"&&he(r.name))return Pa(e,t,r,n);if(t.type!=="FIELD")return ba();let i=n(t);if(!i)return _i("WHERE_FIELD_UNRESOLVED",t.field,void 0,Li(e));if(!lR(i.fieldType,e))return _i("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,Li(e));let o=Li(e),a=nR(i.fieldType),s=r.type==="STRING"||r.type==="NUMBER"||r.type==="IN_LIST"||oR(r),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!p?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function oR(e){return e.type==="KINTONE_FUNC"&&(e.name==="TODAY"||e.name==="NOW"||e.name==="LOGINUSER")}function Pa(e,t,r,n){let i=Li(e),o=r.name;if(t.type!=="FIELD")return rn("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=n(t);return a?aR(r)?eR.has(i)?!ZE.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?rn("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}]}:rn("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):rn("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):rn("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function aR(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 sR(e,t,r){let n=r(e);return n?!Ku.has(n.fieldType)&&!Bu.has(n.fieldType)?_i("WHERE_OPERATOR_UNSUPPORTED",e.field,n.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:n.fieldType,operator:t}]}:_i("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function lR(e,t){return Ku.has(e)?!0:Bu.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Li(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 uR(e,t,r){let n=[...t.reasons,...r.reasons];return t.capability==="UNSUPPORTED"||r.capability==="UNSUPPORTED"?on({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")?on({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...n]}):on({capability:"LOCAL_ONLY",reasons:n})}function ba(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _i(e,t,r,n){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:r,operator:n}]}}function rn(e,t,r,n,i){return on({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:r,fieldType:n,operator:i}]})}function $u(e){return e.some(t=>t.functionName!==void 0)}function on(e){if(e.capability==="EXACT_PUSHDOWN"||!$u(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 Vu(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"&&he(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 Ca(e){return Vu(e,!0)}function Di(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 De(e,t,r,n,i=!0){let o=Ca(e.where);o.length>0&&r.push({kind:n?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:o,path:t,allowPhase2Prefilter:i}),Di(e,e).forEach((a,s)=>De(a,`${t}.select-source[${s}]`,r,n,i))}function an(e,t,r,n){e.left.type==="UNION"?an(e.left,`${t}.left`,r,n):De(e.left,`${t}.left`,r,n),De(e.right,`${t}.right`,r,n)}function Gu(e,t,r,n){if(!n&&pt(e)){De(dt(e),`${t}.inlined`,r,!1);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?De(i.query,`${t}.cte[${o}]`,r,!0):i.query.type==="UNION"&&an(i.query,`${t}.cte[${o}]`,r,!0)}),e.query.type==="SELECT"?De(e.query,`${t}.main`,r,!0):an(e.query,`${t}.main`,r,!0)}function Wu(e,t,r,n=!1){switch(e.type){case"SELECT":De(e,t,r,n);return;case"UNION":an(e,t,r,n);return;case"WITH":Gu(e,t,r,n);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Gu(e.query,`${t}.query`,r,!0):e.query.type==="UNION"?an(e.query,`${t}.query`,r,!0):De(e.query,`${t}.query`,r,!0);return;case"EXPLAIN":Wu(e.query,`${t}.query`,r,n);return;case"VALIDATE":case"REORDER":{let i=Ca(e.where);i.length>0&&r.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t}),Di(e,e).forEach((o,a)=>De(o,`${t}.select-source[${a}]`,r,!0));return}case"UPDATE":case"DELETE":{let i=Ca(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=Vu(e.applyBlocks,!0);o.length>0&&r.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`})}Di(e,e).forEach((o,a)=>De(o,`${t}.select-source[${a}]`,r,n,!1));return}default:Di(e,e).forEach((i,o)=>De(i,`${t}.select-source[${o}]`,r,n,!1))}}function vi(e,t){return t.every(r=>new RegExp(`\\b${r}\\s*\\(`).test(e))}function Oa(e,t){return t.eligible===!0&&we(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function cR(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function pR(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(qe)||t.push(qe),[...new Set(t)]}function Na(e,t){let r=pR(t);return{functionName:e.functionNames[0],path:e.path,code:r.find(n=>n!==qe)??qe,reasonCodes:r}}async function Hu(e,t){let r=[];Wu(e,"statement",r);let n=[];for(let i of r){if(i.kind==="FORBIDDEN"){let c=cR(i);return n.push(c),{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Na(i)}}if(i.kind==="SELECT"){let c=i.source,d=c.from.cteName===null&&!c.from.subtableCode&&c.joins.length===0,u=we(c),f=await t.select(c),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=d&&u==="SIMPLE"&&(c.orderBy.length===0||c.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&vi(E,i.functionNames),y,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let h=await t.prefilterDecomposition(c);h?.eligible===!0&&Oa(c,h)&&(y=h.plan,m=!0,R=!0)}let g={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...y?{prefilterPlan:y,phase2PrefilterEligible:m}:{},clientWhereEvaluation:!R,allowed:R};if(n.push(g),!R)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Na(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&vi(s,i.functionNames),p={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(n.push(p),!l)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Na(i,a)}}return{hasRelativeDate:r.length>0,nodes:n,allowed:!0}}function Yu(e){if(!e.allowed&&e.rejection){let t=e.rejection.reasonCodes.filter(r=>r!==qe);throw new Error(`${e.rejection.functionName}: ${qe}${t.length>0?` (reason=${t.join(", ")})`:""} (path=${e.rejection.path})`)}}function La(e,t,r={}){let n=rt(e.where,t),i=(h,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:h,capability:n.capability,reasons:n.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=ln(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=dR(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!fR(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(n.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(n.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=RR(e.where,t),l=kr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=r.serialize??G,c=r.containsFunctions??vi,d=[];for(let h of a.leaves){let A=xi(h);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let P;try{P=p(h)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!c(P,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);d.push(h)}let u=ER(l.condition),f=new Set(d),E=ki(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=p(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let y=d.map(h=>xi(h));if(!c(R,[...new Set(y)])||!mR(R,y))return i(["PREFILTER_FUNCTION_MISSING"]);let m=r.rewriteResidual?r.rewriteResidual(e.where,f):Mi(e.where,f);if(m!==null&&ln(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let h of y)g.add(h);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:d,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:n.capability,reasons:n.reasons}}}function dR(e,t){let r=[],n=null,i=o=>{if(n===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}ln(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":ln(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(xi(o)===null)return;if(Pa(o.op,o.left,o.right,t).capability!=="EXACT_PUSHDOWN"){n="RELATIVE_DATE_LEAF_NOT_EXACT";return}r.push(o);return}case"EXISTS":ln(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),n===null?{ok:!0,leaves:r}:{ok:!1,reasonCodes:[n]}}function xi(e){return e.right.type==="KINTONE_FUNC"&&he(e.right.name)?e.right.name:null}function ln(e){let t=[],r=n=>{if(n.type==="BINARY"&&xi(n)!==null){t.push(n);return}switch(n.type){case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"EXISTS":n.query.where!==null&&r(n.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return r(e),t}function fR(e,t){if(e.length!==t.length)return!1;let r=new Set(t);for(let n of e)if(!r.delete(n))return!1;return r.size===0}function ER(e){let t=new Set,r=n=>{switch(n.type){case"BINARY":t.add(n);return;case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&r(e),t}function ki(e,t,r){switch(e.type){case"BINARY":return t.has(e)||r.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=ki(e.left,t,r),i=ki(e.right,t,r);return n!==null&&i!==null?{...e,left:n,right:i}:n??i}case"GROUP":{let n=ki(e.expr,t,r);return n===null?null:{...e,expr:n}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var sn={type:"BOOLEAN",value:!0};function Mi(e,t){if(e.type==="BINARY"&&t.has(e))return sn;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let r=Mi(e.left,t)??sn,n=Mi(e.right,t)??sn;return Ui(r)?Ui(n)?null:n:Ui(n)?r:r===e.left&&n===e.right?e:{...e,left:r,right:n}}case"GROUP":{let r=Mi(e.expr,t)??sn;return Ui(r)?sn:r===e.expr?e:{...e,expr:r}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ui(e){return e.type==="BOOLEAN"&&e.value}function RR(e,t){let r=new Map,n=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(n);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){r.set(s.field,a);return}Object.values(s).forEach(n)}};n(e);let i=new Map,o=new Map;for(let[a,s]of r){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function mR(e,t){let r=new Map;for(let n of t){if(!Pr.has(n))return!1;r.set(n,(r.get(n)??0)+1)}for(let[n,i]of r)if((e.match(new RegExp(`\\b${n}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var M=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function ju(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 Fi(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 yR(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 gR(e){let t=[],r=[],n="",i=!1,o=!1,a=0,s=()=>{r.push(n),n="",o=!1},l=()=>{s(),t.push(r),r=[]};for(;a<e.length;){let p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){n+='"',a+=2;continue}i=!1,o=!0,a++;continue}n+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
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 ue("\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 mo(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Xp(t)}function Cs(e){let t=e.codePointAt(0);return mo(e)||t>=48&&t<=57}function Ht(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Xp(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Jp=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Qp(e,t){if(t===void 0)return 0;let r=0;for(let n of t)if(r=r*10+(n.charCodeAt(0)-48),!Number.isSafeInteger(r))return null;return e==="-"?-r:r}function we(e){let t=Jp.exec(e.trim());if(t===null)return null;let r=Qp(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 Zp(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 Ls(e){let t=we(e);return t===null?null:Zp(t)}function ed(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 xn(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let r=ed(e,t);return e.sign===-1?r===0?0:r===-1?1:-1:r}function Fn(e,t){let r=we(e),n=we(t);if(r===null||n===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return xn(r,n)}var lt="__NO_FROM__";function ce(e){return{type:"NUMBER",value:Number(e),raw:e}}function W(e){let t=e.raw??String(e.value);return Ls(t)??t}function _s(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 td(e){return`${e.tableAlias??""}\0${e.field}`}function Q(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=td(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 Ds(e){return Q(e).type!=="NONE"}function vs(e,t){let r=Q(e);if(r.type!=="GROUPING_SETS")return null;let n=new Map,i=s=>{let l=t(s),p=n.get(l.canonicalId);if(p)return p;let u={...l,field:s};return n.set(u.canonicalId,u),u},o=r.allItems.map(i).filter((s,l,p)=>p.findIndex(u=>u.canonicalId===s.canonicalId)===l),a=r.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:r.source,allItems:o,sets:a}}function Kn(e){return`'${e.replace(/'/g,"''")}'`}function jt(e,t=!1){if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return W(e);if(e.type==="STRING_FUNC")return go(e);let r=`${jt(e.left)}${e.op}${jt(e.right)}`;return t?r:`(${r})`}function Us(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return go(e.expr);if(e.type==="ARITH_FIELD")return jt(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return yo(e.expr)}function Ms(e){switch(e.type){case"STRING":return Kn(e.value);case"NUMBER":return W(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=>Kn(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Ms).join(",")})`;case"ARITH_VALUE":return jt(e.expr);case"CASE_VALUE":return yo(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function wr(e){switch(e.type){case"BINARY":return`${Us(e.left)} ${e.op.replace("_"," ")} ${Ms(e.right)}`;case"NULL_CHECK":return`${Us(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${wr(e.left)} ${e.op} ${wr(e.right)})`;case"NOT":return`NOT (${wr(e.expr)})`;case"GROUP":return`(${wr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function ks(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Kn(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?jt(e):It(e)}function yo(e){let t=e.branches.map(n=>`WHEN ${wr(n.condition)} THEN ${ks(n.result)}`).join(" "),r=e.elseResult===null?"":` ELSE ${ks(e.elseResult)}`;return`CASE ${t}${r} END`}function rd(e){return e.type==="AGG_REF"?me(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?br(e):It(e)}function go(e){return`${e.func}(${e.args.map(rd).join(",")})`}function It(e){switch(e.type){case"STRING":return Kn(e.value);case"NUMBER":return W(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return go(e);case"CASE_WHEN":return yo(e);case"SCALAR_ARITH":return`(${It(e.left)}${e.op}${It(e.right)})`;case"CONCAT_OP":return`(${It(e.left)}||${It(e.right)})`}}function nd(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?jt(e,!0):It(e)}function me(e,t,r){let n=nd(r);return t?`${e}(DISTINCT ${n})`:`${e}(${n})`}function br(e){return e.type==="NUMBER"?W(e):e.type==="AGG_REF"?me(e.func,e.distinct,e.arg):`${br(e.left)}${e.op}${br(e.right)}`}var Pr=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),qe="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN";function Ae(e){return Pr.has(e)}var xs=20,ho=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),Ks=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"}),Jg=Object.freeze(Object.values(Ao).filter(e=>e!==void 0)),id=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),od=new Set(id);function ad(e){return od.has(e)}var Bs=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Bn=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER"});function Fs(e){return Bn[e]!==void 0}var sd=Object.freeze([...Pr]),ld=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),ud=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function cd(e){return ld.has(e)}function pd(e){return ud.has(e)}function dd(e){return Number.isInteger(e)&&e>=1&&e<=31}var Qg=Object.freeze(Array.from(new Set([...Object.keys(ho),...Ks,...Object.keys(Ao),...Object.keys(Bs),...Object.keys(Bn),...sd,"IF"]))),fd=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 Ed(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!fd.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"}},qt=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 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>xs)throw new S(`batch exceeds ${xs} 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 a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new S("scalar subquery in SET must return exactly 1 column.",n);return{type:"SCALAR_SUBQUERY",query:a}}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}=ze(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}=ze(r,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new S(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new S(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let w;if(this.isSoftKeyword("ROW")){this.advance();for(let _ of["ID","SOURCE"]){if(!this.isSoftKeyword(_))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}w=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:L,...w?{rowIdSourceHeader:w}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let p=this.parseIdentifier(),u,d=!0,c;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());u=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),d=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(d)throw new S("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),c=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==lt||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(b=>b.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let 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(),!d)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,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;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("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let h=o.filter(b=>b.kind==="SUBTABLE");if(h.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(h.some(b=>b.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)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(!g)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(g);for(let L of h){if(!L.rowIdSourceHeader)throw new S(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(L.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of b)if(!h.some(w=>w.subtableCode===L))throw new S(`REPLACE SUBTABLES target ${L} is not declared in INTO.`,this.prev())}}else if(g)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(!y)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(y)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let T=this.parseCheckGroups(),O=this.parseDmlControlSuffix();return{type:"IMPORT",appId:n,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:p}:{kind:"CSV",sourceName:p,encoding:u,hasHeader:d,mappingMode:E,ignoreUnknownColumns:R,...c?{columns:c}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...T,...O}}validateImportProjectionScope(t,r){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,r));return}if(t===null||typeof t!="object")return;let n=t;if(n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL")throw new 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}=ze(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 d=this.parseIdentifier();if(this.consume("(")){let c=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:d,children:c})}else o.push({kind:"FIELD",field:d})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),p;if(this.consume("INTO")){let d=this.peek();if(d.kind!=="IDENT"||!d.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",d);p=this.parseTableName()}let u={type:"VALIDATE",appId:n,targets:o,...a?{summary:a}:{},where:s,...l,...p?{errorTable:p}:{}};return this.assertValidateExpressions(u,t),u}assertValidateExpressions(t,r){let n=i=>{if(Array.isArray(i)){i.forEach(n);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new 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 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 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],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,n.length>0&&Ed(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:lt},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],p,u=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new 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")&&(u=this.parseWhereExpr("HAVING"))}let d="CANONICAL",c=[];if(this.consume("ORDER"))this.expect("BY"),c=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new 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());d="KINTONE_NATIVE",this.expect("BY"),c=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=n.some(y=>y.type==="WINDOW_COL"),m=n.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||p!==void 0||m))throw new 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&&d==="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:a,where:s,groupBy:l,...p?{grouping:p}:{},having:u,orderMode:d,orderBy:c,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let n=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:n,query:i}),this.cteNames.add(n)}while(this.consume(","));let r=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new 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(),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 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),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 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},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 Bs[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"?ce(`-${W(r)}`):{type:"AGG_ARITH",left:ce("0"),op:"-",right:r}}if(this.peek().kind==="NUMBER"){let r=this.advance();return ce(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 ce(`${r.kind==="-"?"-":"+"}${W(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:ce("0"),op:"-",right:n}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};if(r.kind==="NUMBER")return this.advance(),ce(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 ce(`+${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"?ce(`-${W(r)}`):{type:"ARITH",left:ce("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ce(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=ho[this.peek().kind];if(r==="LEFT"||r==="RIGHT")return r}let t=ho[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(Ks.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=Rd(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 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 S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);let i;if(this.consume("*")){if(!ad(t))throw new S(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new S("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct: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}=ze(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 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,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 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.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 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:me(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==="("&&Ae(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 S("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new S("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${n}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new S("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!cd(l))throw new S("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let p=String(a===0?0:a);return{type:"KINTONE_FUNC",name:r,args:{kind:"FROM_TODAY",offset:a,offsetText:p,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let n=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${r} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!pd(o))throw new S(`${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(!dd(o))throw new S(`${r} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);n=o}else throw new S(`${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 S(`\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(Fs(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(ce(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(ce(`${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 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 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=_s(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}=ze(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new 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 d=this.parseCheckGroups(),c=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:r,fields:i,select:u,...d,...c}}this.expect("VALUES");let o=[];do{this.expect("(");let u=this.parseInsertRow(i.length);this.expect(")"),o.push(u)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(n&&s.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(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=a.length>0?{applyBlocks:a}:{};return n?{type:"INSERT",appId:r,subtableCode:n,fields:i,values:o,...p,...s,...l}:{type:"INSERT",appId:r,fields:i,values:o,...p,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:r,subtableCode:n}=ze(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 d=this.parseSelect(),c=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:d,keyFields:c,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new 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(),u=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:a,...s,...p,...u}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new 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(ce(`${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(ce(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}=ze(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(n&&i.some(c=>c.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 c=this.parseTableRef();if(c.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(c.cteName!==null&&!c.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(!c.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(c.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:c.appId,cteName:c.cteName,alias:c.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new S("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(n)throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let c=this.decomposeUpdateFromWhere(s,r,o.alias,a);o.targetJoinField=c.targetJoinField,o.joinKeyField=c.joinKeyField,o.targetFilter=c.targetFilter}else{if(i.some(c=>c.value.type==="SOURCE_FIELD"))throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(c=>c.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(c.value)))throw new S("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let p=this.parseCheckGroups(),u=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&&(u.validateOnly||u.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 d=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:r,assignments:i,where:s,from:o,...d,...p,...u}:n?{type:"UPDATE",appId:r,subtableCode:n,assignments:i,where:s,...d,...p,...u}:{type:"UPDATE",appId:r,assignments:i,where:s,...d,...p,...u}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new 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(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new S("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let 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),a=[];if(o.forEach((u,d)=>{let c=this.matchUpdateFromJoin(u,r,n);c!==null&&a.push({index:d,...c})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let u=0;u<o.length;u++){if(u!==s.index&&this.nodeContainsQualifiedField(o[u],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(u!==s.index&&this.nodeContainsForeignQualifier(o[u],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((u,d)=>d!==s.index).reduce((u,d)=>u===null?d:{type:"LOGICAL",op:"AND",left:u,right:d},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:p}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,r,n){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,r)&&this.isSourceRef(i,n)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,n)&&this.isTargetRef(i,r)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let r=t.indexOf(".");return r<0?{alias:null,field:t}:{alias:t.slice(0,r),field:t.slice(r+1)}}isTargetRef(t,r){return t.alias===null||t.alias.toLowerCase()===`app${r}`.toLowerCase()}isSourceRef(t,r){return t.alias?.toLowerCase()===r.toLowerCase()}nodeContainsQualifiedField(t,r){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,r));if(t===null||typeof t!="object")return!1;let n=t;if(n.type==="FIELD"&&typeof n.tableAlias=="string"&&n.tableAlias.toLowerCase()===r.toLowerCase())return!0;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let i=this.splitQualifiedField(n.field);if(this.isSourceRef(i,r))return!0}return Object.values(n).some(i=>this.nodeContainsQualifiedField(i,r))}nodeContainsForeignQualifier(t,r){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,r));if(t===null||typeof t!="object")return!1;let n=t,i=`app${r}`.toLowerCase();if(n.type==="FIELD"&&typeof n.tableAlias=="string")return n.tableAlias.toLowerCase()!==i;if(n.type==="FIELD_REF"&&typeof n.field=="string"){let o=this.splitQualifiedField(n.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(n).some(o=>this.nodeContainsForeignQualifier(o,r))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(n=>this.nodeContainsAnyQualifier(n));if(t===null||typeof t!="object")return!1;let r=t;return r.type==="FIELD"&&typeof r.tableAlias=="string"||r.type==="FIELD_REF"&&typeof r.field=="string"&&this.splitQualifiedField(r.field).alias!==null?!0:Object.values(r).some(n=>this.nodeContainsAnyQualifier(n))}parseAssignments(){let t=[];do{let r=this.parseIdentifier();this.expect("=");let n=this.parseAssignmentValue();t.push({field:r,value:n})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new 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(Fs(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}=ze(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return 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}=ze(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 a=null;if(t){if(this.peek().kind==="WHERE")throw new S("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new S("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId: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 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"||Mn.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 Rd(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 ze(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 $s(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}var md=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function pe(e,t){for(let r of t)e.add(r)}function $n(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"&&md.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=>$n(i,t)):$n(n,t))}function wt(e){let t=new Set;if($s(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":pe(t,Xt(e));break;case"UNION":pe(t,Gs(e));break;case"WITH":for(let r of e.ctes)pe(t,wt(r.query));pe(t,wt(e.query));break;case"CREATE_TEMP_TABLE":pe(t,wt(e.query));break;default:break}return $n(e)&&t.add("STATISTICAL_AGGREGATE"),t}function Gs(e){let t=e.left.type==="SELECT"?Xt(e.left):Gs(e.left);return pe(t,Xt(e.right)),t}function Xt(e){let t=new Set;Q(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"&&pe(t,Xt(r.query)),r.type==="CASE_COL")for(let n of r.expr.branches)pe(t,zt(n.condition));return pe(t,zt(e.where)),pe(t,zt(e.having)),$n(e)&&t.add("STATISTICAL_AGGREGATE"),t}function zt(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")&&pe(t,Xt(e.right.query));break;case"LOGICAL":pe(t,zt(e.left)),pe(t,zt(e.right));break;case"NOT":case"GROUP":pe(t,zt(e.expr));break;case"EXISTS":pe(t,Xt(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}var yd=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})}),Io=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})}),Nr="v1";function $(e){throw new Error(`UnsupportedError: APPLY ${Nr} scope does not support ${e}`)}function gd(e,t){let r=Nr;Nr=e;try{return t()}finally{Nr=r}}function hd(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 Vn(e,t){return gd(e,()=>Ad(t,yd[e]))}function Ad(e,t){let r=hd(e);if(r===null)return;if(r.type==="UPSERT"){Td(r,t);return}let n=r.applyBlocks;if(So(n),!t.multipleBlocks&&n.length!==1&&$("multiple APPLY blocks in this phase"),r.type==="INSERT"){Id(r,n,t);return}let i=r;i.subtableCode&&$("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&$("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&$("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&$("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&$("REJECT LIMIT in this phase"),wd(i.where,t.multipleParents),Ws(n,t)}function Ws(e,t){for(let r of e){for(let n of r.operations)t.operations.has(n.kind)||$(`${n.kind} in this phase`);Hs(r);for(let n of r.operations){if(n.kind==="APPEND"){for(let i of n.fields)Gn(i,"APPEND targets");Qt(n.values,"APPEND values");continue}if(n.kind==="REMOVE"){!t.expectRows&&n.expectRows&&$("EXPECT ROWS in this phase"),n.selector.kind==="WHERE"&&Vs(n.selector.where,t.idxSelectors);continue}if(n.kind==="PATCH"){!t.expectRows&&n.expectRows&&$("EXPECT ROWS in this phase"),n.assignments.length===0&&$("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(".")&&$("parent or qualified PATCH targets in this phase")}Qt(n.assignments,"PATCH assignments"),n.selector.kind==="WHERE"&&Vs(n.selector.where,t.idxSelectors)}}}}function Hs(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 Sd=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ys(e,t){if(Hs(e),e.targetKind==="MULTI_VALUE"){if(!Sd.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 ${Nr} scope allows only one block for table ${r.field}`);t.add(r.field)}}function Td(e,t){t.upsert||$("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&$("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&$("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&$("REJECT LIMIT in this phase");let r=e.onInsertApplyBlocks??[],n=e.onUpdateApplyBlocks??[];So(r),So(n),!t.multipleBlocks&&(r.length>1||n.length>1)&&$("multiple APPLY blocks in this phase"),js(r,"UPSERT ON INSERT"),Ws(n,{...t,idxSelectors:!1,expectRows:!1})}function js(e,t){for(let r of e)for(let n of r.operations){n.kind!=="APPEND"&&$(`${n.kind} for ${t} in this phase`);for(let i of n.fields)Gn(i,"APPEND targets");Qt(n.values,"APPEND values")}}function Id(e,t,r){r.insert||$("INSERT in this phase"),e.subtableCode&&$("a subtable INSERT as the parent statement in this phase"),!r.check&&e.checkGroups?.length&&$("CHECK in this phase"),!r.onErrorSkip&&e.onErrorSkip&&$("ON ERROR SKIP in this phase"),!r.rejectLimit&&e.rejectLimit!=null&&$("REJECT LIMIT in this phase"),js(t,"INSERT")}function Xe(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 qs(e,t){let r=Io[e],n="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!n&&zs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Jt(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 ${Jt(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 ${Jt(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!r.multipleParentPreflight&&!Xe(t.where))throw new Error(`UnsupportedError: APPLY ${Jt(e)} execution does not support multiple-parent APPLY`)}function zs(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 Xs(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Xe(t.where))&&!Io[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Jt(e)} public multiple-parent write is not connected`)}function Zt(e){if(!Io[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Jt(e)} internal prepared write is not available`)}function Jt(e){return`Phase ${e.slice(5)}`}function wd(e,t){Xe(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&$("a parent $id that is not a positive safe integer in this phase"),t||$("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),To(e,t))}function To(e,t){if(Array.isArray(e)){for(let o of e)To(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")&&$("KLIKE in parent WHERE"),(n==="SELECT"||n==="SCALAR_SUBQUERY"||n==="SUBQUERY_IN_LIST"||n==="EXISTS")&&$("subqueries in parent WHERE"),(n==="WINDOW_COL"||n==="AGGREGATE"||n==="AGG_REF"||n==="AGG_ARITH"||n==="ARITH_AGG_COL")&&$("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)&&$("aggregate or window expressions in parent WHERE"),n==="KINTONE_FUNC"&&!(typeof r.name=="string"&&Ae(r.name))&&$("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(r))To(o,t)}function Vs(e,t){Qt(e,"child row selectors",t)}function Qt(e,t,r=!1){if(Array.isArray(e)){for(let s of e)Qt(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")&&$(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&$(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&$(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof n.name=="string"&&Ae(n.name))&&$(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=n.tableAlias,l=n.field;s!=null&&$(`qualified or parent field references in ${t}`),Gn(l,t,r)}if(i==="FIELD_REF"&&Gn(n.field,t,r),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(n))Qt(s,t,r)}function Gn(e,t,r=!1){if(typeof e!="string")return;let n=e.toLowerCase();n==="_idx"&&!r&&$(`_idx in ${t}`),(n.startsWith("_p.")||n.includes("."))&&$(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&$(`aggregate expressions in ${t}`)}function Cr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=bd(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:Cr(e.left),right:Cr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Cr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function bd(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 Js(e){return e.includes("%")||e.includes("_")}function Or(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function er(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function ut(e){if(e===null)return!1;if(Or(e))return!0;switch(e.type){case"LOGICAL":return ut(e.left)||ut(e.right);case"NOT":case"GROUP":return ut(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function ae(e){if(e===null)return!1;if(er(e))return!0;switch(e.type){case"LOGICAL":return ae(e.left)||ae(e.right);case"NOT":case"GROUP":return ae(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function V(e){switch(e.type){case"BINARY":return Pd(e);case"NULL_CHECK":return Cd(e);case"LOGICAL":return Od(e);case"NOT":return Ld(e);case"GROUP":return _d(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 Pd(e){if(Or(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=Zs(e.left),r=Nd(e.op),n=Dd(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 Cd(e){let t=Zs(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Od(e){let t=V(e.left),r=V(e.right),n=e.op==="AND"?"and":"or",i=Qs(e.left)?`(${t})`:t,o=Qs(e.right)?`(${r})`:r;return`${i} ${n} ${o}`}function Ld(e){return V(Cr(e.expr))}function _d(e){return`(${V(e.expr)})`}function Zs(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 $d(e.field)}function Dd(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 el(e);case"NUMBER":return W(e);case"KINTONE_FUNC":return vd(e);case"IN_LIST":return Kd(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 el(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function vd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":return`${e.name}()`}return Ud(e)}function Ud(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Lr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!xd(e.args.offset,e.args.offsetText)||!kd.has(e.args.unit)?Lr():`${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&&!Md.has(e.args.weekday)?Lr():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"||!Fd(e.args.day)?Lr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Lr()}var kd=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Md=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function xd(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Fd(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Lr(){throw new Z("internal error: invalid relative date function AST reached kintone query conversion")}function Kd(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 Bd(e.values),`(${e.values.map(n=>n.type==="STRING"?el(n):W(n)).join(",")})`}function Bd(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 $d(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Qs(e){return e.type==="LOGICAL"}var Z=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Gd(e){return e.some(t=>t.type==="WINDOW_COL")}function be(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Q(e).type!=="NONE"||e.distinct||Gd(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&ol(t.expr)||t.type==="SCALAR_VALUE_COL"&&Dr(t.expr))||ct(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function ct(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return tl(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Or(e);case"NULL_CHECK":return tl(e.field);case"LOGICAL":return ct(e.left)||ct(e.right);case"NOT":case"GROUP":return ct(e.expr);case"EXISTS":return!0}}function tl(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Wn(e){let t=[],n=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(V(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Vd).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:Wd(e.columns),totalCount:!1}}function il(e,t){let r=[];return e.where!==null&&e.joins.length===0&&!ct(e.where)&&r.push(V(e.where)),{app:t,query:r.join(" "),fields:[]}}function bt(e,t,r){let i=qd(e,r).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function Vd(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 Wd(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(bo(n.field)):n.type==="ARITH_COL"?_r(n.expr,r):n.type==="STRFUNC_COL"?Po(n.expr,r):n.type==="SCALAR_VALUE_COL"&&tr(n.expr,r);return[...new Set(r)]}function Hd(e,t){_r(e.left,t),_r(e.right,t)}function _r(e,t){e.type==="FIELD_REF"?t.push(bo(e.field)):e.type==="ARITH"?Hd(e,t):e.type==="STRING_FUNC"&&Po(e,t)}function bo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Po(e,t){for(let r of e.args)Yd(r,t)}function Yd(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){wo(e,t);return}tr(e,t)}function tr(e,t){if(e.type==="FIELD"){t.push(bo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Po(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){tr(e.left,t),tr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let r of e.branches)rl(r.result,t);e.elseResult&&rl(e.elseResult,t)}}function rl(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){_r(e,t);return}tr(e,t)}}function wo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&jd(e.arg,t);return}e.type==="AGG_ARITH"&&(wo(e.left,t),wo(e.right,t))}function jd(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?_r(e,t):tr(e,t)}function ol(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:Dr(t))}function Dr(e){return e.type==="STRING_FUNC"?ol(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Dr(e.left)||Dr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>nl(t.result))||e.elseResult!==null&&nl(e.elseResult):!1}function nl(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Dr(e)}function qd(e,t){let r=[e.from,...e.joins.map(A=>A.table)],n=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),i=new Map;for(let A of n)i.set(A,{table:A,allFields:!1,fields:new Set});if(i.size===0)return i;let o=n[0]??null,a=n.find(A=>!!A.subtableCode)??null,s=new Map;for(let A of n)A.alias&&s.set(A.alias,A),A.subtableCode||(s.set(`APP${A.appId}`,A),s.set(`app${A.appId}`,A));let l=zd(e.columns),p=A=>{let P=i.get(A);P&&(P.allFields=!0,P.fields.clear())},u=()=>{for(let A of n)p(A)},d=()=>{for(let A of n)A.subtableCode&&p(A)},c=(A,P)=>{let N=i.get(A);if(!(!N||N.allFields)){if(A.subtableCode){if(P.startsWith("_p.")){let I=P.slice(3);I&&I!=="*"&&N.fields.add(I);return}return void 0}P&&N.fields.add(P)}},f=(A,P="select",N)=>{if(!A||A==="*")return;if(A==="_p.*"){d();return}if(A.endsWith(".*")){let U=A.slice(0,-2);if(!U){u();return}if(U==="_p"){d();return}let B=s.get(U);if(B){p(B);return}return}if(P==="groupBy"&&N!==void 0){if(N.kind==="PHYSICAL"){let U=r[N.sourceIndex];U?.cteName===null&&c(U,N.fieldCode)}return}if((P==="orderBy"||P==="having"||P==="groupBy")&&l.has(A)||(P==="orderBy"||P==="having"||P==="groupBy")&&Xd(A))return;let I=A.indexOf(".");if(I>0){let U=A.slice(0,I),B=A.slice(I+1);if(U==="_p"){a&&c(a,`_p.${B}`);return}let K=s.get(U);if(K){c(K,B);return}}o&&c(o,A)},E=(A,P,N="select")=>{if(P){if(P==="_p"){a&&c(a,`_p.${A}`);return}let I=s.get(P);if(I){c(I,A);return}}f(A,N)},R=(A,P="select")=>{if(A.type==="FIELD_REF"){f(A.field,P);return}if(A.type==="ARITH"){R(A.left,P),R(A.right,P);return}if(A.type==="STRING_FUNC"){g(A,P);return}},m=(A,P="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&T(A.arg,P);return}A.type==="AGG_ARITH"&&(m(A.left,P),m(A.right,P))},y=(A,P="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){m(A,P);return}h(A,P)},g=(A,P="select")=>{for(let N of A.args)y(N,P)},h=(A,P="select")=>{if(A.type==="FIELD"){E(A.field,A.tableAlias,P);return}if(A.type==="STRING_FUNC"){g(A,P);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){h(A.left,P),h(A.right,P);return}A.type==="CASE_WHEN"&&b(A,P)},T=(A,P="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,P);return}h(A,P)},O=(A,P="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){R(A,P);return}h(A,P)}},b=(A,P="select")=>{for(let N of A.branches)_(N.condition,P),O(N.result,P);A.elseResult&&O(A.elseResult,P)},L=(A,P="select")=>{if(A.type==="FIELD"){E(A.field,A.tableAlias,P);return}if(A.type==="FUNC_FIELD"){g(A.expr,P);return}if(A.type==="ARITH_FIELD"){R(A.expr,P);return}A.type!=="GROUPING_FIELD"&&b(A.expr,P)},w=(A,P="select")=>{if(A.type==="ARITH_VALUE"){R(A.expr,P);return}if(A.type==="CASE_VALUE"){b(A.expr,P);return}},_=(A,P="where")=>{if(A)switch(A.type){case"BINARY":L(A.left,P),w(A.right,P);return;case"NULL_CHECK":L(A.field,P);return;case"LOGICAL":_(A.left,P),_(A.right,P);return;case"NOT":case"GROUP":_(A.expr,P);return;case"EXISTS":case"BOOLEAN":return}},C=(A,P)=>{if(A.type==="FIELD_NAME"){f(A.name,"groupBy",P);return}if(A.type==="ARITH_KEY"){R(A.expr,"groupBy");return}g(A.expr,"groupBy")},v=(A,P="orderBy")=>{if(A.type==="FIELD_NAME"){f(A.name,P);return}if(A.type==="ARITH_KEY"){R(A.expr,P);return}A.type!=="GROUPING_KEY"&&g(A.expr,P)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":d();break;case"FIELD":f(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&T(A.arg,"select");break;case"ARITH_AGG_COL":m(A.expr,"select");break;case"ARITH_COL":R(A.expr,"select");break;case"CASE_COL":b(A.expr,"select");break;case"STRFUNC_COL":g(A.expr,"select");break;case"SCALAR_VALUE_COL":h(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let P of A.partitionBy)E(P.field,P.tableAlias,"select");for(let P of A.orderBy)v(P.key,"select");break}for(let A of e.joins)E(A.on.left.field,A.on.left.tableAlias,"where"),E(A.on.right.field,A.on.right.tableAlias,"where");_(e.where,"where");let k=Q(e);if(k.type==="PLAIN")k.allItems.forEach((A,P)=>C(A,t?.items[P]));else if(k.type==="GROUPING_SETS")for(let A of k.allItems)E(A.field,A.tableAlias,"select");_(e.having,"having");for(let A of e.orderBy)v(A.key);return i}function zd(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(me(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 Xd(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function pt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||be(t.query)!=="SIMPLE"||!t.query.columns.every(n=>n.type==="WILDCARD"||n.type==="FIELD"&&(n.alias===null||n.alias===n.field)))return!1;let r=e.query;return r.type!=="SELECT"||r.from.cteName!==t.name||r.joins.length>0||Ds(r)||r.distinct?!1:!r.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")}function dt(e){let t=e.ctes[0].query,r=e.query,n=Hn(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 Hn(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:al(e.left,t)};case"NULL_CHECK":return{...e,field:al(e.field,t)};case"LOGICAL":return{...e,left:Hn(e.left,t),right:Hn(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Hn(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function al(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function rr(e,t={}){return vr(e,r=>Jd(r,t))}function Ur(e,t={}){return vr(e,r=>sl(r,t)||ll(r,t))}function vr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=vr(e.left,t),n=vr(e.right,t);return r&&n?{...e,left:r,right:n}:r??n??null}case"GROUP":return vr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Jd(e,t){return Qd(e,t)||tf(e,t)?!0:sl(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":ef(e,t)}function Qd(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 Zd=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ef(e,t){if(!ll(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||!Zd.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 tf(e,t){return!rf(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function rf(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 sl(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(W(e.right))&&Number.isSafeInteger(e.right.value)}function ll(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 kr(e,t={}){let r=e!==null&&t.extractCondition!==!1?rr(e,t):null,n=new Set;nr(r,n);let i=new Set;return nr(e,i),{condition:r,appliedKlikes:n,allKlikes:[...i]}}function ir(e,t={}){let n={allowKlike:e.joins.every(u=>u.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=kr(e.where,{...n,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let u of e.joins){if(!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let d=rr(e.where,{...n,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});d!==null&&l.set(u.table.alias,d)}let p=new Set(a.appliedKlikes);for(let u of l.values())nr(u,p);return{mainCondition:s,joinConditions:l,appliedKlikes:p,allKlikes:a.allKlikes}}function Co(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function nr(e,t){if(e!==null){if(er(e)){t.add(e);return}switch(e.type){case"LOGICAL":nr(e.left,t),nr(e.right,t);return;case"NOT":case"GROUP":nr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function sr(e){ul(e)}function Lo(e){if(Co(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function ul(e){switch(e.type){case"SELECT":ar(e);return;case"UNION":Do(e);return;case"WITH":cl(e);return;case"EXPLAIN":ul(e.query);return;case"CREATE_TEMP_TABLE":_o(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":or(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Xe(e.where)&&ae(e.where)){Oo(e.where),or(e);return}if(ft(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&ae(e.where)&&!of(e,e.where)){Oo(e.where),or(e);return}if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(ft(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&ae(e.where)){Oo(e.where),or(e);return}if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(ft(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Oo(e){jn(e,t=>{if(!er(t))return;let r=t.right;if(r.type!=="STRING"&&r.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(r.type==="STRING"&&r.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function _o(e){e.type==="SELECT"?ar(e):e.type==="UNION"?Do(e):cl(e)}function Do(e){_o(e.left),ar(e.right)}function cl(e){if(pt(e)){ar(dt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?ar(t.query):t.query.type==="UNION"&&Do(t.query);_o(e.query)}function ar(e){if(nf(e),ae(e.where)&&!(be(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(r=>r.table.cteName===null))){let r=ir(e,{allowUnresolvedVariables:!0});if(Co(r).length===0){or(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}or(e)}function nf(e){jn(e,t=>{if(!er(t))return;if(!Yn(e.where,t))throw new oe("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 oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(r.type==="STRING"&&r.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function or(e){qn(e,t=>{t.type==="SELECT"&&ar(t)},!0)}function ft(e){let t=!1;return qn(e,r=>{r.type==="BINARY"&&(r.op==="KLIKE"||r.op==="NOT_KLIKE")&&(t=!0)}),t}function of(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 Yn(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Yn(e.left,t)||Yn(e.right,t);case"NOT":case"GROUP":return Yn(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function jn(e,t){if(Array.isArray(e)){for(let n of e)jn(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&&af(n)||jn(n,t)}function qn(e,t,r=!1){if(Array.isArray(e)){for(let i of e)qn(i,t);return}if(e===null||typeof e!="object")return;let n=e;r||t(n);for(let i of Object.values(n))qn(i,t)}function af(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var pl=Symbol("ksql.groupingRowMeta"),dl=new WeakMap;function fl(e,t){return Object.defineProperty(e,pl,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function sf(e){return e[pl]}function lf(e){return sf(e)?.includedCanonicalIds}function El(e,t){dl.set(e,t)}function lr(e,t){let r=lf(t);if(!r)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let n=dl.get(e);if(!n)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return r.has(n)?"0":"1"}var ml=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 Jn(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Uo(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Pe(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Pe(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="GROUPING_REF"){t.push(r);return}Object.values(r).forEach(n=>Pe(n,t))}}function Qn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(n=>Qn(n,t));return}let r=e;if(!(r.type==="SELECT"||r.type==="SCALAR_SUBQUERY")){if(r.type==="AGGREGATE"||r.type==="AGG_REF"){Pe(r.arg,t);return}Object.values(r).forEach(n=>Qn(n,t))}}function Mr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Mr(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(Uo(r.field));return}Object.values(r).forEach(i=>Mr(i,t))}}function xr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(xr);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(xr)}function uf(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"?xr(e):!1}function cf(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function Rl(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 pf(e,t,r){let n=t(e.field);if(!n.physical)throw new Error(`ArgumentError: B65 grouping reference ${Jn(e.field)} must resolve to a physical APP field.`);if(!r.has(n.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Jn(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);El(e,n.canonicalId)}function vo(e,t,r,n){let i=t(e);if(!i.physical||!r.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Jn(e)} in ${n} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function df(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Uo(e.name)];let t=[];return Mr(e,t),t}function yl(e){let t=Q(e),r=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Pe(i,r);Pe(e.having,r),Pe(e.orderBy,r);let n=[];Pe(e.where,n),Pe(e.joins,n),Qn(e.columns,n),Qn(e.having,n);for(let i of e.columns)i.type==="WINDOW_COL"&&Pe(i,n);if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function gl(e,t,r=()=>{}){yl(e);let n=Q(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&Pe(u,i);if(Pe(e.having,i),Pe(e.orderBy,i),n.type!=="GROUPING_SETS")return null;let o=vs(e,t),a=new Set,s=[];for(let u of o.allItems){let d=u;if(!d.physical)throw new Error(`ArgumentError: B65 grouping item ${Jn(u.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}r({expandedSetCount:n.sets.length,canonicalItemCount:a.size});for(let u of i)pf(u,t,a);let l=cf(e.columns);for(let u of e.columns){if(u.type==="GROUPING_COL"||u.type==="AGGREGATE"||u.type==="ARITH_AGG_COL"||u.type==="LITERAL_COL"||u.type==="VARIABLE_COL"||u.type==="SCALAR_SUBQUERY_COL")continue;let d=[];u.type==="FIELD"?d.push(Uo(u.field)):Mr(u,d);for(let c of d)vo(c,t,a,"SELECT")}if(e.having){let u=[];Mr(e.having,u);for(let d of u)d.tableAlias===null&&l.has(d.field)||Rl(d)||vo(d,t,a,"HAVING")}for(let u of e.orderBy)for(let d of df(u.key))d.tableAlias===null&&l.has(d.field)||Rl(d)||vo(d,t,a,"ORDER BY");let p=new Set;for(let u of s)p.add(u.directKey),u.unqualifiedBridgeKey!==null&&p.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!uf(u))continue;let d="alias"in u?u.alias:null;if(d!==null&&p.has(d))throw new Error(`ArgumentError: B65 aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var ff=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ef=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":Ef.has(e.fieldType)?t="option":ff.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 ur(e,t,r){return{...e,source:{appId:t,fieldCode:r}}}function Zn(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 Et(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 Rf(e,t){return e<t?-1:e>t?1:0}function hl(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let r=Number(e);return r===Number.NEGATIVE_INFINITY?{band:1}:r===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function mf(e,t){let r=hl(e),n=hl(t);return r.band!==n.band?r.band<n.band?-1:1:r.band===2&&n.band===2?xn(r.value,n.value):r.band===5&&n.band===5?Et(r.value,n.value):0}function Al(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 yf(e,t,r){let n=Al(e,r),i=Al(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=Et(n.normalizedId,i.normalizedId);return o!==0?o:Et(n.display,i.display)}function gf(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 Sl(e,t){let r=t.optionOrder??new Map,i=[...new Set(gf(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(Tl),i}function Tl(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Et(e.label,t.label)}function hf(e,t,r){let n=Sl(e,r),i=Sl(t,r),o=Math.min(n.length,i.length);for(let a=0;a<o;a++){let s=Tl(n[a],i[a]);if(s!==0)return s}return n.length<i.length?-1:n.length>i.length?1:0}function Pt(e,t,r){switch(r.compareMode){case"string":return Et(e,t);case"number":return mf(e,t);case"recordNumber":return yf(e,t,r.fieldType==="RECORD_NUMBER");case"option":return hf(e,t,r);case"unsupported":throw new Error(`ArgumentError: values of type ${r.fieldType} cannot be compared.`)}}function Nt(e,t,r,n=x("string")){let i=Pt(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 Il(e,t){if(t==="least"&&e.includes(""))return"";let r=t==="greatest"?e.filter(o=>o!==""):[...e];if(r.length===0)return"";let n=r.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(n){let s=we(o),l=we(a),p=s!==null&&l!==null?xn(s,l):Rf(Number(o),Number(a));if(p!==0)return p}return Et(o,a)};return r.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function re(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Je(t,e.field));if(e.type==="STRING_FUNC")return Number(ne(e,t));let r=re(e.left,t),n=re(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 Je(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 ne(e,t,r,n);case"CASE_WHEN":return Ne(e,t,r,n);case"CONCAT_OP":return ne({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 Rt(e,t,r,n){switch(e.type){case"CASE_WHEN":return Nl(e,t,r,n);case"SCALAR_ARITH":{let i=Rt(e.left,t,r,n),o=Rt(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=Rt(e.left,t,r,n),o=Rt(e.right,t,r,n);return`${i??""}${o??""}`}default:return se(e,t,r,n)}}function ei(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 Af(e){return e>=55296&&e<=56319}function Sf(e){return e>=56320&&e<=57343}function ri(e,t){return t>0&&t<e.length&&Af(e.charCodeAt(t-1))&&Sf(e.charCodeAt(t))}function wl(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 Mo(e,t){let r=Math.min(Math.max(0,t),e.length);return ri(e,r)&&(r-=1),e.slice(0,r)}function Tf(e,t){let r=Math.max(0,e.length-t);return ri(e,r)&&(r+=1),e.slice(r)}function If(e,t,r){let n=wl(t,e.length),i=wl(r,e.length);return i<=n?"":(ri(e,n)&&(n+=1),ri(e,i)&&(i-=1),e.slice(n,Math.max(n,i)))}function wf(e,t){let r=e.repeat(Math.ceil(t/e.length));return Mo(r,t)}var bf=200,Fr=new Map;function Pf(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 ko(e,t,r=!1){let n=Pf(t)+(r?"g":""),i=`${e}\0${n}`,o=Fr.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(Fr.size>=bf){let s=Fr.keys().next().value;s!==void 0&&Fr.delete(s)}return Fr.set(i,a),a}function Nf(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Cf(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 u=Number(s+l);if(u>=1&&u<=r.length){i+=r[u-1]??"",o+=2;continue}}let p=Number(s);if(p>=1&&p<=r.length){i+=r[p-1]??"",o+=1;continue}}i+="$"}return i}function Lf(e,t,r,n){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==n)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,p=a.length-(l?3:2),u=a.slice(0,p);return Of(r,o,u,l?s:void 0)})}function ne(e,t,r,n){let i=e.args.map(o=>Ff(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 de("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 If(o,a,s!==void 0?a+s:o.length)}case"LEFT":{de("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Mo(o,a)}case"RIGHT":{de("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Tf(o,a)}case"INSTR":return de("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{de(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 Mo(o,a);let s=i[2]??" ";if(s==="")return o;let l=wf(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return de(e.func,i,2),Il(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 de("REGEXP_LIKE",i,2,3),ko(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{de("REGEXP_REPLACE",i,3,5),Nf(i[2]);let o=Cf(i[4]),a=ko(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Lf(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return de("REGEXP_SUBSTR",i,2,3),ko(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{de("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,p)=>{s.has(l)||s.set(l,a[p])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return ei("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return ei("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return ei("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return de("TRUNCATE",i,1,2),ei("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 Mf(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 de(e.func,i,1,1),ti(i[0])?String(xo(i[0])+1):"";case"QUARTER":return de(e.func,i,1,1),ti(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return de(e.func,i,1,1),ti(i[0])?String(Pl(i[0])):"";case"DATE_FORMAT":return Df(i[0]??"",i[1]??"");case"DATEDIFF":return vf(i[0]??"",i[1]??"");case"DATE_ADD":return Uf(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return de("LAST_DAY",i,1,1),kf(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 de(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 ni(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 ti(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let r=ni(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 xo(e){return ni(e).getUTCDay()}function bl(e){let t=ni(e),r=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-r),t}function _f(e){return bl(e).getUTCFullYear()}function Pl(e){let t=bl(e),r=t.getUTCFullYear(),n=ni(`${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 Df(e,t){if(!e||e.length<10)return"";let{y:r,mo:n,d:i,h:o,mi:a,sec:s}=Kr(e),l=ti(e);return t.replace(/%[YymcdeHiswavG]/g,p=>{switch(p){case"%Y":return r;case"%y":return r.slice(2);case"%m":return n;case"%c":return String(parseInt(n,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(xo(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][xo(e)]:"";case"%v":return l?String(Pl(e)).padStart(2,"0"):"";case"%G":return l?String(_f(e)).padStart(4,"0"):"";default:return p}})}function vf(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 Uf(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"),p=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${p}`}function kf(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 Mf(e,t){if(/^-?\d+$/.test(t.trim()))return xf(e,Math.max(0,Number(t)));let r=t.endsWith("%"),n=t.includes(","),i=r?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,p=s+l,u=i.toFixed(p),[d,c=""]=u.split(".");l>0&&(c=c.replace(/0+$/,""));let f=n?d.replace(/\B(?=(\d{3})+(?!\d))/g,","):d,E=c?`${f}.${c}`:f;return r?E+"%":E}function xf(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 Ff(e,t,r,n){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?W(e):String(se(e,t,r,n))}function Je(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 Kf(e,t,r,n,i);case"NULL_CHECK":return Hf(e,t);case"LOGICAL":return Yf(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 Kf(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=kl(e.left,t,r,i),a=e.left.type==="FIELD"?r?.(e.left):void 0,s=$f(e.left,a,i);return Bf(e.op,o,e.right,t,a,r,s,i)}function Bf(e,t,r,n,i,o,a=x("string"),s){if(e==="IN"||e==="NOT_IN"){let p=null;if(r.type==="IN_LIST"&&(Wf(r.values),p=new Set(r.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?W(d):String(d.value):d.value))),r.type==="SUBQUERY_IN_LIST"&&(p=r.resolved),p===null)return e==="NOT_IN";let u=Vf(t,p,i);return e==="IN"?u:!u}if(e==="LIKE"){let p=Fo(r,n,o);return Ul(t,p)}if(e==="NOT_LIKE"){let p=Fo(r,n,o);return!Ul(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=Fo(r,n,o,s);return Nt(e,t,l,a)}var Cl=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function $f(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(Cl.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(Cl.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 Ol=new Set(["CHECK_BOX","MULTI_SELECT"]),Ll=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Gf=new Set(["CREATOR","MODIFIER"]);function Vf(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=>Nt("=",e,a,o))}let i;if(Ol.has(r)||Ll.has(r)||Gf.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)):Ll.has(r)?!Array.isArray(i)||!i.every(_l)?n():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):_l(i)?t.has(i.code):n()}function _l(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Wf(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`)}function Hf(e,t){let r=kl(e.field,t);return e.not?r!=="":r===""}function Yf(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 kl(e,t,r,n){if(e.type==="FUNC_FIELD")return ne(e.expr,t);if(e.type==="ARITH_FIELD")return String(re(e.expr,t));if(e.type==="CASE_FIELD")return Ne(e.expr,t,r,n);if(e.type==="GROUPING_FIELD")return lr(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Je(t,i)}function Fo(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 W(e);case"KINTONE_FUNC":return jf(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"?Je(t,e.expr.field):e.expr.type==="STRING_FUNC"?ne(e.expr,t):String(re(e.expr,t));case"CASE_VALUE":return Ne(e.expr,t,r,n);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Ne(e,t,r,n){for(let i of e.branches)if(q(i.condition,t,r,void 0,n))return vl(i.result,t,r,n);return e.elseResult!==null?vl(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 Dl(i.result,t,r,n);return e.elseResult===null?null:Dl(e.elseResult,t,r,n)}function Dl(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"?re(e,t):Rt(e,t,r,n)}function vl(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(re(e,t)):String(se(e,t,r,n))}function Ml(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 jf(e){if(Ae(e))throw new Error(`${e}: ${qe}`);switch(e){case"TODAY":case"NOW":case"LOGINUSER":return Ml(e);default:throw new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}}var ii=new Map,qf=200;function Ul(e,t){if(!Js(t))return e.includes(t);let r=ii.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"),ii.size>=qf&&ii.clear(),ii.set(t,r)}return r.test(e)}function cr(e){return Fl(e)}function xl(e){return Fl(e.flatMap(t=>t.rules.map(r=>r.condition)))}function Fl(e){let t=[],r=new Set,n=o=>{if(Array.isArray(o)){o.forEach(n);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw le("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))n(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw le("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;r.has(s)||(r.add(s),t.push({tableAlias:o,field:a}))};return n(e),t}function le(e){return new S(e,{kind:"EOF",value:"CHECK",pos:0})}function oi(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=se(a.message,t);n.push({groupIndex:o,message:s==null?"":String(s)});break}}),n}function Bo(e){if(ut(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 zf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Xf=new Set(["CHECK_BOX","MULTI_SELECT"]);function si(e,t=new Map){let r=e.values.map(n=>Jf(e.fields,n,t));return Vr(r,100).map(n=>({app:e.appId,records:n}))}function Jf(e,t,r){let n={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?n[i]={value:mt(a.expr,{},r.get(i))}:n[i]={value:Qe(a,r.get(i))}}),n}function $r(e){Bo(e.where);let t=Jl(e);return{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Gr(e,t,r=new Map){let n=Qf(e.assignments,r);return Vr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:n}))}))}function Qf(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:Qe(i,t.get(n))});return r}function Gl(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 li(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 $o(e){Bo(e.where);let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"?Vl(r,t):r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP"?pr(r,t):r.type==="STRING_FUNC"?Go(r,t):r.type==="CASE_VALUE"&&Wl(r.expr,t);return Jl(e).forEach(r=>t.add(r)),{app:e.appId,query:V(e.where),fields:["$id",...t],totalCount:!1}}function Vl(e,t){Br(e.left,t),Br(e.right,t)}function Br(e,t){e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Vl(e,t):e.type==="STRING_FUNC"&&Go(e,t)}function Go(e,t){for(let r of e.args)Zf(r,t)}function Zf(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ko(e,t);return}pr(e,t)}function pr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Go(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){pr(e.left,t),pr(e.right,t);return}e.type==="CASE_WHEN"&&Wl(e,t)}function Ko(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&eE(e.arg,t);return}e.type==="AGG_ARITH"&&(Ko(e.left,t),Ko(e.right,t))}function eE(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Br(e,t):pr(e,t)}function Kl(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){Br(e,t);return}pr(e,t)}}function Wl(e,t){for(let r of e.branches)ai(r.condition,t),Kl(r.result,t);e.elseResult!==null&&Kl(e.elseResult,t)}function ai(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Br(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ai(e.left,t),ai(e.right,t);break;case"NOT":case"GROUP":ai(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Vo(e,t,r=new Map){let n=t.map(i=>{let o=Number(i.$id.value),a=Hl(i),s={};for(let{field:l,value:p}of e.assignments)s[l]={value:Wo(p,a,r.get(l),i)};return{id:o,record:s}});return Vr(n,100).map(i=>({app:e.appId,records:i}))}function Wo(e,t,r,n){if(e.type==="ARITH")return String(n?Yo(e,n):re(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(se(e,t));if(e.type==="STRING_FUNC")return ne(e,t);if(e.type==="CASE_VALUE")return mt(e.expr,t,r);if(e.type==="SOURCE_FIELD")throw new j("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Qe(e,r)}function ui(e,t,r){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return W(e);if(e.type==="ARITH")return String(re(e,t));if(e.type==="CASE_VALUE")return Ne(e.expr,t,r);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var tE=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Ho(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=Hl(i),l={};for(let{field:p,value:u}of e.assignments){let d=r.get(p);if(u.type==="SOURCE_FIELD"){if(tE.has(d??""))throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${d} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,u.field))throw new j(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let c=o[u.field];if(typeof c!="string")throw new j(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((d==="NUMBER"||d==="CALC")&&c!==""&&!Number.isFinite(Number(c)))throw new j(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${c}`);l[p]={value:Qe({type:"STRING",value:c},d)}}else{if(u.type==="STRING_FUNC")throw new j("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?l[p]={value:String(Yo(u,i))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?l[p]={value:String(se(u,s))}:u.type==="CASE_VALUE"?l[p]={value:mt(u.expr,s,d)}:l[p]={value:Qe(u,d)}}}return{id:a,record:l}});return Vr(n,100).map(i=>({app:e.appId,records:i}))}function Hl(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,typeof r.value=="string"?r.value:JSON.stringify(r.value??"")]))}function Yo(e,t){let r=Bl(e.left,t),n=Bl(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 Bl(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return Yo(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 Yl(e){return Bo(e.where),{app:e.appId,query:V(e.where),fields:["$id"],totalCount:!1}}function jl(e,t){return Vr(t,100).map(r=>({app:e,ids:r}))}function ql(e){return zf.has(e??"")}function rE(e){return Xf.has(e??"")}function nE(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 iE(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function zl(e,t){return ql(t)?e===""?[]:e.split(",").map(r=>({code:r.trim()})):rE(t)?e===""?[]:e.split(",").map(r=>r.trim()):t==="DATETIME"?nE(e):t==="DATE"?iE(e):e}function Xl(e,t){return ql(t)?e.map(r=>({code:r})):e}function $l(e,t,r){return e.type==="ARRAY"?Xl(e.elements.map(n=>n.value),r):e.type==="STRING"?zl(e.value,r):e.type==="STRING_FUNC"?ne(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(re(e,t)):String(se(e,t))}function Jl(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(cr(e.checkGroups).filter(r=>r.tableAlias===null||r.tableAlias.toLowerCase()===t).map(r=>r.field).filter(r=>r!=="$id"))]}function mt(e,t,r){for(let n of e.branches)if(q(n.condition,t))return $l(n.result,t,r);return e.elseResult!==null?$l(e.elseResult,t,r):""}function Qe(e,t){let r=jo(e,t);if(!r.ok)throw new j(r.message);return r.value}function jo(e,t){try{return{ok:!0,value:oE(e,t)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:String(r)}}}function oE(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 zl(e.value,t);case"NUMBER":return W(e);case"ARRAY":return Xl(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 Vr(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 qo=new Set(["CHECK_BOX","MULTI_SELECT"]),aE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Wr(e){throw new Error(`ArgumentError: ${e}`)}function Ql(e,t,r){let n=sE(r.fieldType,e.field),i=lE(t,n,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&Wr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let p=i.filter(y=>!l.has(y)),u=a.filter(y=>!o.has(y)),d=[...p,...u],c=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,h=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&h&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=qo.has(n)?d:d.map(y=>({code:y}));return{field:e.field,fieldType:n,operations:R,postImageValue:m,addedValues:u.length,removedValues:c,changedValues:u.length+c}}function sE(e,t){return qo.has(e)||aE.has(e)?e:Wr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function lE(e,t,r){if(!Array.isArray(e))return Wr(`APPLY snapshot for ${r} must be an array.`);let n=e.map((i,o)=>qo.has(t)?typeof i!="string"?Wr(`APPLY snapshot for ${r} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Wr(`APPLY snapshot for ${r} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(n.filter(i=>i!==""))]}function G(e){throw new Error(`ArgumentError: ${e}`)}function Jo(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?G("APPLY parent selector must be a single positive $id."):t.right.value}function Ze(e,t){let r=e.applyBlocks;if(!r?.length)return G("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)zo(s.field,null,n),uE(s.value,n);for(let s of r){(i.has(s.field)||o.has(s.field))&&G(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(d=>d.field===s.field)&&G(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(d=>d.code===s.field&&!d.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?G(`APPLY target ${s.field} is not a SUBTABLE.`):G(`APPLY target ${s.field} does not exist as a top-level field.`);if(Ys(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&G(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let p=l,u=new Map(t.filter(d=>d.inSubtable&&d.subtableCode===s.field).map(d=>[d.code,d]));i.set(s.field,p),a.set(s.field,u);for(let d of s.operations)if(d.kind==="PATCH"){for(let c of d.assignments)zo(c.field,s.field,n,u),Xo(c.value,s.field,n,u);d.selector.kind==="WHERE"&&Xo(d.selector.where,s.field,n,u)}else if(d.kind==="APPEND"){let c=new Set;for(let f of d.fields)c.has(f)&&G(`APPLY APPEND specifies child ${f} more than once.`),c.add(f),zo(f,s.field,n,u)}else d.kind==="REMOVE"&&d.selector.kind==="WHERE"&&Xo(d.selector.where,s.field,n,u)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:n}}function uE(e,t){Hr(e,r=>{if(r==="$id"||r==="$revision")return;let n=t.get(r);(!n||n.inSubtable)&&G(`APPLY parent reference ${r} is not a top-level field.`),n.fieldType==="FILE"&&G(`APPLY parent FILE reference ${r} is not supported.`)})}function zo(e,t,r,n){(e.startsWith("_")||e.startsWith("$"))&&G(`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&&G(`APPLY child ${e} does not belong to subtable ${t}.`),G(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&G(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Xo(e,t,r,n){Hr(e,i=>{if(i==="_rid"||i==="_idx"||n.has(i))return;r.get(i)?.inSubtable&&G(`APPLY child reference ${i} does not belong to subtable ${t}.`),G(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ci(e,t){let r=Ze(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)Hr(i.value,o=>{let a=r.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&n.add(o)});return[...n]}function pi(e,t){let r={_rid:e.id??"",_idx:String(t)};for(let[n,i]of Object.entries(e.value??{}))r[n]=iu(i?.value);return r}function eu(e){let{statement:t,snapshot:r,fieldInfos:n}=e,i=e.metadata??Ze(t,n),o=ea(r.$id?.value,"APPLY snapshot $id"),a=Jo(t);return o!==a&&G(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),ru(t,r,i,o)}function tu(e,t,r,n=Ze(e,r)){let i=new Set;return t.map(o=>{let a=ea(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&G(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),ru(e,o,n,a)})}function ru(e,t,r,n){let i=ea(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let C=r.targetMultiValueFields.get(u.field);C||G(`APPLY multi-value metadata for ${u.field} is missing.`),a.push(Ql(u,t[u.field]?.value,C));continue}let d=r.childrenByTable.get(u.field),c=RE(t,u.field),f=new Set;for(let C of c)C.id||G(`APPLY snapshot for ${u.field} contains a row without _rid.`),f.has(C.id)&&G(`APPLY snapshot for ${u.field} contains duplicate _rid ${C.id}.`),f.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":d.get(C.field)?.fieldType,R=[],m=[],y=[],g=new Set,h=new Set,T=new Set,O=u.operations.some(C=>C.kind==="REMOVE");for(let[C,v]of u.operations.entries()){if(v.kind==="APPEND"){let A=Qo(v,d,u.field);y.push({kind:"APPEND",addedRows:A.length}),m.push(...A);continue}if(v.kind==="REMOVE"){let A=dE(v,c,E,u.field);v.expectRows&&Zl(v.expectRows,A.length,n,u.field,C,v.kind),y.push({kind:"REMOVE",removedRows:A.length});for(let P of A){let N=c[P].id;h.has(P)&&G(`APPLY row ${N} is selected by both PATCH and REMOVE.`),T.has(P)&&G(`APPLY removes row ${N} more than once.`),T.add(P)}continue}if(v.kind!=="PATCH")continue;let k=pE(v,c,E,u.field);v.expectRows&&Zl(v.expectRows,k.length,n,u.field,C,v.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let A of k){let P=c[A];T.has(A)&&G(`APPLY row ${P.id} is selected by both PATCH and REMOVE.`),h.add(A);let N=pi(P,A);for(let I of v.assignments){let U=`${P.id}\0${I.field}`;g.has(U)&&G(`APPLY patches cell ${P.id}.${I.field} more than once.`),g.add(U),R.push({rowIndex:A,field:I.field,value:ui(I.value,N,E)})}}}let b=new Map;for(let C of R){let v=b.get(C.rowIndex)??{};v[C.field]={value:C.value},b.set(C.rowIndex,v)}let w=[...c.flatMap((C,v)=>T.has(v)?[]:[{id:C.id,value:{...C.value,...b.get(v)??{}}}]),...m],_={table:u.field,operations:y,changedSubtableRows:b.size+T.size+m.length,deletedRows:T.size,snapshotRowIds:c.map(C=>C.id),postImageRows:w};O?o.push({..._,payloadShape:"FULL_SURVIVORS",removedRowIds:c.flatMap((C,v)=>T.has(v)?[C.id]:[]),payloadRows:w.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):o.push({..._,payloadShape:"PATCH_ONLY",payloadRows:[...c.map((C,v)=>{let k=b.get(v);return k?{id:C.id,value:k}:{id:C.id}}),...m.map(C=>({value:C.value}))]})}let s=mE(t),l={};for(let u of e.assignments){let d=r.fieldsByCode.get(u.field)?.fieldType;l[u.field]={value:Wo(u.value,s,d,t)}}let p={...t};Object.assign(p,l);for(let u of o)p[u.table]={value:u.postImageRows};for(let u of a)p[u.field]={value:u.postImageValue};return{app:e.appId,parentId:n,revision:i,parentRows:1,changedSubtableRows:o.reduce((u,d)=>u+d.changedSubtableRows,0),parentValues:l,postImage:p,tables:o,multiValues:a}}function Zl(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}`;G(`APPLY EXPECT ROWS mismatch for parent $id ${r}, table ${n}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function di(e,t){let r=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return G(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,p)=>{let u=a[p];return u?.value?l.id===void 0?{value:u.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(d=>[d,u.value[d]]))}:G(`APPLY normalized post-image for ${o.table} row ${p+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),n=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:G(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:n,tables:r,multiValues:i,postImage:t}}function Qo(e,t,r){return e.values.map(n=>({value:cE(e,n,t,r)}))}function cE(e,t,r,n){if(t.length!==e.fields.length)return G(`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?Zo(a):s.type==="CASE_VALUE"?mt(s.expr,{},a.fieldType):Qe(s,a.fieldType)}}return o}function Zo(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 pE(e,t,r,n){return nu(e.selector,t,r,n)}function dE(e,t,r,n){return nu(e.selector,t,r,n)}function nu(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,pi(l,p),r)?[p]:[]),a=fE(i);a!==null&&o.length===0&&G(`APPLY _rid ${a} does not exist in snapshot table ${n}.`);let s=EE(i);return s!==null&&o.length===0&&G(`APPLY _idx ${s} does not exist in snapshot table ${n}.`),o}function fE(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 EE(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 RE(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:{}}}):G(`APPLY snapshot field ${t} is not a subtable value.`)}function ea(e,t){let r=Number(e);return(!Number.isSafeInteger(r)||r<=0)&&G(`${t} must be a positive integer.`),r}function mE(e){let t={};for(let[r,n]of Object.entries(e))t[r]=iu(n?.value);return t}function iu(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 Hr(e,t){if(Array.isArray(e)){e.forEach(n=>Hr(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))Hr(n,t)}function X(e){throw new Error(`ArgumentError: ${e}`)}function Ei(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?X("APPLY snapshot $revision must be a positive integer."):t}function Yr(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),yE(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function ou(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 yE(e){let t=ta(e.snapshotRowIds,`${e.table} snapshot`),r=e.payloadRows.flatMap(u=>u.id===void 0?[]:[u.id]);for(let u of e.payloadRows)u.id===void 0&&u.value===void 0&&X(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(ta(r,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(c=>c.kind==="REMOVE")&&X(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let u=e.payloadRows.slice(0,t.length).map(c=>c.id??"");fi(t,u,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(c=>c.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let d=e.postImageRows.slice(0,t.length).map(c=>c.id??"");fi(t,d,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(c=>c.id!==void 0)&&X(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(u=>u.kind==="REMOVE")||X(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let n=ta(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(u=>u.id===void 0?[]:[u.id]),o=new Set(n),a=new Set(i);for(let u of n)a.has(u)&&X(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${u}.`);let s=t.filter(u=>!o.has(u));fi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(u=>u.id??"");fi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(u=>u.id!==void 0)||e.postImageRows.slice(i.length).some(u=>u.id!==void 0))&&X(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(u=>u.value===void 0)&&X(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((u,d)=>!ra(u.value,e.postImageRows[d]?.value))&&X(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let p=new Set([...i,...n]);(p.size!==t.length||t.some(u=>!p.has(u)))&&X(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function ta(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 fi(e,t,r){(e.length!==t.length||e.some((n,i)=>n!==t[i]))&&X(r)}function ra(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)=>ra(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)&&ra(r[a],n[a]))}function au(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 su(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let r=au(t.digits,"digits",1,30),n=au(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 lu(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 gE=new Set(["CHECK_BOX","MULTI_SELECT"]),hE=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Se(e,t,r){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=AE(e);if(i!==""&&!SE(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=jr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:TE(t.fieldType),message:o}}if(t.required&&Ri(n))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Ri(n)&&t.fieldType==="NUMBER"){let i=String(n),o=we(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&Fn(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&&Fn(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}=lu(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(!Ri(n)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Ct(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!Ri(n)&&hE.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 AE(e){return e==null?"":mi(e)&&e.type==="NUMBER"?W(e):mi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function SE(e,t){if(t==="DATE")return Ct(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Ct(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)?Ct(r.slice(0,10),"DATE")&&Ct(r.slice(11),"TIME"):Ct(r,"DATETIME")}function jr(e,t){if(mi(e)){let n=jo(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(gE.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 mi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Ot(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(mi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Ri(e){return e===""||Array.isArray(e)&&e.length===0}function TE(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Ct(e,t){if(t==="TIME"){let p=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return p!==null&&Number(p[1])<=23&&Number(p[2])<=59&&Number(p[3]??0)<=59}let r=t==="DATE"?e:e.slice(0,10),n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r);if(!n)return!1;let i=Number(n[1]),o=Number(n[2]),a=Number(n[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Ct(l,"TIME")}var dr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function na(e,t,r){let n=new Map(r.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=n.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(u=>typeof u=="object"&&u!==null&&"code"in u),p=a;try{p=jr(a,s)}catch{}i.record[o]={value:l?a:p}}}}function ia(e,t,r,n,i,o,a,s=[],l=!0,p=!0,u={}){let d=new Map(i.map(m=>[m.code,m])),c=[],f=new Set,E=[];u.validateUpdateBuiltIns===!1&&na(e,n,i);let R;for(let m of e){m.record??={};let y=p?[...m.preErrors]:[],g=[],h=[],T=m.mode==="create"||u.validateUpdateBuiltIns!==!1;for(let w of n){if(!m.payload.has(w))continue;let _=m.payload.get(w),C=d.get(w).fieldType,v=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(C)&&Array.isArray(_)&&_.every(A=>typeof A=="object"&&A!==null&&"code"in A);if(!T)continue;let k=Se(_,d.get(w),a);k.ok?m.record[w]={value:v?_:k.value}:g.push({field:w,code:k.code,message:k.message})}if(l&&m.mode==="create")for(let w of i){if(w.inSubtable||m.payload.has(w.code))continue;if(Ot(w.defaultValue)){let C=Se("",w,a);C.ok?w.required&&g.push({field:w.code,code:"ERR_REQUIRED",message:`${w.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:w.code,code:C.code,message:C.message})}else{let C=Se(w.defaultValue,w,a);C.ok||g.push({field:w.code,code:C.code,message:`\u65E2\u5B9A\u5024: ${C.message}`})}}if(s.length>0){let w=m.evaluationRow??Object.fromEntries([...m.payload].map(([v,k])=>[v,xe(k)])),_=m.evaluationFieldTypes,C=v=>{let k=v.tableAlias?`${v.tableAlias}.${v.field}`:v.field;return _?.get(k)??_?.get(v.field)};try{for(let v of oi(s,w,C))h.push({field:"",code:"ERR_CHECK",message:v.message})}catch(v){R??=v}}let O=w=>w.map(_=>{let C={};for(let v of r)C[v]=xe(m.payload.get(v));return C.$err_statement=String(o),C.$err_operation=t,C.$err_row=String(m.rowNumber),C.$err_field=_.field,C.$err_code=_.code,C.$err_message=_.message,C.$err_value="",C.$err_subtable="",C.$err_subrow="",C.$err_subrow_id="",C}),b={rowNumber:m.rowNumber,preErrors:O(y),builtInErrors:O(g),checkErrors:O(h)};E.push(b);let L=[...b.preErrors,...b.builtInErrors,...b.checkErrors];L.length>0&&f.add(m.rowNumber),c.push(...L)}if(R!==void 0)throw R;return{errors:c,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function xe(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 oa(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 IE(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 wE(e){return e.fieldType==="NUMBER"||IE(e)}function yi(e,t,r){return{subtable:e,subrow:t+1,subrowId:String(r.id??"")}}function aa(e,t){let{topByCode:r,childrenByTable:n}=oa(t),i=wE;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,p)=>{let u=p?`${p}\0${l.code}`:l.code;if(a.has(u))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(u),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...p?{subtableCode:p}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let d=n.get(l.subtableCode);if(!d)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let c of l.children){let f=d.find(E=>E.code===c);if(!f){let E=[...n.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===c));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let p=l.field;if(p==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let u=r.get(p);if(u?.fieldType==="SUBTABLE"){let d=(n.get(p)??[]).filter(i);if(d.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${p} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);d.forEach(c=>s(c,p));continue}if(u){s(u);continue}throw[...n.values()].some(d=>d.some(c=>c.code===p))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${p}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function qr(e,t){return Ot(e)?"":xe(jr(e,t))}var bE=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),zr=dr;function Fe(e,t=["$id"]){let r=oa(e),n=r.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!bE.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 Lt(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 _t(e,t,r,n,i=1,o="UPDATE"){let a=PE(e),s=[],l=new Set,p=[...t.payloadFields,...zr],u=xe(e.$id?.value),d=(c,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?u:xe(e[y]?.value);m.$err_statement=String(n),m.$err_operation=o,m.$err_row=String(i),m.$err_field=c.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=qr(f,c.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let c of t.topLevel){let f=e[c.code]?.value,E=Se(f,c,r);E.ok?a[c.code]={value:uu(f,c.fieldType,E.value)}:d(c,f,E)}for(let[c,f]of t.subtables){let E=e[c]?.value;if(!Array.isArray(E))continue;let R=a[c]?.value;for(let m=0;m<E.length;m++){let y=E[m],g=R[m];for(let h of f){let T=y.value?.[h.code]?.value,O=Se(T,h,r);O.ok?(g.value??={},g.value[h.code]={value:uu(T,h.fieldType,O.value)}):d(h,T,O,yi(c,m,y))}}}return{normalizedRecord:a,errors:s,columns:p,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function uu(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 PE(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 gi(e){let{statement:t,snapshots:r,fieldInfos:n,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;cu(o,"dmlMaxRows"),cu(a,"dmlMaxSubtableRows");for(let h of r)Ei(h);let l=tu(t,r,n,i),p=Fe(n,t.assignments.map(h=>h.field)),u=l.some(h=>Lt(h.postImage,p));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=u?await e.loadNumberPrecision():void 0,c=l.map((h,T)=>_t(h.postImage,p,d,s,e.parentRowNumbers?.[T]??T+1));if(!t.validateOnly){let h=c.flatMap(T=>T.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c[0]?.columns??[],errors:h})}`)}let f=l.length,E=l.reduce((h,T)=>h+T.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((h,T)=>di(h,c[T].normalizedRecord)),y=m.flatMap(h=>Yr(h).records),g=c.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return pu({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function cu(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function pu(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))pu(r,t);return Object.freeze(e)}var sa=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function hi(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)du(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 a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Ke(`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 Ke(`APPLY INSERT supports APPEND only (${l.kind}).`);let p=new Set;for(let u of l.fields){if(p.has(u))return Ke(`APPLY APPEND specifies child ${u} more than once.`);p.add(u),du(u,o.field,r,s)}for(let u of l.values)if(u.length!==l.fields.length)return Ke(`APPLY APPEND for ${o.field} has ${u.length} values for ${l.fields.length} fields.`)}}return{targetTables:n,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:r}}function NE(e,t,r=hi(e,t),n){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=si(e,i).flatMap(s=>s.records);if(n&&n.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=r.childrenByTable.get(s.field),p=s.operations.flatMap(u=>Qo(u,l,s.field));return{table:s.field,rows:p,addedRows:p.length}});return o.map((s,l)=>{let p={};for(let d of t)d.inSubtable||d.fieldType==="SUBTABLE"||d.fieldType==="FILE"||d.writable===!1||sa.has(d.fieldType)||(p[d.code]=s[d.code]??{value:Zo(d)});let u={...s};for(let d of a){let c=d.rows.map(f=>({value:f.value}));p[d.table]={value:c},u[d.table]={value:c}}return{parentRowNumber:n?.[l]??l+1,tables:a,postImage:p,record:u}})}async function Xr(e){let{statement:t,fieldInfos:r,dmlMaxRows:n,dmlMaxSubtableRows:i,statementNumber:o=1}=e;fu(n,"dmlMaxRows"),fu(i,"dmlMaxSubtableRows");let a=e.metadata??hi(t,r),s=NE(t,r,a,e.parentRowNumbers),l=r.filter(T=>T.fieldType==="SUBTABLE"||T.fieldType!=="FILE"&&T.writable!==!1&&!sa.has(T.fieldType)),p=Fe(l,t.fields),u=s.some(T=>Lt(T.postImage,p));if(u&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let d=u?await e.loadNumberPrecision():void 0,c=s.map(T=>_t(T.postImage,p,d,o,T.parentRowNumber,"INSERT"));if(!t.validateOnly){let T=c.flatMap(O=>O.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:c[0]?.columns??[],errors:T})}`)}let f=s.length,E=s.reduce((T,O)=>T+O.tables.reduce((b,L)=>b+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=s.map((T,O)=>{let b=c[O].normalizedRecord,L={};for(let w of t.fields)L[w]=b[w];for(let w of T.tables){let _=b[w.table]?.value;L[w.table]={value:w.rows.map((C,v)=>({value:Object.fromEntries(Object.keys(C.value).map(k=>[k,_[v]?.value?.[k]??C.value[k]]))}))}}return{...T,postImage:b,record:L}}),y=m.map(T=>T.record),g=[];for(let T=0;T<y.length;T+=100)g.push({app:t.appId,records:y.slice(T,T+100)});let h=c.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Eu({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:h,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:n,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function du(e,t,r,n){if(e.startsWith("_")||e.startsWith("$"))return 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||sa.has(i.fieldType))return Ke(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function fu(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 Eu(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))Eu(r,t);return Object.freeze(e)}async function mu(e){let{statement:t,matches:r,fieldInfos:n,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Ru(i,"dmlMaxRows"),Ru(o,"dmlMaxSubtableRows"),DE(t,r);let s=r.filter(y=>y.targetId===void 0),l=r.filter(y=>y.targetId!==void 0),p=CE(t,s.map(y=>y.sourceRowIndex)),u=await Xr({statement:p,fieldInfos:n,metadata:hi(p,n),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),d=[],c=new Set;for(let y of l){let g=y.targetId;c.has(g)&&la(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),c.add(g),y.snapshot||la(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let h=Number(y.snapshot.$id?.value);h!==g&&la(`UPSERT APPLY snapshot $id ${h} does not match target $id ${g}.`);let T=OE(t,y.sourceRowIndex,g),O=T.applyBlocks?.length?Ze(T,n):LE(n);d.push(await gi({statement:T,snapshots:[y.snapshot],fieldInfos:n,metadata:O,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=_E(d,i,o),E=u.guards.parentRows+f.guards.parentRows,R=u.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...u.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return ua({create:u,update:f,createBatches:u.batches,updateBatches:vE(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:u.guards,update:f.guards}})}function CE(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 LE(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function _E(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 ua({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 DE(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 vE(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 Ru(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function la(e){throw new Error(`ArgumentError: ${e}`)}function ua(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let r of Object.values(e))ua(r,t);return Object.freeze(e)}function Qr(e){return fr("UPDATE",[hu(e)])}function ca(e){return fr("INSERT",[gu(e)])}function pa(e){return fr("UPSERT",[gu(e.create),hu(e.update)])}function Ce(e,t){let r=t.failedBranch?.toLowerCase(),n=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=r===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:n,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...r?{failedBranch:r}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Si(e,t,r){return e.type==="UPDATE"?fr("UPDATE",[Ai("update",e.applyBlocks??[],null,!0,t,r)]):e.type==="INSERT"?fr("INSERT",[Ai("insert",e.applyBlocks??[],e.values.length,!1,t,r)]):fr("UPSERT",[Ai("insert",e.onInsertApplyBlocks??[],null,!1,t,r),Ai("update",e.onUpdateApplyBlocks??[],null,!0,t,r)])}function fr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function gu(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 hu(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:yu(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of 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:yu(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 yu(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:Jr(i.count,r.count),...r.matchedRows!==void 0?{matchedRows:Jr(i.matchedRows,r.matchedRows)}:{},...r.changedRows!==void 0?{changedRows:Jr(i.changedRows,r.changedRows)}:{},...r.addedRows!==void 0?{addedRows:Jr(i.addedRows,r.addedRows)}:{},...r.removedRows!==void 0?{removedRows:Jr(i.removedRows,r.removedRows)}:{}}}):t.map(r=>({...r}))}function Jr(e,t){return e==null||t===null?null:e+t}function Ai(e,t,r,n,i,o){let a=t.map(u=>{let d=u.operations.map(f=>UE(f,r)),c=d.every(f=>f.count!==null)?d.reduce((f,E)=>f+E.count,0):null;return{targetKind:u.targetKind,field:u.field,operations:d,changedCount:c}}),s=a.filter(u=>u.targetKind==="SUBTABLE"),l=s.every(u=>u.changedCount!==null)?s.reduce((u,d)=>u+d.changedCount,0):null,p=r===null||l===null?null:r>i||l>o;return{branch:e,parentRows:r,targets:a,guards:{revisionRequired:n,parentRows:r,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:p},chunk:{size:100,plannedChunks:r===null?null:Math.ceil(r/100)},deletedParentRows:e==="insert"?0:null}}function UE(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 et=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 Au(e,t,r){Zt("phase10c");let n=ou(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 et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Su(e,t,r){Zt("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 et({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:n,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Tu(e,t,r){Zt("phase14c");let n=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let p=e.createBatches[l];try{let u=await t.postRecords({app:p.app,records:[...p.records]});n.push(u.ids)}catch(u){throw new et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},u)}i+=1,a+=p.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let p=e.updateBatches[l];try{await t.putRecords({app:p.app,records:[...p.records]})}catch(u){throw new et({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...r?{diagnostic:Ce(r,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},u)}o+=1,s+=p.records.length}return{type:"UPSERT",createdIds:n,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}function Iu(e,t){let r=Q(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 Be(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ti(e.left);case"NULL_CHECK":return Ti(e.field);case"LOGICAL":return Be(e.left)||Be(e.right);case"NOT":case"GROUP":return Be(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ti(e){if(Array.isArray(e))return e.some(Ti);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(Ti)}async function _e(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 Ii(e,t,r,n){let{records:i,metrics:o}=await _e(e,t,r,["$id"],n);return{ids:Ns(i),metrics:o}}function fa(e,t){let r=kr(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 kE(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function ME(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function Zr(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=kE(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"&&!ME(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 xE=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 FE(e,t){return e.columns.some(r=>"alias"in r&&r.alias===t)}function en(e){let{stmt:t}=e,r=[];t.orderMode!=="KINTONE_NATIVE"&&r.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&r.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(r.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),r.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&r.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&r.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){r.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,p=e.orderSemantics.get(l);if(!p){r.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(FE(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}xE.has(p.fieldType)||r.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${p.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&r.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let n=t.offset??0;(!Number.isSafeInteger(n)||n<0)&&r.push(`KORDER_OFFSET_INVALID(offset=${n})`);let i=t.limit===null?Number.NaN:n+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&r.push(`KORDER_SCAN_ROWS_INVALID(offset=${n}, limit=${t.limit})`);let o=[...new Set(r)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&n<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var wi=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"}},bi=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}},Pi=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 wu(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 Pi(a).message}}return{records:r,cleanupWarning:o}}function Ea(e){let t=[];e.where&&t.push(V(e.where));let r=e.orderBy.map(n=>{if(n.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${n.key.name} ${n.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${r.join(", ")}`),t.join(" ")}var bu=["$id","$revision","\u30EC\u30B3\u30FC\u30C9\u756A\u53F7","\u4F5C\u6210\u8005","\u4F5C\u6210\u65E5\u6642","\u66F4\u65B0\u8005","\u66F4\u65B0\u65E5\u6642","\u30B9\u30C6\u30FC\u30BF\u30B9","\u4F5C\u696D\u8005"];function Pu(e){return e.startsWith("_")||e.startsWith("$")}var KE=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ma(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ma);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?KE.test(t.field):Object.values(t).some(ma)}function BE(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return xr(e)||ma(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var $E=["_pid","_rid","_idx"];function Ra(e){return[...new Set(e)]}function GE(e){switch(e.kind){case"APP":return Ra([...e.fieldCodes,...bu]);case"SUBTABLE":return Ra([...e.childFieldCodes,...$E,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ra(e.columns)}}function Nu(e,t){return[e.from,...e.joins.map(n=>n.table)].map((n,i)=>({sourceIndex:i,qualifier:n.alias??n.cteName,columns:GE(t(n,i))}))}function VE(e){if(e.startsWith("_p."))return{qualifier:null,fieldCode:e};let t=e.indexOf(".");return t<=0||t===e.length-1?{qualifier:null,fieldCode:e}:{qualifier:e.slice(0,t),fieldCode:e.slice(t+1)}}function WE(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function HE(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function YE(e,t,r){let n=VE(e),o=(n.qualifier===null?r:r.filter(l=>l.qualifier===n.qualifier)).filter(l=>l.columns.includes(n.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:n.fieldCode,runtimeKey:WE(l,n.fieldCode)}}if(n.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,p)=>HE(l)===e?[{column:l,columnIndex:p}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],p=BE(l.column);return p==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:p==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&me(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Cu(e,t,r){return{items:e.map(n=>n.type==="FIELD_NAME"?YE(n.name,t,r):{kind:"EXPRESSION"})}}function tt(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 jE(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(Ou(e,a,n.leftColumns),Ou(t,s,n.rightColumns),o==="RIGHT"){let d=new Map;for(let E of e){let R=E[a]??"",m=d.get(R);m?m.push(E):d.set(R,[E])}let c={};for(let E of n.leftColumns??Object.keys(e[0]??{}))c[E]="";let f=[];for(let E of t){let R=E[s]??"",m=d.get(R)??[];if(m.length>0)for(let y of m)f.push({...y,...E});else f.push({...c,...E})}return f}let l=new Map;for(let d of t){let c=d[s]??"",f=l.get(c);f?f.push(d):l.set(c,[d])}let p=[],u={};for(let d of n.rightColumns??Object.keys(t[0]??{}))u[d]="";for(let d of e){let c=d[a]??"",f=l.get(c)??[];if(f.length>0)for(let E of f)p.push({...d,...E});else o==="LEFT"&&p.push({...d,...u})}return p}function Ou(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 qE(e,t,r,n,i){return t===null?e:e.filter(o=>q(t,o,r,n,i))}function Mu(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&tn(t.expr)||t.type==="SCALAR_VALUE_COL"&&yt(t.expr))}function zE(e,t,r,n,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let p=t.map((d,c)=>JE(d,l,i?.items[c],r,o)).join("\0"),u=a.get(p);u?u.push(l):a.set(p,[l])}a.size===0&&t.length===0&&Mu(r)&&a.set("",[]);let s=[];for(let l of a.values()){let p={...l[0]};for(let u of t)u.type==="ARITH_KEY"?p[Ta(u.expr)]=String(re(u.expr,l[0])):u.type==="FUNC_KEY"&&(p[gt(u.expr)]=ne(u.expr,l[0]));xu(p,l,r,n),s.push(p)}return s}function XE(e,t,r,n,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let p={children:new Map},u=[];for(let c of e){let f=p;for(let E of l.items){let R=Lu(E,c),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],u.push(f.rows)),f.rows.push(c)}e.length===0&&l.items.length===0&&(s(),p.rows=[],u.push(p.rows));let d=new Set(l.items.map(c=>c.canonicalId));for(let c of u){let f={...c[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Lu(R,c[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}xu(f,c,r,n),fl(f,d),o.push(f)}}return o}function Lu(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function xu(e,t,r,n){for(let i of r)if(i.type==="AGGREGATE"){let o=me(i.func,i.distinct,i.arg),a=String(ga(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??Er(i.expr);e[o]=String(Ni(i.expr,t,n))}else if(i.type==="STRFUNC_COL"&&tn(i.expr)){let o=i.alias??gt(i.expr),a=Ia(i.expr,t,n);e[o]=ne(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&yt(i.expr)){let o=i.alias??$e(i.expr),a=Oi(i.expr,t,n);e[o]=String(se(a,e))}}function JE(e,t,r,n,i){if(e.type==="FIELD_NAME"){if(!r)return t[e.name]??"";if(r.kind==="PHYSICAL")return t[r.runtimeKey]??"";if(r.kind==="ALIAS_SAFE"){let o=n[r.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${r.columnIndex} is out of range.`);let a=Ci(o,t,r.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${r.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?ne(e.expr,t):String(re(e.expr,t))}function ga(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=re(r,f);if(isNaN(R))continue;E=String(R)}else{let R=Rt(r,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,p=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(n??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Fu(r,o):void 0,d=typeof u=="string"?x(u):u??(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 m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let g=Pt(m,E,d);(g<0||g===0&&Et(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=Pt(R,E,d);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let c=s?p:p.map(Number);switch(e){case"SUM":return c.reduce((f,E)=>f+E,0);case"AVG":return c.length===0?0:c.reduce((f,E)=>f+E,0)/c.length;case"MEDIAN":{if(c.length===0)return"";let f=[...c].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(c.length===0||f&&c.length<2)return"";let E=c[0],R=0,m=0,y=0;for(let h of c){let T=h-E;R++;let O=T-m;m+=O/R,y+=O*(T-m)}let g=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(g):g}}}function QE(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 Ni(e,t,r){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ga(e.func,e.distinct,e.arg,e.separator,t,r));let n=Ni(e.left,t,r),i=Ni(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 Er(e){return br(e)}function Fu(e,t){if(e.type==="FIELD_REF")return t?.(QE(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=>Fu(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 ZE(e,t,r,n){return t===null?e:e.filter(i=>q(t,i,r,void 0,n))}function eR(e,t,r,n,i){if(e.length===0)return e;let o=tR(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 tR(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(aR(t,a,o))}function ha(e,t,r,n,i,o){return t.length===0?e:Ku(e,t,r,n,i,o).rows.map(a=>a.row)}function Ku(e,t,r,n,i,o){let a=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:x("number")};if(p.type==="FUNC_KEY")return{semantics:x(Bu.has(p.expr.func)?"number":"string")};if(p.type==="GROUPING_KEY")return{semantics:x("number")};let u=i?.get(p.name);if(u)return{semantics:u};let d=r?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:x(n?.get(p.name)??"string")}}),s=e.map(p=>({row:p,keys:t.map(({key:u},d)=>({s:iR(u,p,o)}))})),l=(p,u)=>rR(p,u,t,a);return s.sort(l),{rows:s,compare:l}}function rR(e,t,r,n){for(let i=0;i<r.length;i++){let o=nR(e.keys[i],t.keys[i],n[i]);if(o!==0)return r[i].direction==="ASC"?o:-o}return 0}function nR(e,t,r){return Pt(e.s,t.s,r.semantics)}var Bu=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function iR(e,t,r){switch(e.type){case"FIELD_NAME":return r?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(re(e.expr,t));case"FUNC_KEY":return ne(e.expr,t);case"GROUPING_KEY":return lr(e.ref,t)}}function Aa(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=>Je(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=me(a.func,a.distinct,a.arg);i.set(s,p=>p[s]??p[l]??"0");break}case"ARITH_AGG_COL":{let l=Er(a.expr);i.set(s,p=>p[s]??p[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(re(a.expr,l)));break;case"STRFUNC_COL":{let l=gt(a.expr);i.set(s,p=>tn(a.expr)?p[s]??p[l]??ne(a.expr,p,r,n):ne(a.expr,p,r,n));break}case"CASE_COL":i.set(s,l=>Ne(a.expr,l,r,n));break;case"SCALAR_VALUE_COL":{let l=$e(a.expr);i.set(s,p=>yt(a.expr)?p[s]??p[l]??"":String(se(a.expr,p,r,n)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>lr(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Sa(e,t,r,n,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let p=JSON.stringify(a.partitionBy.map(d=>oR(l,d))),u=s.get(p);u?u.push(l):s.set(p,[l])}for(let l of s.values()){let p=Ku(l,a.orderBy,r,n,i),u=p.rows,d=1,c=1;for(let f=0;f<u.length;f++){f>0&&p.compare(u[f-1],u[f])!==0&&(d=f+1,c++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?d:c;u[f].row[a.alias]=String(E)}}}return e}function oR(e,t){let r=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Je(e,r)}function Li(e,t,r){let n=r??0;return t===null?e.slice(n):e.slice(n,n+t)}function Ci(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 Je(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=me(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Er(e.expr);return t[i]??"0"}case"ARITH_COL":return String(re(e.expr,t));case"CASE_COL":return Ne(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics);case"GROUPING_COL":return lr(e.ref,t);case"STRFUNC_COL":{let i=gt(e.expr);return tn(e.expr)?t[e.alias??i]??t[i]??ne(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics):ne(e.expr,t,n.resolveFieldType,n.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=$e(e.expr);return yt(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 aR(e,t,r={}){return e.map((n,i)=>{let o=Ci(n,t,i,r);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function _i(e,t,r,n,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let c=e.map(E=>{let R=Uu(Du(E),a),m=Ci(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[g,h]of m.entries)h!==null&&(y[g]=h);return y}),f=c.length>0?Object.keys(c[0]):[...i??[]];return{rows:c,columns:f}}let s=uR(t),l=t.some(c=>c.type==="WILDCARD"||c.type==="PARENT_WILDCARD"),p=l?null:sR(t,s),u=p??[];return l&&e.length===0?{rows:[],columns:lR(t,s)}:{rows:e.map((c,f)=>{let E={},R={scalarCache:r,resolveFieldType:n,resolveFieldSemantics:o,wildcardKeys:Object.keys(Uu(Du(c),a)),parentWildcardKeys:Object.keys(c).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let g=Ci(y,c,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof g!="string")for(let[h,T]of g.entries)T!==null&&(E[h]=T);break;case"PARENT_WILDCARD":{if(typeof g!="string")for(let[h,T]of g.entries)T!==null&&(E[h]=T),f===0&&u.push(h);break}case"FIELD":{let h=p?.[m]??y.alias??s.get(m)??y.field;E[h]=g,p===null&&f===0&&u.push(h);break}case"LITERAL_COL":{let h=p?.[m]??y.alias??`'${y.value}'`;E[h]=g,p===null&&f===0&&u.push(h);break}case"AGGREGATE":{let h=me(y.func,y.distinct,y.arg),T=p?.[m]??y.alias??h;E[T]=g,p===null&&f===0&&u.push(T);break}case"ARITH_AGG_COL":{let h=p?.[m]??y.alias??Er(y.expr);E[h]=g,p===null&&f===0&&u.push(h);break}case"ARITH_COL":{let h=p?.[m]??y.alias??Ta(y.expr);E[h]=g,p===null&&f===0&&u.push(h);break}case"CASE_COL":{let h=p?.[m]??y.alias??"case";E[h]=g,p===null&&f===0&&u.push(h);break}case"GROUPING_COL":{let h=p?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[h]=g,p===null&&f===0&&u.push(h);break}case"STRFUNC_COL":{let h=p?.[m]??y.alias??gt(y.expr);E[h]=g,p===null&&f===0&&u.push(h);break}case"SCALAR_VALUE_COL":{let h=p?.[m]??y.alias??$e(y.expr);E[h]=g,p===null&&f===0&&u.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=p?.[m]??y.alias??"(subquery)";E[h]=g,p===null&&f===0&&u.push(h);break}case"WINDOW_COL":{let h=p?.[m]??y.alias;E[h]=g,p===null&&f===0&&u.push(h);break}}}return E}),columns:u}}function sR(e,t){return e.map((r,n)=>$u(r,n,t))}function lR(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=$u(o,i,t);n.has(a)||(n.add(a),r.push(a))}return r}function $u(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??me(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Er(e.expr);case"ARITH_COL":return e.alias??Ta(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??gt(e.expr);case"SCALAR_VALUE_COL":return e.alias??$e(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 uR(e){let t=new Map;for(let n of e){if(n.type!=="FIELD"||n.alias)continue;let i=_u(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=_u(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 _u(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Du(e){let t={};for(let[r,n]of Object.entries(e))r.startsWith("_p.")||(t[r]=n);return t}function Ta(e){let t=r=>r.type==="FIELD_REF"?r.field:r.type==="NUMBER"?W(r):r.type==="STRING_FUNC"?gt(r):`(${t(r.left)}${r.op}${t(r.right)})`;return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function gt(e){let t=e.args.map(r=>r.type==="AGG_REF"||r.type==="AGG_ARITH"?Er(r):$e(r));return`${e.func}(${t.join(",")})`}function $e(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return W(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return gt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${$e(e.left)}${e.op}${$e(e.right)}`;case"CONCAT_OP":return`${$e(e.left)}||${$e(e.right)}`}}function cR(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:yt(e)}function yt(e){return e.type==="STRING_FUNC"?tn(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?yt(e.left)||yt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>vu(t.result))||e.elseResult!==null&&vu(e.elseResult):!1}function vu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:yt(e)}function tn(e){return e.args.some(t=>cR(t))}function pR(e,t,r){if(e.type==="AGG_REF"){let n=ga(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=Ni(e,t,r);return{type:"NUMBER",value:n,raw:String(n)}}return e.type==="STRING_FUNC"?Ia(e,t,r):Oi(e,t,r)}function Oi(e,t,r){return e.type==="STRING_FUNC"?Ia(e,t,r):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Oi(e.left,t,r),right:Oi(e.right,t,r)}:e}function Ia(e,t,r){return{type:"STRING_FUNC",func:e.func,args:e.args.map(n=>pR(n,t,r))}}function Uu(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 ku(e,t){if(e!==void 0)return t?e.flatMap(r=>[`${t}.${r}`,r]):[...e]}function ya(e,t,r){if(!(e===void 0&&t===void 0&&r.length===0))return[...new Set([...e??[],...t??[],...Object.keys(r[0]??{})])]}function dR(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(Bu.has(r.expr.func)?"number":"string")));return t}function wa(e){let{stmt:t,tables:r,scalarCache:n,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:p,havingFieldSemanticsResolver:u,aggregateSortKindResolver:d,appliedKlikes:c,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y}=e,g=dR(t.columns);for(let[_,C]of a??[])g.set(_,C);let h=[],T=t.from.alias;h=(r.get(T)??r.get(null)??[]).map(_=>tt(_,T));let b=ya(ku(E?.get(T),T),void 0,h);for(let _ of t.joins){let C=_.table.alias,k=(r.get(C)??[]).map(P=>tt(P,C)),A=ya(ku(E?.get(C),C),void 0,k);h=jE(h,k,_,{leftColumns:b,rightColumns:A}),b=ya(b,A,h)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;h=qE(h,L,s,c,l);let w=Q(t);if(w.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");h=XE(h,m,t.columns,d,{maxGeneratedRows:5e4})}else(w.type==="PLAIN"||Mu(t.columns))&&(h=zE(h,w.type==="PLAIN"?w.allItems:[],t.columns,d,w.type==="PLAIN"?y:void 0,{scalarCache:n,resolveFieldType:s,resolveFieldSemantics:l}));return h=ZE(h,t.having,p,u),h=Sa(h,t.columns,i,o,g),t.distinct&&(h=eR(h,t.columns,n,s,l)),h=ha(h,t.orderBy,i,o,g,Aa(t.columns,n,s,l)),h=Li(h,t.limit,t.offset),_i(h,t.columns,n,s,f,l,R)}function Gu(e,t){let r=[];for(let n of e){let i=ba(n.$id?.value),o=fR(n[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[p,u]of Object.entries(n)){if(p===t)continue;let d=ba(u?.value);l[`_p.${p}`]={value:d}}for(let[p,u]of Object.entries(s.value??{}))l[p]={value:ba(u?.value)};r.push(l)}}return r}function fR(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function ba(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 Vu(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function Wu(e,t){let r=rn(e);for(let[n,i]of Object.entries(t))r[n]=rn(i);return r}function Hu(e){let t=[...e.preErrors.map(i=>Pa(i)),...e.postImageErrors.map(i=>Pa(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Pa(i))],r=new Set;t.length>0&&r.add(e.rowNumber);let n={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);n[i]=rn(e.normalizedPostImage[i])}return{errors:t,invalidRows:r.size,invalidRowNumbers:r,writeRecord:n}}function Pa(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function rn(e,t=new Map){if(e===null||typeof e!="object")return e;let r=e,n=t.get(r);if(n!==void 0)return n;if(Array.isArray(e)){let o=[];t.set(r,o);for(let a of e)o.push(rn(a,t));return o}let i={};t.set(r,i);for(let[o,a]of Object.entries(e))i[o]=rn(a,t);return i}var Ge=["=","!=",">","<",">=","<="],ER=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),RR=new Set(Ge),mR=["=","!=","in","not in"],yR=new Map([["RECORD_NUMBER",new Set([...Ge,"in","not in"])],["__ID__",new Set([...Ge,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Ge)],["UPDATED_TIME",new Set(Ge)],["DATE",new Set(Ge)],["TIME",new Set(Ge)],["DATETIME",new Set(Ge)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Ge,"in","not in"])],["CALC",new Set([...Ge,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(mR)]]),Yu=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"]),ju=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function gR(e){return yR.get(e)??new Set}function rt(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:on(e,t)}function on(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return hR(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Na():TR(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Na();case"GROUP":return on(e.expr,t);case"NOT":{let r=on(e.expr,t);return r.capability!=="SUPERSET_PREFILTER"?r:qu(r.reasons)?an({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...r.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let r=on(e.left,t),n=on(e.right,t);return wR(e.op,r,n)}}}function hR(e,t,r,n){if(r.type==="KINTONE_FUNC"&&Ae(r.name))return Ca(e,t,r,n);if(t.type!=="FIELD")return Na();let i=n(t);if(!i)return vi("WHERE_FIELD_UNRESOLVED",t.field,void 0,Di(e));if(!IR(i.fieldType,e))return vi("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,Di(e));let o=Di(e),a=gR(i.fieldType),s=r.type==="STRING"||r.type==="NUMBER"||r.type==="IN_LIST"||AR(r),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",p=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!p?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function AR(e){return e.type==="KINTONE_FUNC"&&(e.name==="TODAY"||e.name==="NOW"||e.name==="LOGINUSER")}function Ca(e,t,r,n){let i=Di(e),o=r.name;if(t.type!=="FIELD")return nn("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=n(t);return a?SR(r)?RR.has(i)?!ER.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?nn("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}]}:nn("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):nn("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):nn("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function SR(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 TR(e,t,r){let n=r(e);return n?!Yu.has(n.fieldType)&&!ju.has(n.fieldType)?vi("WHERE_OPERATOR_UNSUPPORTED",e.field,n.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:n.fieldType,operator:t}]}:vi("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function IR(e,t){return Yu.has(e)?!0:ju.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Di(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 wR(e,t,r){let n=[...t.reasons,...r.reasons];return t.capability==="UNSUPPORTED"||r.capability==="UNSUPPORTED"?an({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")?an({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...n]}):an({capability:"LOCAL_ONLY",reasons:n})}function Na(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function vi(e,t,r,n){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:r,operator:n}]}}function nn(e,t,r,n,i){return an({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:r,fieldType:n,operator:i}]})}function qu(e){return e.some(t=>t.functionName!==void 0)}function an(e){if(e.capability==="EXACT_PUSHDOWN"||!qu(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 Xu(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"&&Ae(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 La(e){return Xu(e,!0)}function Ui(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 De(e,t,r,n,i=!0){let o=La(e.where);o.length>0&&r.push({kind:n?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:o,path:t,allowPhase2Prefilter:i}),Ui(e,e).forEach((a,s)=>De(a,`${t}.select-source[${s}]`,r,n,i))}function sn(e,t,r,n){e.left.type==="UNION"?sn(e.left,`${t}.left`,r,n):De(e.left,`${t}.left`,r,n),De(e.right,`${t}.right`,r,n)}function zu(e,t,r,n){if(!n&&pt(e)){De(dt(e),`${t}.inlined`,r,!1);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?De(i.query,`${t}.cte[${o}]`,r,!0):i.query.type==="UNION"&&sn(i.query,`${t}.cte[${o}]`,r,!0)}),e.query.type==="SELECT"?De(e.query,`${t}.main`,r,!0):sn(e.query,`${t}.main`,r,!0)}function Ju(e,t,r,n=!1){switch(e.type){case"SELECT":De(e,t,r,n);return;case"UNION":sn(e,t,r,n);return;case"WITH":zu(e,t,r,n);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?zu(e.query,`${t}.query`,r,!0):e.query.type==="UNION"?sn(e.query,`${t}.query`,r,!0):De(e.query,`${t}.query`,r,!0);return;case"EXPLAIN":Ju(e.query,`${t}.query`,r,n);return;case"VALIDATE":case"REORDER":{let i=La(e.where);i.length>0&&r.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t}),Ui(e,e).forEach((o,a)=>De(o,`${t}.select-source[${a}]`,r,!0));return}case"UPDATE":case"DELETE":{let i=La(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=Xu(e.applyBlocks,!0);o.length>0&&r.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`})}Ui(e,e).forEach((o,a)=>De(o,`${t}.select-source[${a}]`,r,n,!1));return}default:Ui(e,e).forEach((i,o)=>De(i,`${t}.select-source[${o}]`,r,n,!1))}}function ki(e,t){return t.every(r=>new RegExp(`\\b${r}\\s*\\(`).test(e))}function _a(e,t){return t.eligible===!0&&be(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function bR(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function PR(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(qe)||t.push(qe),[...new Set(t)]}function Oa(e,t){let r=PR(t);return{functionName:e.functionNames[0],path:e.path,code:r.find(n=>n!==qe)??qe,reasonCodes:r}}async function Qu(e,t){let r=[];Ju(e,"statement",r);let n=[];for(let i of r){if(i.kind==="FORBIDDEN"){let u=bR(i);return n.push(u),{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Oa(i)}}if(i.kind==="SELECT"){let u=i.source,d=u.from.cteName===null&&!u.from.subtableCode&&u.joins.length===0,c=be(u),f=await t.select(u),E="";try{E=i.where===null?"":V(i.where)}catch{E=""}let R=d&&c==="SIMPLE"&&(u.orderBy.length===0||u.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&ki(E,i.functionNames),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let h=await t.prefilterDecomposition(u);h?.eligible===!0&&_a(u,h)&&(m=h.plan,y=!0,R=!0)}let g={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:c,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},clientWhereEvaluation:!R,allowed:R};if(n.push(g),!R)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Oa(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":V(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&ki(s,i.functionNames),p={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(n.push(p),!l)return{hasRelativeDate:!0,nodes:n,allowed:!1,rejection:Oa(i,a)}}return{hasRelativeDate:r.length>0,nodes:n,allowed:!0}}function Zu(e){if(!e.allowed&&e.rejection){let t=e.rejection.reasonCodes.filter(r=>r!==qe);throw new Error(`${e.rejection.functionName}: ${qe}${t.length>0?` (reason=${t.join(", ")})`:""} (path=${e.rejection.path})`)}}function Da(e,t,r={}){let n=rt(e.where,t),i=(h,T="INELIGIBLE")=>({eligible:!1,disposition:T,reasonCodes:h,capability:n.capability,reasons:n.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=un(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=NR(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!CR(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(n.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(n.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=LR(e.where,t),l=kr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),p=r.serialize??V,u=r.containsFunctions??ki,d=[];for(let h of a.leaves){let T=Ki(h);if(T===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let O;try{O=p(h)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!u(O,[T]))return i(["PREFILTER_FUNCTION_MISSING"]);d.push(h)}let c=OR(l.condition),f=new Set(d),E=xi(e.where,f,c);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=p(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=d.map(h=>Ki(h));if(!u(R,[...new Set(m)])||!_R(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=r.rewriteResidual?r.rewriteResidual(e.where,f):Fi(e.where,f);if(y!==null&&un(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let h of m)g.add(h);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:d,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:n.capability,reasons:n.reasons}}}function NR(e,t){let r=[],n=null,i=o=>{if(n===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}un(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":un(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Ki(o)===null)return;if(Ca(o.op,o.left,o.right,t).capability!=="EXACT_PUSHDOWN"){n="RELATIVE_DATE_LEAF_NOT_EXACT";return}r.push(o);return}case"EXISTS":un(o).length>0&&(n="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),n===null?{ok:!0,leaves:r}:{ok:!1,reasonCodes:[n]}}function Ki(e){return e.right.type==="KINTONE_FUNC"&&Ae(e.right.name)?e.right.name:null}function un(e){let t=[],r=n=>{if(n.type==="BINARY"&&Ki(n)!==null){t.push(n);return}switch(n.type){case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"EXISTS":n.query.where!==null&&r(n.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return r(e),t}function CR(e,t){if(e.length!==t.length)return!1;let r=new Set(t);for(let n of e)if(!r.delete(n))return!1;return r.size===0}function OR(e){let t=new Set,r=n=>{switch(n.type){case"BINARY":t.add(n);return;case"LOGICAL":r(n.left),r(n.right);return;case"NOT":case"GROUP":r(n.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&r(e),t}function xi(e,t,r){switch(e.type){case"BINARY":return t.has(e)||r.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=xi(e.left,t,r),i=xi(e.right,t,r);return n!==null&&i!==null?{...e,left:n,right:i}:n??i}case"GROUP":{let n=xi(e.expr,t,r);return n===null?null:{...e,expr:n}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var ln={type:"BOOLEAN",value:!0};function Fi(e,t){if(e.type==="BINARY"&&t.has(e))return ln;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let r=Fi(e.left,t)??ln,n=Fi(e.right,t)??ln;return Mi(r)?Mi(n)?null:n:Mi(n)?r:r===e.left&&n===e.right?e:{...e,left:r,right:n}}case"GROUP":{let r=Fi(e.expr,t)??ln;return Mi(r)?ln:r===e.expr?e:{...e,expr:r}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Mi(e){return e.type==="BOOLEAN"&&e.value}function LR(e,t){let r=new Map,n=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(n);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){r.set(s.field,a);return}Object.values(s).forEach(n)}};n(e);let i=new Map,o=new Map;for(let[a,s]of r){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function _R(e,t){let r=new Map;for(let n of t){if(!Pr.has(n))return!1;r.set(n,(r.get(n)??0)+1)}for(let[n,i]of r)if((e.match(new RegExp(`\\b${n}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var M=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function ec(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 Bi(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 DR(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 vR(e){let t=[],r=[],n="",i=!1,o=!1,a=0,s=()=>{r.push(n),n="",o=!1},l=()=>{s(),t.push(r),r=[]};for(;a<e.length;){let p=e[a];if(i){if(p==='"'){if(e[a+1]==='"'){n+='"',a+=2;continue}i=!1,o=!0,a++;continue}n+=p,a++;continue}if(o&&p!==","&&p!=="\r"&&p!==`
4
4
  `)throw new M(`unexpected character after closing quote at offset ${a}.`);if(p==='"'){if(n.length!==0)throw new M(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(p===","){s(),a++;continue}if(p==="\r"||p===`
5
5
  `){p==="\r"&&e[a+1]===`
6
- `&&a++,l(),a++;continue}n+=p,a++}if(i)throw new M("unterminated quoted cell.");return(n.length>0||r.length>0||o)&&l(),t}function hR(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 Ki(e,t){let r=gR(yR(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}`)),hR(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 AR=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),SR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),un=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 qu(e,t,r){if(!AR.has(t??""))return e;if(e==="")return[];let n=e.split(/\r\n|\n/);if(n.some(i=>i===""))throw new un;return SR.has(t??"")?n.map(i=>({code:i})):n}function nt(e,t,r,n){throw new M(`JSON ${e} (offset=${t}, line=${r}, column=${n}).`)}function zu(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new M("JSON source is not valid UTF-8.")}}function Xu(e){let t=[],r=0,n=1,i=1,o=()=>{let s=e[r++];return s===`
6
+ `&&a++,l(),a++;continue}n+=p,a++}if(i)throw new M("unterminated quoted cell.");return(n.length>0||r.length>0||o)&&l(),t}function UR(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 $i(e,t){let r=vR(DR(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}`)),UR(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 kR=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),MR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),cn=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 tc(e,t,r){if(!kR.has(t??""))return e;if(e==="")return[];let n=e.split(/\r\n|\n/);if(n.some(i=>i===""))throw new cn;return MR.has(t??"")?n.map(i=>({code:i})):n}function nt(e,t,r,n){throw new M(`JSON ${e} (offset=${t}, line=${r}, column=${n}).`)}function rc(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new M("JSON source is not valid UTF-8.")}}function nc(e){let t=[],r=0,n=1,i=1,o=()=>{let s=e[r++];return s===`
7
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&&nt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}r>=e.length&&nt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),y={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
- `,r:"\r",t:" "};if(R in y){u+=y[R];continue}R!=="u"&&nt(`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)||nt("has invalid unicode escape",r,n,i);for(let h=0;h<4;h++)o();let g=Number.parseInt(m,16);if(g>=55296&&g<=56319){(e.slice(r,r+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(r+2,r+6)))&&nt("has an unpaired high surrogate",r,n,i),o(),o();let h=e.slice(r,r+4);for(let P=0;P<4;P++)o();let A=Number.parseInt(h,16);(A<56320||A>57343)&&nt("has an invalid surrogate pair",r-4,n,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(g-55296<<10)+A-56320)}else g>=56320&&g<=57343?nt("has an unpaired low surrogate",r-4,n,Math.max(1,i-4)):u+=String.fromCharCode(g)}f||nt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let p=e.slice(r),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"number",lexeme:c,...l});continue}let d=/^(true|false|null)/.exec(p)?.[0];if(d){for(let u=0;u<d.length;u++)o();t.push({kind:"literal",value:d==="true"?!0:d==="false"?!1:null,...l});continue}nt(`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 Bi(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function $i(e){if(e.byteLength===0)throw new M("JSON source is empty.");let t=Xu(zu(e)),r=0,n=(p,c=t[r])=>{throw new M(`JSON ${p} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(p,c)=>p.kind==="punct"&&p.value===c,o=p=>{let c=t[r];(c.kind!=="punct"||c.value!==p)&&n(`expected ${p}; found ${Bi(c)}`,c),r++},a=()=>{let p=t[r++];if(p.kind==="string")return p.value;if(p.kind==="number")return{kind:"number",lexeme:p.lexeme};if(p.kind==="literal")return p.value;if(p.kind==="punct"&&p.value==="{"){let c=new Map;if(i(t[r],"}"))return r++,c;for(;;){let d=t[r++];if(d.kind!=="string")return n(`object key must be a string; found ${Bi(d)}`,d);let u=d.value;c.has(u)&&n(`duplicate key ${JSON.stringify(u)}`,d),o(":"),c.set(u,a());let f=t[r];if(i(f,"}")){r++;break}o(",")}return c}if(p.kind==="punct"&&p.value==="["){let c=[];if(i(t[r],"]"))return r++,c;for(;;){c.push(a());let d=t[r];if(i(d,"]")){r++;break}o(",")}return c}return n(`expected a value; found ${Bi(p)}`,p)},s=a();t[r].kind!=="eof"&&n(`has trailing data; found ${Bi(t[r])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:n("root must be an object or array.",t[0]);if(l.length===0)throw new M("JSON source contains no records.");return l.forEach((p,c)=>{if(!(p instanceof Map))throw new M(`JSON record ${c+1} must be an object.`)}),l}var TR=new Set(["CHECK_BOX","MULTI_SELECT"]),Ju=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ve(e,t,r){throw new M(`JSON field validation failed (row=${e}, field=${t}): ${r}`)}function IR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function wR(e,t,r){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ve(r,t.code,"boolean is not accepted."),IR(e)){t.fieldType==="NUMBER"&&Ve(r,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ve(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)||Ve(r,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ve(r,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ve(r,t.code,"unsupported value type."),!TR.has(t.fieldType)&&!Ju.has(t.fieldType)&&Ve(r,t.code,"array is accepted only for multi-value fields.");let n=e.map(i=>(typeof i!="string"&&Ve(r,t.code,"array elements must be strings."),i));return new Set(n).size!==n.length&&Ve(r,t.code,"array elements must not contain duplicates."),Ju.has(t.fieldType)?JSON.stringify(n.map(i=>({code:i}))):JSON.stringify(n)}function _a(e,t,r,n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let i=$i(t.bytes);if(i.length>n)throw new M(`source rows (${i.length}) exceed maxRecords (${n}).`);let o=new Map(r.map(l=>[l.code,l]));if(o.size!==r.length)throw new M("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let u of l.keys())o.has(u)||Ve(p+1,u,"unknown key (not declared in INTO).");let c={},d=new Set;for(let u of r)l.has(u.code)&&(d.add(u.code),c[u.code]=wR(l.get(u.code),u,p+1));a.push(c),s.push(d)}),{rows:a,columns:r.map(l=>l.code),columnMeta:new Map(r.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Da(e,t,r,n,i,o){let a=Ki(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,g)=>[m,g]));for(let m of n)if(!l.has(m))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let p=new Map(i.map(m=>[m.code,m])),c=new Set(n);if(o&&c.has(o))throw new M("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],u=[],f=m=>a.rows.filter(g=>g[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,g]of a.columns.entries()){if(c.has(g)||g===o)continue;let h=p.get(g);if(h)d.push({column:g,reason:E(h),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)u.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new M(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let m of n){let g=p.get(m);if(!g)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${g.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let g=[],h={};for(let A of n){let P=m[l.get(A)];try{h[A]=qu(P,p.get(A)?.fieldType,{cliKintone:!0})}catch(I){if(!(I instanceof un))throw I;h[A]=P,g.push({field:A,code:I.code,message:I.message})}}return R.push(g),h}),columns:[...n],columnMeta:new Map(n.map(m=>[m,{fieldType:p.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...n],ignoredKnownColumns:d,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((p,c)=>[p,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var cn=(e,t,r)=>{throw new M(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${r}`)};function Qu(e,t,r,n,i=n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let o=$i(t.bytes);if(o.length>n)throw new M(`source parent rows (${o.length}) exceed maxRecords (${n}).`);let a=new Map(r.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==r.length)throw new M("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,p)=>{let c=p+1;for(let E of l.keys())a.has(E)||cn(c,E,"unknown key (not declared in INTO).");let d=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 y=l.get(R);if(E.kind==="FIELD"){y instanceof Map&&cn(c,R,"object is not accepted for a top-level field."),d.set(R,y);continue}Array.isArray(y)||cn(c,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),g=y.map((h,A)=>{h instanceof Map||cn(c,R,`childRow=${A+1} must be an object.`);let P=h;for(let I of P.keys())m.has(I)||cn(c,I,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(s++,s>i)throw new M(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:P}});u.set(R,g)}return{rowNumber:c,top:d,subtables:u,replacementTables:f}})}}function Zu(e,t,r,n,i,o){let a=Ki(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"),p=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 p){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 c=[],d;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(c.length>=i)throw new M(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:c.length+1,markerRowNumber:E,top:new Map(l.map(y=>[y.field,u[s.get(y.field)]])),subtables:new Map(p.map(y=>[y.subtableCode,[]])),replacementTables:new Set(n),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},c.push(d)}else if(d){for(let y of l){let m=u[s.get(y.field)];if(m!==""&&m!==d.top.get(y.field))throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${E}.`)}if(o){let y=u[s.get(o)];if(y!==""&&y!==d.recordNumberSourceValue)throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new M(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let y of p){let m=u[s.get(y.rowIdSourceHeader)],g=new Map(y.children.map(A=>[A,u[s.get(A)]]));if(m===""&&[...g.values()].every(A=>A===""))continue;let h=d.subtables.get(y.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:g})}}),c.length===0)throw new M("CSV has no parent rows.");return{records:c}}var bR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),PR=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ka(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function nc(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)ec(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)ec(R,E.get(R),u.subtableCode)}let p=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(u=>NR(u,s,l,o,a,n,i,p)),d=c.flatMap(u=>[...u.errors]);return{parents:c,errors:d,invalidParentRows:new Set(c.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:p}}function NR(e,t,r,n,i,o,a,s){let l=[],p={};for(let u of t)e.top.has(u.field)&&Ua(e.top.get(u.field),n.get(u.field),o,p,u.field,l,va(e,a,u.field));let c={};if(a==="INSERT")for(let u of n.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||tc(u,o,c,l,va(e,a,u.code));let d=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 y=l.length,m={},g=i.get(u.subtableCode);for(let h of u.children){let A=g.get(h),P=va(e,a,h,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?Ua(R.values.get(h),A,o,m,h,l,P):tc(A,o,m,l,P)}l.length===y?(f.validChildRows++,E.push(m)):f.invalidChildRows++}d.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:d,replacementTables:e.replacementTables,errors:l}}function ec(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&&PR.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${r?`child ${r}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function tc(e,t,r,n,i){let o=Ot(e.defaultValue)?"":e.defaultValue;Ua(o,e,t,r,e.code,n,i,!Ot(e.defaultValue))}function Ua(e,t,r,n,i,o,a,s=!1){let l=CR(e),p=Ae(l,t,r);p.ok?n[i]={value:OR(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function CR(e){return rc(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:rc(t)?t.lexeme:t):e}function rc(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function OR(e,t){return bR.has(t.fieldType)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)}function va(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 Ma=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function xa(e,t,r=1){return e.map(n=>{let i={};for(let o of t)i[o]=n.sourceValues.get(o)==null?"":LR(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 LR(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 Fa(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 ic(e,t){return Fa(e,t,"DROP")}function oc(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 ac(e,t,r){return e.map((n,i)=>{let o=t[i],a=o===void 0?void 0:r.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...n.subtables].map(([l,p])=>{let c=a?.record[l]?.value,d=Array.isArray(c)?c.length:0;return{table:l,existingRows:d,inputRows:p.length,addRows:p.length,deleteRows:d}});return{parentRow:n.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:n.top,subtables:n.subtables,tables:s}})}function _R(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function sc(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 lc(e,t,r,n,i){return t.map((o,a)=>{let s=e[a],l=r[a],p=l===void 0?void 0:n.get(l),c=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let d=new Map,u=[];for(let f of o.replacementTables){let E=_R(p.record,f),R=new Set(E.map(I=>I.id).filter(I=>!!I)),y=s.subtables.get(f)??[],m=o.subtables.get(f)??[],g=0,h=0,A=0,P=y.map((I,_)=>{let w=m[_]??{};return I.rowId&&R.has(I.rowId)?(g++,{rowId:I.rowId,record:w}):(I.rowId&&((i.get(I.rowId)??[]).some(O=>O.parentId!==l||O.table!==f)&&c.push({operation:"UPDATE",parentRow:o.parentRow,field:I.rowId,subtable:f,subrow:I.childRowNumber,sourceRow:I.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${I.rowId}`,sourceValues:I.values}),A++),h++,{record:w})});d.set(f,P),u.push({table:f,existingRows:E.length,inputRows:y.length,updateRows:g,addRows:h,deleteRows:E.length-g,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:c.length===0,top:o.top,subtables:d,tables:u,errors:c}})}var Ka="#__import_source";function uc(e){return{...e,from:{appId:0,alias:null,cteName:Ka}}}function DR(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Ba(e,t){let r=e.map(DR),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 vR="\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",yr=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"}},me=new WeakMap;function Oc(e){return me.get(e)}var hr=new WeakMap,to=new WeakMap,cc=new WeakMap,UR=1;function kR(e,t){if(t)return t;let r=cc.get(e);return r||(r=`client:${UR++}`,cc.set(e,r)),r}async function za(e,t,r={}){let n=Date.now(),i=kR(t,r.cacheContext),o=yy(e,r.enableImport===!0),a=MR(),s=xR(t,a),l={aborted:!1},p=FR(s,l,!KR(o)),c=await $R(o,p,r,i);a.elapsedMs=Date.now()-n;let d={...BR(c,l),metrics:a};if(c.type==="SELECT"){let u=me.get(c);u&&me.set(d,u)}return d}function MR(){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 xR(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 FR(e,t,r){return{...e,getRecords:async n=>{let i=await e.getRecords(n);if(i.searchAborted&&(t.aborted=!0,r))throw new yr;return i}}}function KR(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function BR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let r=new Set(e.warnings??[]);return r.add(vR),{...e,warnings:[...r]}}async function Xa(e,t,r){return Hu(e,{select:n=>hn(n,t,r),dml:n=>_c(n,t,r),prefilterDecomposition:async n=>{if(n.where===null)return null;let i=await Ar(n,t,r);return La(n,i)}})}async function $R(e,t,r,n){let i=await Xa(e,t,n);e.type!=="EXPLAIN"&&Yu(i);let o=$a(e);if(o!==null&&!zm(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Gn("phase15b",e),Hs("phase15b",e),sr(e),e.type!=="EXPLAIN"&&await zR(e,t,n),e.type==="IMPORT")return Wm(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 wc(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 Xc(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 VR(e,t,r,n);case"SELECT":return St(e,t,r,n,void 0,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"UNION":return Gc(e,t,r,n,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"WITH":return dm(e,t,r,n,void 0,r.captureColumnMeta===!0);case"INSERT":return Gm(e,t,r,n);case"INSERT_SELECT":return ep(e,t,r,n);case"UPSERT":return ly(e,t,r,n);case"UPSERT_SELECT":return ip(e,t,r,n);case"UPDATE":return wc(e,t,r,n);case"DELETE":return sy(e,t,r,n);case"REORDER":return Ey(e,t,r,n);case"SHOW_APPS":return op(t);case"DESCRIBE":return ap(e,t,n);case"EXPLAIN":return Ty(e,t,n,r.maxRecords??1e4,r.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Le(r.dmlMaxRows,"dmlMaxRows",st):st,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe):Oe,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 YR(e,t,r,n)}}var Ja=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Qa=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Za(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 GR(e=!1){let t=e?Qa:Ja;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 VR(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=oa(e,i),l=e.checkGroups??[],p=cr(l);for(let b of p){if(b.field!=="$id"&&!o.has(b.field)&&!a.has(b.field))throw le(`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 c=new Map([...o].map(([b,k])=>[b,k.fieldType]));c.set("$id","RECORD_NUMBER"),Bt(e,c);let d=Za(e.where),u=[...new Set(["$id",...s.map(b=>b.subtableCode??b.field.code),...d,...p.map(b=>b.field)])];for(let b of d){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 Ye(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=rt(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(R)}).`);let y=new Map([...o].map(([b,k])=>[b,k.fieldType])),m=new Map([...o.values()].flatMap(b=>b.optionOrder?[[b.code,new Set(Object.keys(b.optionOrder))]]:[])),g=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:rr(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:m,allowKlike:!1}),h=g===null?"":G(g),P=(await Re(t.getRecords,e.appId,h,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(b=>({id:String(b.$id?.value??""),record:b,flat:tt(b,null)})).filter(b=>e.where===null||q(e.where,b.flat,k=>c.get(k.field))),I=[],_=new Map,w=new Map,v=new Set,O=0,S=b=>{if(v.add(b.id),O+=1,e.summary){let K=JSON.stringify([b.id,b.subtable??"",b.field,b.code]),ee=w.get(K);ee?ee.$err_count=String(Number(ee.$err_count)+1):w.set(K,{$id:b.id,$err_subtable:b.subtable??"",$err_field:b.field,$err_code:b.code,$err_count:"1"});return}let k=JSON.stringify([b.id,b.subtable??"",b.field,b.code,b.message]),W=_.get(k);W?(W.$err_count=String(Number(W.$err_count)+1),b.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${b.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${b.subrowId??""}`)):_.set(k,{$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=s.filter(b=>!b.subtableCode),L=new Map;for(let b of s){if(!b.subtableCode)continue;let k=L.get(b.subtableCode)??[];k.push(b),L.set(b.subtableCode,k)}for(let b of P){for(let k of C){let W=b.record[k.field.code]?.value,K=Ae(W,k.field,f);K.ok||S({id:b.id,field:k.field.code,code:K.code,message:K.message,value:jr(W,k.field.fieldType)})}for(let[k,W]of L){let K=b.record[k]?.value;if(Array.isArray(K))for(let ee=0;ee<K.length;ee++){let F=K[ee];for(let D of W){let H=F.value?.[D.field.code]?.value,ne=Ae(H,D.field,f);if(!ne.ok){let je=mi(k,ee,F);S({id:b.id,field:D.field.code,code:ne.code,message:ne.message,value:jr(H,D.field.fieldType),...je})}}}}for(let k of ii(l,b.flat,W=>c.get(W.field)))S({id:b.id,field:"",code:"ERR_CHECK",message:k.message,value:""})}if(e.summary)I.push(...w.values());else for(let b of _.values()){let k=Number(b.$err_count);b.$err_subtable!==""&&k>=2&&(b.$err_message=`${b.$err_message}\uFF08${k}\u884C: ${b.$err_subrow}\uFF09`),I.push(b)}let U={type:"SELECT",columns:[...e.summary?Qa:Ja],rows:I,rowCount:I.length,validateStats:{errorRecords:v.size,errorCount:O}};return me.set(U,GR(e.summary===!0)),U}var ht=1e4;function At(e,t,r,n,i,o){let a=e.get(t);if(a&&(a.columns.length!==r.length||a.columns.some((l,p)=>l!==r[p])||!HR(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 HR(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||!Qn(i.semantics,n.semantics))return!1}return!0}function $a(e){if(Array.isArray(e)){for(let t of e){let r=$a(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=$a(r);if(n!==null)return n}}return null}var gn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Rr=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function YR(e,t,r,n,i){let o=await Gi(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 Gi(e.low,t,r,n,i),p=await Gi(e.high,t,r,n,i);if(!Nt(">=",o,l,a)||!Nt("<=",o,p,a))throw new gn(`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 Gi(e.right,t,r,n,i);if(!Nt(e.op,o,s,a))throw new gn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Gi(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(Ga(e));case"SCALAR_SUBQUERY":try{return await jR(e.query,t,r,n,i)}catch(o){throw o instanceof Rr?new gn(o.message):o}}}async function jR(e,t,r,n,i){let{query:o,probed:a}=qR(e),s=await mn(o,t,r,n,i);if(s.columns.length!==1)throw new Rr(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Rr("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 Rr(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function qR(e){return ie(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 Ga(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=Ga(e.left),r=Ga(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 Ar(e,t,r,n,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Be(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,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 c=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(y=>f.get(y)?.fieldType==="STATUS"))return;let R=await ss(u,t,r);R&&c.set(u,R)}));let d=(u,f,E)=>{if(f==="$id")return ur(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(fe(u,f));if(!R)return;let y=R.semantics??z(R),m=R.fieldType==="STATUS"&&c.has(u.appId)?{...y,optionOrder:c.get(u.appId)}:y;return ur(m,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return d(e.from,u.field,!1);let E=o.find(R=>Ce(R)===u.tableAlias);return E?E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??x("string"):d(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"):d(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:d(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Wi(E,u.field)!==void 0))return f.length>1?x("string"):void 0}}function es(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=>Be(i.condition))?!0:Object.values(n).some(t)};return e.columns.some(t)}function Lc(e,t){let r=new Map;for(let n of e.columns){if(!("alias"in n)||!n.alias)continue;let i;n.type==="FIELD"?i=t(ke(n.field)):n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?i=x("number"):n.type==="AGGREGATE"?n.func==="MIN"||n.func==="MAX"||n.func==="MODE"?n.arg.type!=="WILDCARD"&&(i=is(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=Mt(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 hn(e,t,r,n){if(e.where===null)return rt(null,()=>{});let i=await Ar(e,t,r,n);return rt(e.where,i)}function Ut(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 ji(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function _c(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let n=Be(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?rt(null,()=>{}):rt(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 mr(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let n=await _c(e,t,r);if(n.capability!=="EXACT_PUSHDOWN")throw new j(`WHERE predicate cannot be represented by kintone REST (${Ut(n)})`)}async function St(e,t,r,n,i,o=!1,a=!1){let s;if(await ro(e,t,n,i),QR(e))return s=tm(e),o&&me.set(s,await Wa(e,s.columns,t,n,i,a)),s;await sp(e,t,r,n,i);let l=await hn(e,t,n,i);if(l.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(l)}).`);let p;if(l.capability==="SUPERSET_PREFILTER"){let R=await Ar(e,t,n,i),y=La(e,R);y.eligible&&Oa(e,y)&&(p=y.plan)}let c=we(e),d=l.capability==="EXACT_PUSHDOWN"?c:"FULL_SCAN",u=await Sn(e,t,n,i),f=ji(e)?(e.orderMode==="KINTONE_NATIVE"?Zr:Qr)({stmt:e,staticMode:d,whereCapability:l.capability,whereReasons:l.reasons,orderSemantics:u.semantics,maxRecords:r.maxRecords??1e4,hasKlike:ae(e.where)}):null;await nm(e,f?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":d,t,n);let E=Dc(e,r,f);try{d==="SIMPLE"?s=await rm(e,t,E.effectiveOptions,n,f,u):s=await pm(e,t,E.effectiveOptions,n,i,l.capability==="EXACT_PUSHDOWN",u,p)}catch(R){vc(E,R)}return o&&me.set(s,await Wa(e,s.columns,t,n,i,a)),s}var An=new WeakMap;async function zR(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 ro(o,t,r);for(let s of Object.values(a))await i(s)};await i(e)}async function XR(e,t,r,n){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let d=await Q(c,t,r);return[c,new Map(d.map(u=>[u.code,u]))]}))),s=(c,d)=>{if(d==="$id")return"$id";let u=fe(c,d);return a.get(c.appId)?.has(u)?u:null},l=(c,d)=>{if(c.cteName===null)return!1;let u=n?.get(c.cteName);return u?u.columns.includes(d):!0},p=(c,d,u,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,u.field)!==null).length,R=i.some(m=>l(m,u.field)),y=Ce(c);return{canonicalId:`source:${d}:APP${c.appId}:${f}`,directKey:u.tableAlias&&y?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let f=i.findIndex(y=>Ce(y)===c.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,c.field);if(R===null)throw new Error(`ArgumentError: B65 field ${c.tableAlias}.${c.field} does not exist in APP${E.appId}.`);return p(E,f,c,R)}let d=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,c.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,c.field));if(d.length+u.length>1)throw new Error(`ArgumentError: B65 field ${c.field} is ambiguous across multiple sources.`);if(d.length===1&&u.length===0){let f=d[0];return p(f.table,f.tableIndex,c,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${c.field} does not exist in a physical APP source.`)}}async function ro(e,t,r,n){An.delete(e);let i=ie(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await XR(e,t,r,n),s=Rl(e,a,fl);s&&An.set(e,s)}function JR(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 Dc(e,t,r){let n=r?.kind==="CANONICAL_REST_TOP_N"||r?.kind==="KORDER_NATIVE"||r?.kind==="KORDER_CURSOR"?wt({...e,orderBy:[]}):wt(e),i=n.size>0&&t.onLimitReached==="truncate";return{reasons:n,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function vc(e,t){throw e.reasons.size>0&&t instanceof Se?new Se(JR(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function pc(e,t){try{return await t()}catch(r){vc(e,r)}}function ot(e){return e?.type==="BOOLEAN"&&e.value===!1}function QR(e){return e.from.appId===0&&e.from.cteName===lt}function qi(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?qi(e.left)||qi(e.right):e.type==="STRING_FUNC"?ts(e):!1}function ZR(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:dn(e)}function dn(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?ts(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?dn(e.left)||dn(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"?qi(r):dn(r))):!1}function ts(e){return e.args.some(t=>ZR(t))}function em(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(qi(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(ts(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(dn(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 tm(e){if(e.joins.length>0||e.where||ie(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.");em(e);let t=ha([{}],e.columns),{rows:r,columns:n}=Oi(t,e.columns),i=Ci(r,e.limit,e.offset);return{type:"SELECT",rows:i,columns:n,rowCount:i.length,warnings:[]}}async function rm(e,t,r,n,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Kc(e):e,s=Vn(a),l=i?.kind==="CANONICAL_LOCAL"?bt(e,e.from):s.fields,p=await ns(e,t,n),c=os(e,p),d=e.columns.some(_=>_.type==="CASE_COL")?await Ar(e,t,n,void 0,es(e)):void 0,u=r.maxRecords??1e4,f=new Set,E=r.onLimitReached??"error",R=r.fetchParallel??1,y=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&m!==null&&m<=u&&!ae(e.where)?m:void 0,h;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)h=[];else if(i?.kind==="KORDER_CURSOR"){let _=await Su({client:t,app:s.app,fields:s.fields,query:fa(e),offset:e.offset??0,limit:e.limit});h=_.records,_.cleanupWarning&&f.add(_.cleanupWarning)}else if(y)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let _=e.where?G(e.where):"";h=await Re(t.getRecords,s.app,_,l,{parallel:R,maxRecords:u,stopAfter:g,onLimit:E,onTruncate:w=>{f.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`)}})}let A=h.map(_=>tt(_,null));y||(A=ya(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,ga(e.columns,void 0,c.row,d)),A=Ci(A,e.limit,e.offset));let{rows:P,columns:I}=Oi(A,e.columns,void 0,c.row,void 0,d);return{type:"SELECT",rows:P,columns:I,rowCount:P.length,warnings:[...f]}}async function nm(e,t,r,n){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let p of s)l.add(p)};if(t==="SIMPLE"){let a=Vn(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,bt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!ym(u));if(l.length===0)continue;let p=await Q(a,r,n);if(p.length===0)continue;let c=new Set(p.map(u=>u.code)),d=l.filter(u=>!c.has(u));if(d.length>0)throw new Error(`ArgumentError: unknown field code(s): ${d.join(", ")} (APP${a})`)}}function Uc(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Ur(e.where,{tableAlias:e.from.alias}):null}async function kc(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,Uc(e)),e.where!==null)for(let a of e.joins){if(!a.table.alias||a.table.subtableCode||a.table.cteName!==null)continue;let s=Ur(e.where,{tableAlias:a.table.alias});i(a.table.appId,s)}let o=await Promise.all([...n.entries()].map(async([a,s])=>{let[l,p]=await Promise.all([Ee(a,t,r),gm(a,t,r)]),c=im(s).filter(d=>l.get(d)==="STATUS");if(c.length>0){let d=await as(a,t,r);if(d.enable&&d.states&&d.states.length>0){let u=new Set(d.states.map(f=>f.name));for(let f of c)p.set(f,u)}}return[a,l,p]}));return{fieldTypesByApp:new Map(o.map(([a,s])=>[a,s])),fieldOptionsByApp:new Map(o.map(([a,,s])=>[a,s]))}}function im(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 it(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"&&zi(e.left.expr,t),e.right.type==="CASE_VALUE"&&zi(e.right.expr,t);return;case"LOGICAL":it(e.left,t),it(e.right,t);return;case"NOT":case"GROUP":it(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function zi(e,t){for(let r of e.branches)it(r.condition,t)}function om(e){let t=[];it(e.where,t),it(e.having,t);for(let r of e.columns)r.type==="CASE_COL"&&zi(r.expr,t);return t}function Ce(e){return e.alias??e.cteName}function Mc(e,t){return[e.from,...e.joins.map(r=>r.table)].find(r=>Ce(r)===t)}function rs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function ns(e,t,r){let n=om(e);if(n.length===0)return new Map;let i=new Set,o=rs(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=Mc(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 Ee(s,t,r)]));return new Map(a)}function ke(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function xc(e,t,r){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Dt(t,r)}function Dt(e,t){if(e.type==="FIELD_REF"){t.push(ke(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Dt(e.left,t),Dt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Dt(e.left,t),Dt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&Dt(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"&&Dt(r,t)}function Xi(e,t){if(e.type==="AGG_REF"){xc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Xi(e.left,t),Xi(e.right,t))}function Va(e,t){for(let r of e.args)r.type==="AGG_REF"||r.type==="AGG_ARITH"?Xi(r,t):fn(r,t)}function fn(e,t){if(e.type==="STRING_FUNC"){Va(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){fn(e.left,t),fn(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"?Va(n,t):n.type!=="ARRAY"&&n.type!=="FIELD_REF"&&n.type!=="ARITH"&&fn(n,t)}}function am(e){let t=[];for(let r of e)r.type==="AGGREGATE"?xc(r.func,r.arg,t):r.type==="ARITH_AGG_COL"?Xi(r.expr,t):r.type==="STRFUNC_COL"?Va(r.expr,t):r.type==="SCALAR_VALUE_COL"&&fn(r.expr,t);return t}var sm=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function lm(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":sm.has(e.fieldType)?"string":void 0}async function Fc(e,t,r,n){let i=am(e.columns);if(i.length===0)return;let o=new Set,a=rs(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=Mc(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,r);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,p=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...p].some(y=>E.get(y)?.fieldType==="STATUS"))return;let R=await ss(f,t,r);R&&l.set(f,R)}));let c=[e.from,...e.joins.map(f=>f.table)],d=(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 y=c.find(m=>Ce(m)===f.tableAlias);if(!y)return;if(y.cteName!==null)return n?.get(y.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(y.appId)?.get(fe(y,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(fe(e.from,f.field))}else{let y=c.flatMap(m=>{if(m.cteName!==null){let h=n?.get(m.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let g=s.get(m.appId)?.get(fe(m,f.field));return g?[d(g,m.appId)]:[]});return y.length!==1?void 0:y[0]}if(!E)return;let R=f.tableAlias!==null?c.find(y=>Ce(y)===f.tableAlias):e.joins.length===0?e.from:void 0;return d(E,R?.appId??e.from.appId)}}function fe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Wi(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function We(e,t){let r=e.semantics??z(e);return{sortKind:lm(e),fieldType:e.fieldType,semantics:t===void 0?r:ur(r,t,e.code)}}function Kc(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 He(){return{semantics:x("string","KSQL_UNKNOWN")}}function Bc(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function vt(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 um=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Mt(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return um.has(e.func)?Y("number"):Y("string")}function gr(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?Bc():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?Mt(e):e.type==="FIELD_REF"?t(ke(e.field))??He():e.type==="FIELD"?t(e)??He():He()}function no(e){if(e.length===0)return He();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&&Qn(r(n.semantics),r(t.semantics)))?e.every(i=>Qn(i.semantics,t.semantics))?t:{...t,semantics:r(t.semantics)}:e.some(n=>n.semantics?.compareMode==="unsupported")?Bc("KSQL_MIXED_UNSUPPORTED"):He()}function is(e,t){if(e.type==="FIELD_REF")return t(ke(e.field))??He();if(e.type==="FIELD")return t(e)??He();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 Mt(e);let r=e.branches.map(n=>gr(n.result,t));return e.elseResult&&r.push(gr(e.elseResult,t)),no(r)}function cm(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 Wa(e,t,r,n,i,o=!1){let a=new Map;cm(e)&&await Promise.all(rs(e).map(async R=>{if(a.has(R.appId))return;let y=await Q(R.appId,r,n);a.set(R.appId,new Map(y.map(m=>[m.code,m])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),p=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let h=a.get(e.from.appId)?.get(R.field);return h?We(h,e.from.appId):void 0}let m=s.find(h=>Ce(h)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let g=a.get(m.appId)?.get(fe(m,R.field));return g?We(g,m.appId):vt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let m=a.get(e.from.appId)?.get(fe(e.from,R.field));return m?We(m,e.from.appId):vt(R.field)}let y=s.flatMap(m=>{if(m.cteName!==null){let A=i?.get(m.cteName);return A?.columns.includes(R.field)?[A.columnMeta?.get(R.field)]:[]}let g=a.get(m.appId)?.get(fe(m,R.field)),h=g?We(g,m.appId):vt(R.field);return h?[h]:[]});return y.length===1?y[0]:void 0},c=R=>{if(!l)return;let y=s.filter(m=>{if(R.tableAlias!==null&&Ce(m)!==R.tableAlias)return!1;let g=fe(m,R.field);return a.get(m.appId)?.has(g)===!0||vt(R.field)!==void 0});return y.length===1?y[0].appId:void 0},d=(R,y)=>{let m=c(y);return R&&m!==void 0?{...R,publicSourceApp:m}:R},u=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let y=ke(R),m=d(p(y),y);m&&u.set(R,m)}return u}if(f)for(let R of t){let y=ke(R),m=d(p(y),y);m&&u.set(R,m)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,y)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[y];if(!m)return;let g;if(R.type==="FIELD"){let h=ke(R.field);g=d(p(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=Y("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?g=Y("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=is(R.arg,p));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=Y("number");else if(R.type==="GROUPING_COL")g=Y("number");else if(R.type==="LITERAL_COL")g=Y("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?g=Mt(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?g=Y("number"):h.type==="FIELD"?g=p(h):g=Y("string")}else if(R.type==="STRFUNC_COL")g=Mt(R.expr);else if(R.type==="WINDOW_COL")g=Y("number");else if(R.type==="CASE_COL"){let h=R.expr.branches.map(A=>gr(A.result,p));R.expr.elseResult&&h.push(gr(R.expr.elseResult,p)),g=no(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=He());g&&u.set(m,g)}),u}function $c(e,t){let r=me.get(e),n=me.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=r?.get(o),l=t.columns[a],p=l===void 0?void 0:n?.get(l);if(s&&p){let c=no([s,p]),d=s.publicSourceApp===p.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=c;i.set(o,d===void 0?f:{...f,publicSourceApp:d})}else(s||p)&&i.set(o,He())}),i}function os(e,t){let r=[e.from,...e.joins.map(s=>s.table)],n=r.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let p=r.find(c=>Ce(c)===s.tableAlias);return!p||p.cteName!==null?void 0:Wi(p,s.field)??t.get(p.appId)?.get(fe(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Wi(e.from,s.field)??t.get(e.from.appId)?.get(fe(e.from,s.field));if(r.some(p=>p.cteName!==null))return;let l=n.flatMap(p=>{let c=Wi(p,s.field)??t.get(p.appId)?.get(fe(p,s.field));return c?[c]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function pm(e,t,r,n,i,o=!0,a,s){let l=r.maxRecords??1e4,p=new Set,c=r.fetchParallel??1;await Promise.all([wn(e.where,t,r,n,i),wn(e.having,t,r,n,i)]);let[d,u,f]=await Promise.all([kc(e,t,n),ns(e,t,n),Fc(e,t,n,i)]),E=os(e,u),R=await Ar(e,t,n,i,Be(e.having)||es(e)),y=Lc(e,R),m=ir(e,d);Co(m);let g=m.mainCondition,h=m.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let A=s?s.prefilterWhere:g,P=ot(e.where),I=P?Promise.resolve([]):En(e,e.from,t,l,c,!0,r.onLimitReached??"error",p,A,o),_=[],w=[];for(let K of e.joins){if(P){_.push({join:K,promise:Promise.resolve([])});continue}let ee=K.table.alias?h.get(K.table.alias)??null:null;ee!==null?_.push({join:K,promise:En(e,K.table,t,l,c,!1,r.onLimitReached??"error",p,ee)}):w.push(K)}let v=up(e.columns,t,r,n,i),O=a?Promise.resolve(a):Sn(e,t,n,i);v.catch(()=>{}),O.catch(()=>{});let S=await I,C=new Map;C.set(e.from.alias,S);for(let{join:K,promise:ee}of _)C.set(K.table.alias,await ee);await Promise.all(w.map(async K=>{let F=await jc(e,K,C,t,l,c,r.onLimitReached??"error",p,null)??await En(e,K.table,t,l,c,!1,r.onLimitReached??"error",p,null);C.set(K.table.alias,F)}));let L=await v,{optionOrders:N,sortKinds:U,semantics:b}=await O,{rows:k,columns:W}=Ta({tables:C,stmt:e,scalarCache:L,optionOrders:N,sortKinds:U,orderSemantics:b,fieldTypeResolver:E.row,fieldSemanticsResolver:R,havingFieldTypeResolver:E.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:f,appliedKlikes:s?.appliedKlikes??m.appliedKlikes,...s?{residualWhere:s.residualWhere}:{},resolvedGroupingSpec:An.get(e)});return{type:"SELECT",rows:k,columns:W,rowCount:k.length,warnings:[...p]}}async function Gc(e,t,r,n,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Gc(e.left,t,r,n,i,o):St(e.left,t,r,n,void 0,i,o),St(e.right,t,r,n,void 0,i,o)]),l=a.columns,p=s.columns,c=s.rows.map(E=>{let R={};return l.forEach((y,m)=>{R[y]=E[p[m]??y]??""}),R}),d=[...a.rows,...c],u=e.all?d:Vc(d,l),f={type:"SELECT",rows:u,columns:l,rowCount:u.length};return i&&me.set(f,$c(a,s)),f}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 dm(e,t,r,n,i,o=!1){if((i==null||i.size===0)&&pt(e))return St(dt(e),t,r,n,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await op(t):s.query.type==="DESCRIBE"?l=await ap(s.query,t,n):l=await xt(s.query,t,r,a,n,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:me.get(l)})}return xt(e.query,t,r,a,n,o)}async function xt(e,t,r,n,i,o=!1){if(e.type==="UNION"){let[l,p]=await Promise.all([xt(e.left,t,r,n,i,o),xt(e.right,t,r,n,i,o)]),c=l.columns,d=p.columns,u=p.rows.map(y=>{let m={};return c.forEach((g,h)=>{m[g]=y[d[h]??g]??""}),m}),f=[...l.rows,...u],E=e.all?f:Vc(f,c),R={type:"SELECT",rows:E,columns:c,rowCount:E.length};return o&&me.set(R,$c(l,p)),R}if(!(e.from.cteName!=null&&e.from.cteName!==lt||e.joins.some(l=>l.table.cteName!=null)))return St(e,t,r,i,n,o,!1);let s=await fm(e,t,r,n,i);return o&&me.set(s,await Wa(e,s.columns,t,i,n)),s}async function fm(e,t,r,n,i){await ro(e,t,i,n);let o=An.get(e),a=new Set,s=F=>{if(F.alias!==null||F.cteName===null)return F;let D=Ce(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=Ce(F);if(D!==null){if(l.has(D))throw new Error(`ArgumentError: effective alias ${D} is used by multiple tables.`);l.add(D)}}let p=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&&p(F.cteName);let c=r.maxRecords??1e4,d=new Set,u=r.fetchParallel??1;await Promise.all([wn(e.where,t,r,i,n),wn(e.having,t,r,i,n),sp(e,t,r,i,n)]);let f=await hn(e,t,i,n);if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(f)}).`);let E=await Sn(e,t,i,n),R=ji(e)?(e.orderMode==="KINTONE_NATIVE"?Zr:Qr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:E.semantics,maxRecords:c,hasKlike:ae(e.where)}):null,y=Dc(e,r,R),m=y.effectiveOptions,[g,h,A]=await Promise.all([kc(e,t,i),ns(e,t,i),Fc(e,t,i,n)]),P=os(e,h),I=await Ar(e,t,i,n,Be(e.having)||es(e)),_=Lc(e,I),w=ir(e,g);Co(w);let v=up(e.columns,t,m,i,n),O=Promise.resolve(E);v.catch(()=>{}),O.catch(()=>{});let S=new Map,C=new Map;if(e.from.cteName!=null){let F=p(e.from.cteName);S.set(e.from.alias,F.rows.map(dc)),C.set(e.from.alias,F.columns)}else{let F=await pc(y,()=>En(e,e.from,t,c,u,!0,m.onLimitReached??"error",d,w.mainCondition,f.capability==="EXACT_PUSHDOWN"));S.set(e.from.alias,F)}let L=e.joins.map(F=>pc(y,async()=>{if(F.table.cteName!=null){let D=p(F.table.cteName);S.set(F.table.alias,D.rows.map(dc)),C.set(F.table.alias,D.columns)}else{let D=F.table.alias?w.joinConditions.get(F.table.alias)??null:null,ne=await jc(e,F,S,t,c,u,m.onLimitReached??"error",d,D)??await En(e,F.table,t,c,u,!1,m.onLimitReached??"error",d,D);S.set(F.table.alias,ne)}}));await Promise.all(L);let N=await v,{optionOrders:U,sortKinds:b,semantics:k}=await O,W=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:K,columns:ee}=Ta({tables:S,stmt:e,scalarCache:N,optionOrders:U,sortKinds:b,orderSemantics:k,fieldTypeResolver:P.row,fieldSemanticsResolver:I,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:_,aggregateSortKindResolver:A,appliedKlikes:w.appliedKlikes,sourceColumns:W,tableColumns:C,hiddenQualifiedAliases:a,resolvedGroupingSpec:o});return{type:"SELECT",rows:K,columns:ee,rowCount:K.length,warnings:[...d]}}function dc(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{value:r??""}]))}async function En(e,t,r,n,i,o,a,s,l=null,p=!0){let c=bt(e,t),d=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&&p?tl(e,t.appId).query:"",y=l!==null?G(l):"",m=R&&y?`(${R}) and (${y})`:R||y;return(await _e(r.getRecords,t.appId,m,c,{parallel:i,maxRecords:n,onLimit:a,onTruncate:d})).records}let E=(await _e(r.getRecords,t.appId,"",c,{parallel:i,maxRecords:n,onLimit:a,onTruncate:d})).records;return ku(E,t.subtableCode)}var Wc=50;function Em(e){let t=Te(e);return t!==null?JSON.stringify(t):e}function Ha(e){return JSON.stringify(e)}function Ft(e,t){return JSON.stringify(e.map((r,n)=>t[n]?Em(r):r))}function Pn(e,t){let r=e.raw.get(Ha(t));if(r!==void 0)return r;if(e.numericKey.some(Boolean))return e.normalized.get(Ft(t,e.numericKey))}async function Nn(e,t,r,n,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(y=>o.get(y)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},c=(y,m,g)=>{let h=y.get(m);(h===void 0||g>h)&&y.set(m,g)},d=(y,m)=>{c(p.raw,Ha(y),m),l.some(Boolean)&&c(p.normalized,Ft(y,l),m)},u=new Set,f=[],E=new Set;for(let y of r){let m=Ha(y);E.has(m)||(E.add(m),y.some(g=>g==="")?f.push(y):u.add(y[0]))}let R=["$id",...t];for(let y of Sr([...u],Wc)){let m=`${t[0]} in (${y.map(Ji).join(",")})`,g=await Re(n.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let h of g){let A=Number(h.$id?.value);Number.isFinite(A)&&d(t.map(P=>Hc(h[P]?.value)),A)}}for(let y of f){let m=t.map((h,A)=>`${h} = ${Ji(y[A])}`).join(" and "),g=await Re(n.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});g.length!==0&&d(y,Rm(g))}return p}function Rm(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 Hc(e){return typeof e=="string"?e:e==null?"":String(e)}function Ji(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Sr(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var Yc=50,mm=6,fc=Yc*mm;async function jc(e,t,r,n,i,o,a,s,l=null){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let p=t.on.left.tableAlias,c=t.on.right.tableAlias;if(!p||!c)return null;let d,u,f;if(p===t.table.alias&&c!==t.table.alias)d=c,u=t.on.right.field,f=t.on.left.field;else if(c===t.table.alias&&p!==t.table.alias)d=p,u=t.on.left.field,f=t.on.right.field;else return null;let E=r.get(d);if(!E)return null;let R=new Set;for(let I of E){let _=I[u]?.value,w=Hc(_).trim();w.length>0&&R.add(w)}let y=[...R];if(y.length===0)return[];if(y.length>fc)return s.add(`JOIN\u30AD\u30FC\u304C ${y.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 ${fc} \u4EF6\uFF09\u3002`),null;let m=bt(e,t.table),g=I=>{s.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`)},h=Sr(y,Yc),A=[],P=new Set;for(let I of h){let _=`${f} in (${I.map(Ji).join(",")})`,w=l!==null?`(${_}) and (${G(l)})`:_,v=await _e(n.getRecords,t.table.appId,w,m,{parallel:o,maxRecords:i,onLimit:a,onTruncate:g});for(let O of v.records){let S=`${O.$id?.value??""}:${JSON.stringify(O)}`;P.has(S)||(P.add(S),A.push(O))}}return A}var Ec=new Map,Rc=new Map,mc=new Map,yc=new Map,gc=new Map,hc=new Map;function Tr(e,t,r){return e.get(t)?.get(r)}function Ir(e,t,r,n){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(r,n)}function ym(e){return e.startsWith("_")||e.startsWith("$")}async function Q(e,t,r){let n=Tr(yc,r,e);if(n)return n;let i=t.getFields(e);return Ir(yc,r,e,i),i}async function Ye(e,t,r){let n=Tr(hc,r,e);if(n)return n;let i=t.getNumberPrecision(e);return Ir(hc,r,e,i),i}async function as(e,t,r){let n=Tr(gc,r,e);if(n)return n;let i=t.getProcessStatuses(e);return Ir(gc,r,e,i),i}async function ss(e,t,r){let n=await as(e,t,r);return n.enable&&n.states!==null?new Map(n.states.map(i=>[i.name,i.index])):void 0}async function Ee(e,t,r){let n=Tr(Ec,r,e);if(n)return n;let i=await Q(e,t,r),o=new Map(i.map(a=>[a.code,a.fieldType]));return Ir(Ec,r,e,o),o}async function Ya(e,t,r){let n=Tr(Rc,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 Ir(Rc,r,e,o),o}async function gm(e,t,r){let n=await Ya(e,t,r);return new Map([...n.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Ac(e,t,r){let n=Tr(mc,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 Ir(mc,r,e,o),o}function hm(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 Am(e,t,r,n){let i=hm(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(d=>d.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))].map(async d=>{let u=await Q(d,t,r);return[d,new Map(u.map(f=>[f.code,f]))]}))),l=d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(d.field);return R?We(R,e.from.appId):void 0}let f=o.find(R=>Ce(R)===d.tableAlias);if(!f)return;if(f.cteName!==null)return n?.get(f.cteName)?.columnMeta?.get(d.field);let E=s.get(f.appId)?.get(fe(f,d.field));return E?We(E,f.appId):vt(d.field)}if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(d.field);let f=s.get(e.from.appId)?.get(fe(e.from,d.field));return f?We(f,e.from.appId):vt(d.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let y=n?.get(f.cteName),m=y?.columns.includes(d.field)?y.columnMeta?.get(d.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(fe(f,d.field)),R=E?We(E,f.appId):vt(d.field);return R?[R]:[]});return u.length>1&&a.add(d.field),u.length===1?u[0]:void 0},p=new Map;for(let d of e.columns){if(!("alias"in d)||!d.alias)continue;let u;if(d.type==="FIELD")u=l(ke(d.field));else if(d.type==="ARITH_COL"||d.type==="ARITH_AGG_COL"||d.type==="WINDOW_COL")u=Y("number");else if(d.type==="GROUPING_COL")u=Y("number");else if(d.type==="LITERAL_COL"||d.type==="SCALAR_VALUE_COL")u=Y("string");else if(d.type==="STRFUNC_COL")u=Mt(d.expr);else if(d.type==="SCALAR_SUBQUERY_COL")u=He();else if(d.type==="CASE_COL"){let f=d.expr.branches.map(E=>gr(E.result,l));d.expr.elseResult&&f.push(gr(d.expr.elseResult,l)),u=no(f)}else d.type==="AGGREGATE"&&(d.func==="MIN"||d.func==="MAX"||d.func==="MODE"?d.arg.type!=="WILDCARD"&&(u=is(d.arg,l)):u=d.func==="GROUP_CONCAT"?Y("string"):Y("number"));u?.semantics&&p.set(d.alias,u.semantics)}let c=new Map;for(let d of i){let u=p.get(d)??l(ke(d))?.semantics;if(!u){let E=ke(d);E.tableAlias===null&&a.has(E.field)&&c.set(d,z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await as(u.source.appId,t,r);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}c.set(d,f)}return c}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,a,s]=await Promise.all([Sm(e,t,r),Tm(e,t,r),Am(e,t,r,n)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Sm(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 Ya(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Ya(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}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 Ac(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Ac(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}function qc(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 Im=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function wm(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||Im.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Me(e,t,r,n){let i=await Q(e,r,n);return wm(e,t,i),i}async function at(e,t,r,n,i){let o=new Map(r.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ye(e,n,i):void 0}function Kt(e,t,r,n){let i=new Map(r.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),p=o[s]?.value??"",c=Ae(p,l,n);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let d=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:d?p:c.value}}})}async function bm(e,t,r,n,i){let o=await Me(e.appId,e.fields,t,n),a=await zr({statement:e,fieldInfos:o,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe),statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});return ry(e,a,o)}async function Pm(e,t,r,n,i){let{fieldInfos:o,prepared:a}=await zc(e,t,r,n,i);return iy(e,a,o)}async function zc(e,t,r,n,i){let o=await Me(e.appId,e.fields,t,n),a=new Map(o.map(y=>[y.code,y.fieldType])),s=rp(e),l=new Set;for(let y of s){let m=Ft(y,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(m))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(m)}let p=await Nn(e.appId,e.keyFields,s,t,r,a),c=s.map(y=>Pn(p,y)),d=new Map,u=[...new Set(c.filter(y=>y!==void 0))],f=["$id","$revision",...o.filter(y=>!y.inSubtable&&y.fieldType!=="FILE").map(y=>y.code)];for(let y of Sr(u,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${y.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of m.records){let h=Number(g.$id?.value);Number.isSafeInteger(h)&&h>0&&d.set(h,g)}}let E=c.map((y,m)=>({sourceRowIndex:m,...y===void 0?{}:{targetId:y,snapshot:d.get(y)}})),R=await fu({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe),statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});return{fieldInfos:o,prepared:R}}async function Nm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Me(e.appId,e.fields,t,n),o=await zr({statement:e,fieldInfos:i,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe),loadNumberPrecision:()=>Ye(e.appId,t,n)}),a=ua(o);if(r.confirm&&!await r.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:io(a),applyDiagnostic:a}))throw new Z("INSERT",o.guards.parentRows);let s=await gu(o,t,a);return{...s,diagnostic:Ne(a,s)}}async function Cm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await zc(e,t,r,n,1),o=ca(i);if(r.confirm){let s=io(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 hu(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:Ne(o,a)}}function Om(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 io(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=Om(r?Vi(r):[],n?Vi(n):[]),a=Lm(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),p=o.reduce((u,f)=>u+f.appendRows,0),c=o.reduce((u,f)=>u+f.removeRows,0),d={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:p,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:c,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{...d,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=Vi(r),f=Vi(n);return{...d,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:n.parentRows??0,applyBranches:{insert:{parentRows:r.parentRows??0,initialSubtableRows: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 d}function Vi(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let r=kt(t,"APPEND"),n=kt(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-r-n,appendRows:r,removeRows:n}})}function kt(e,t){return e.operations.filter(r=>r.kind===t).reduce((r,n)=>r+(n.count??0),0)}function Lm(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:kt(r,"ADD"),removedValues:kt(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 Xc(e,t,r,n,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return bm(e,t,r,n,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Pm(e,t,r,n,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await tp(e,t,r,n,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await ls(e,t,r,n,i,o)).result}var Qi=class extends Error{constructor(r,n){super(`RejectLimitExceededError: ${r}`);this.diagnostic=n;this.name="RejectLimitExceededError"}};async function ls(e,t,r,n,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(N=>N.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let c=e.type==="UPDATE"?e.assignments.map(N=>N.field):e.fields,d=await Me(e.appId,c,t,n);e.type==="UPDATE"&&await mr(e,t,n);let u=new Map(d.map(N=>[N.code,N])),f=await at(e.appId,c,d,t,n),E=Fe(d,p),R=Mu(E),y=(await _m(e,l,t,r,n,i,u,e.type==="UPDATE"?R:void 0)).sort((N,U)=>N.rowNumber-U.rowNumber),m=y.filter(N=>N.mode==="update"),g=e.type==="UPDATE"?Um:e.type.startsWith("UPSERT")?N=>km(N,t,r.maxRecords??1e4):void 0,h=r.loadUpdateModeSnapshots??g,A=m.length>0&&h!==void 0,P=new Map;if(A){ra(m,c,d);let N=await h({appId:e.appId,candidates:m,fields:R}),U=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 k=N.get(b.targetId);if(!k)throw new Error(`InternalError: update-mode snapshot is missing for record ${b.targetId}.`);let W=xu(k,b.record??{});U.set(b.rowNumber,W)}f===void 0&&[...U.values()].some(b=>Lt(b,E))&&(f=await Ye(e.appId,t,n));for(let b of m){let k=U.get(b.rowNumber);if(!k)throw new Error(`InternalError: validation post-image is missing for row ${b.rowNumber}.`);P.set(b.rowNumber,_t(k,E,f,o,b.rowNumber,l))}}let I=na(y,l,p,c,d,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:_,invalidRows:w,invalidRowNumbers:v}=I;if(A){let N=new Map(I.candidateResults.map(U=>[U.rowNumber,U]));_=[],v=new Set;for(let U of y){let b=N.get(U.rowNumber);if(!b)throw new Error(`InternalError: validation detail is missing for row ${U.rowNumber}.`);if(U.mode==="create"){let K=[...b.preErrors,...b.builtInErrors,...b.checkErrors];_.push(...K),K.length>0&&v.add(U.rowNumber);continue}let k=P.get(U.rowNumber);if(!k)throw new Error(`InternalError: prepared post-image validation is missing for row ${U.rowNumber}.`);let W=Fu({rowNumber:U.rowNumber,setFields:c,normalizedPostImage:k.normalizedRecord,preErrors:b.preErrors,postImageErrors:k.errors,checkErrors:b.checkErrors});U.record=W.writeRecord,_.push(...W.errors);for(let K of W.invalidRowNumbers)v.add(K)}w=v.size}let O=[...p,...dr],S={type:"VALIDATION",operation:l,validatedRows:y.length,validRows:y.length-w,invalidRows:w,errorCount:_.length,columns:O,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},C=new Map;for(let N of p){if(N==="$id"){C.set(N,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let U=u.get(N);U&&C.set(N,We(U,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let N of dr)C.set(N,Y(L.has(N)?"number":"string"));return hr.set(S,C),{result:S,candidates:y,invalidRowNumbers:v,columnMeta:C}}async function Sc(e,t,r,n,i,o){let a=await ls(e,t,r,n,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");At(i,s,a.result.columns,a.result.errors,r.tempTableMaxRows??ht,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Qi(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(r.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await r.confirm(p.length,E))throw new Z(E,p.length)}let c={affectedRows:p.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<p.length;R+=100){let y=await t.postRecords({app:e.appId,records:p.slice(R,R+100).map(m=>m.record)});E.push(y.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...c}}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,...c}}let d=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<d.length;E+=100){let R=await t.postRecords({app:e.appId,records:d.slice(E,E+100).map(y=>y.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...c}}async function _m(e,t,r,n,i,o,a,s){if(e.type==="UPDATE")return vm(e,r,n,i,o,s);let l,p,c,d,u;if(e.type==="INSERT"||e.type==="UPSERT")Tc(e,e.fields),u=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),Bt(e,u),l=e.values.map(A=>A.map((P,I)=>P.type==="CASE_VALUE"?mt(P.expr,{},a.get(e.fields[I])?.fieldType):P));else{let A=await cs.materialize(e,r,n,i,o,[...a.values()]),P=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!P&&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(P&&new Set(A.columns).size!==A.columns.length)throw le("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");Tc(e,A.columns),p=A.rows,c=A.importPresence,d=A.importRowErrors;let I=A.columnMeta;u=new Map(A.columns.map(_=>{let w=I?.get(_),v=w?.fieldType??(w?.semantics?.compareMode==="number"||w?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[_,v]})),Bt(e,u),l=A.rows.map(_=>A.columns.map(w=>_[w]??""))}let f=l.map((A,P)=>({rowNumber:P+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((I,_)=>c&&!c[P]?.has(I)?[]:[[I,A[_]]])),preErrors:[...d?.[P]??[]],record:{},evaluationRow:p?.[P]??Object.fromEntries(e.fields.map((I,_)=>[I,xe(A[_])])),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([...a].map(([A,P])=>[A,P.fieldType])),R=f.map(A=>e.keyFields.map(P=>xe(A.payload.get(P)))),y=e.keyFields.map(A=>E.get(A)==="NUMBER"),m=new Map;for(let A of R){let P=Ft(A,y);m.set(P,(m.get(P)??0)+1)}let g=to.has(e);if(g&&[...m.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 h=await Nn(e.appId,e.keyFields,R,r,n,E);return f.forEach((A,P)=>{let I=R[P],_=Pn(h,I);A.mode=_===void 0?"create":"update",_!==void 0&&(A.targetId=_),e.keyFields.forEach((w,v)=>{I[v]===""&&A.preErrors.push({field:w,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${w} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(m.get(Ft(I,y))??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 us(e){return e.checkGroups?cr(e.checkGroups):[]}function Tc(e,t){let r=new Set(t);for(let n of us(e)){if(n.tableAlias!==null)throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.tableAlias}.${n.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!r.has(n.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Dm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Bt(e,t){if(e.checkGroups)for(let r of Ul(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 le(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${n} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function vm(e,t,r,n,i,o){if(e.from)return xm(e,e.from,t,r,n,i,o);await lp(e.assignments,t,r,n);let a=await Ee(e.appId,t,n),s=Jc(e,a);Bt(e,ja(a,e.appId));let l,p=new Map,c=new Map;if(si(e)){let d=Bo(e),u=[...new Set([...d.fields,...s,...o??[]])],f=await _e(t.getRecords,d.app,d.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});c=Hi(f.records),p=c,l=Go(e,f.records,a).flatMap(E=>E.records)}else{let d=Br(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await _e(t.getRecords,d.app,d.query,u,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});c=Hi(f.records),p=c,l=$r(e,[...p.keys()],a).flatMap(E=>E.records)}else if(o){let u=await _e(t.getRecords,d.app,d.query,[...o],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});c=Hi(u.records),l=$r(e,[...c.keys()],a).flatMap(f=>f.records)}else{let u=await Ti(t.getRecords,d.app,d.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1});l=$r(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((d,u)=>d.id-u.id).map((d,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(d.id)],...e.assignments.map(f=>[f.field,d.record[f.field]?.value??""])]),preErrors:[],record:d.record,targetId:d.id,validationSnapshot:c.get(d.id),evaluationRow:Mm(p.get(d.id),e.appId),evaluationFieldTypes:ja(a,e.appId)}))}function Hi(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 Um(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 km(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 Se(`\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 Sr(n,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let p=l.$id?.value,c=Number(p);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,l)}}for(let a of n)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Jc(e,t){if(e.from)return[];let r=new Set;for(let n of us(e)){if(n.tableAlias!==null&&n.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${n.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(n.field!=="$id"&&!t.has(n.field))throw le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);r.add(n.field)}return[...r]}function Mm(e,t){if(!e)return{};let r=tt(e,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([n,i])=>[`APP${t}.${n}`,i])])}function ja(e,t){return new Map([...e,...[...e].map(([r,n])=>[`APP${t}.${r}`,n]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function xm(e,t,r,n,i,o,a){let s=await fp(e,t,r,i,o);Bt(e,s.evaluationTypes);let l=await Qc(e,t,r,n,i,o,a),p=await Ee(e.appId,r,i),c=Wo(e,l,p).flatMap(f=>f.records),d=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?Hi(l.map(f=>f.target)):new Map;return c.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:Ky(d.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Fm=Wc,Km=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Qc(e,t,r,n,i,o,a){let s=await Bm(e,t,r,i),l=await fp(e,t,r,i,o),p=[...new Set(e.assignments.filter(P=>P.value.type==="SOURCE_FIELD").map(P=>P.value.type==="SOURCE_FIELD"?P.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...p])],d=await $m(t,c,p,r,n,i,o),u=new Map,f=new Map;for(let P of d){if(!Object.prototype.hasOwnProperty.call(P,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let I=Ic(P[t.joinKeyField],s,"source");if(u.has(I))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${I}.`);u.set(I,P),f.set(I,String(P[t.joinKeyField]).trim())}if(u.size===0)return[];let E=n.maxRecords??1e4,R=[...new Set([...ay(e),...l.targetFields,...a??[]])],y=t.targetFilter===null?"":Br({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],g=new Set,h=0;for(let P of Sr([...f.values()],Fm)){let I=`${t.targetJoinField} in (${P.map(Ji).join(",")})`,_=y?`(${I}) and (${y})`:I,w=await _e(r.getRecords,e.appId,_,R,{maxRecords:E,parallel:n.fetchParallel??1,onLimit:"error"});if(h+=w.records.length,h>E)throw new Se(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let v of w.records){let O=v.$id?.value;if(typeof O!="string"||O==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(O)||(g.add(O),m.push(v))}}let A=[];for(let P of m){let I=P[t.targetJoinField]?.value,_=Ic(I,s,"target");if(_===null)continue;let w=u.get(_);w!==void 0&&A.push({target:P,source:w})}return A}async function Bm(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 $m(e,t,r,n,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let d of t)if(!c.columns.includes(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);return c.rows}let s=await Ee(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 c of r){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let d=c==="$id"?"RECORD_NUMBER":s.get(c);if(Km.has(d??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${d} (${c}).`)}return(await _e(n.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>tt(c,null))}function Ic(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=Te(e);if(n===null)throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a finite decimal: ${e}`);return JSON.stringify(n)}async function Cn(e,t,r,n,i){let o=await ls(e,t,r,n,i,1,!1,!1);if(o.result.errors.length>0){let d=o.result.errors[0];throw new Error(`DmlValidationError: ${d.$err_code} ${d.$err_message} (row=${d.$err_row}, field=${d.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(r.confirm&&a.length>0&&!await r.confirm(a.length,s))throw new Z(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let d=[];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)});d.push(f.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}if(e.type==="UPDATE"){let d=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<d.length;u+=100)await t.putRecords({app:e.appId,records:d.slice(u,u+100)});return{type:"UPDATE",updatedCount:d.length}}let l=a.filter(d=>d.mode==="create"),p=a.filter(d=>d.mode==="update").map(d=>({id:d.targetId,record:d.record})),c=0;for(let d=0;d<l.length;d+=100){let u=await t.postRecords({app:e.appId,records:l.slice(d,d+100).map(f=>f.record)});c+=u.ids.length}for(let d=0;d<p.length;d+=100)await t.putRecords({app:e.appId,records:p.slice(d,d+100)});return{type:"UPSERT",insertedCount:c,updatedCount:p.length}}async function Gm(e,t,r,n){if(e.applyBlocks?.length)return Nm(e,t,r,n);if(e.checkGroups?.length)return Cn(e,t,r,n);if(e.subtableCode)return uy(e,t,r,n);let i=await Me(e.appId,e.fields,t,n),o=await at(e.appId,e.fields,i,t,n),a=await Ee(e.appId,t,n),s=ai(e,a);Kt(s.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of s){let c=await t.postRecords(p);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Vm(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:lt},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Wm(e,t,r,n,i){if(!r.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=ju(e.source.sourceName,r.importSource);if(e.targets?.some(d=>d.kind==="SUBTABLE")){if(!e.validateOnly&&!r.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let D=new Set(e.targets.filter(H=>H.kind==="SUBTABLE").map(H=>H.subtableCode));if(e.replaceSubtables.some(H=>!D.has(H)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let H of e.targets.filter(ne=>ne.kind==="SUBTABLE"))if(!H.rowIdSourceHeader||!e.replaceSubtables.includes(H.subtableCode))throw new Error(`ArgumentError: CSV subtable ${H.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=e.targets,u=await Q(e.appId,t,n),f=d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=u.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await Ye(e.appId,t,n):void 0,R=await Fi(o,new Map),y=e.source.kind==="JSON"?Qu(e.source,R,d,r.maxRecords??1e4):Zu(e.source,R,d,e.replaceSubtables??[],r.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=nc(y,d,u,E,m);if(e.source.kind==="CSV")return Hm(e,y,g,u,t,r,i);ka(g,e.rejectLimit);let h=[...new Set(d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],A=xa(g.errors,h),P=[...h,...Ma],I=g.invalidParentRows.size,_={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-I,invalid:I,mutationCandidates:g.parents.filter(D=>D.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},w={type:"VALIDATION",operation:m,validatedRows:g.parents.length,validRows:g.parents.length-I,invalidRows:I,errorCount:A.length,columns:P,errors:A,importDetail:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&At(i,e.validationErrorTable,P,A,r.tempTableMaxRows??ht,new Map),e.validateOnly)return w;if(oc(y),g.errors.length>0&&!e.onErrorSkip){let D=g.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.");At(i,e.errorTable,P,A,r.tempTableMaxRows??ht,new Map)}let v=g.parents.filter(D=>D.valid),O=new Map(u.map(D=>[D.code,D.fieldType])),S=v.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=>O.get(ge)==="NUMBER"),H=new Set,ne=v.map(ge=>e.keyFields.map(Wt=>String(ge.top[Wt]?.value??"")));for(let ge of ne){let Wt=Ft(ge,D);if(H.has(Wt))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(Wt)}let je=await Nn(e.appId,e.keyFields,ne,t,r,O);ne.forEach((ge,Wt)=>{S[Wt]=Pn(je,ge)})}let C=d.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),L=new Map,N=S.filter(D=>D!==void 0);for(let D of Sr([...new Set(N)],100)){let H=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...C]});for(let ne of H.records){let je=Number(ne.$id?.value),ge=Number(ne.$revision?.value);Number.isFinite(je)&&L.set(je,{id:je,...Number.isFinite(ge)?{revision:ge}:{},record:ne})}}let U=ac(v,S,L),b={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:U.length,insertedParents:U.filter(D=>D.mode==="INSERT").length,updatedParents:U.filter(D=>D.mode==="UPDATE").length,hasDeletes:U.some(D=>D.tables.some(H=>H.deleteRows>0)),parents:U.map(D=>({parentRow:D.parentRow,mode:D.mode,...D.targetId===void 0?{}:{targetId:D.targetId},tables:D.tables}))};if(U.length>0){if(!r.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await r.confirm(U.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new Z(e.keyFields?"UPDATE":"INSERT",U.length)}let k=D=>new Map(Object.entries(D).map(([H,ne])=>[H,ne.value])),W=D=>ic(k(D.top),new Map([...D.subtables].map(([H,ne])=>[H,ne.map(je=>({values:k(je)}))]))),K=U.filter(D=>D.mode==="INSERT"),ee=U.filter(D=>D.mode==="UPDATE"),F=[];for(let D=0;D<K.length;D+=100){let H=await t.postRecords({app:e.appId,records:K.slice(D,D+100).map(W)});F.push(H.ids)}for(let D=0;D<ee.length;D+=100)await t.putRecords({app:e.appId,records:ee.slice(D,D+100).map(H=>({id:H.targetId,...H.revision===void 0?{}:{revision:H.revision},record:W(H)}))});return e.keyFields?{type:"UPSERT",insertedCount:F.flat().length,updatedCount:ee.length,affectedRows:U.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}:{type:"INSERT",createdIds:F,insertedCount:F.flat().length,affectedRows:U.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Ym(e,o,t,r,n,i);let a={appId:e.appId,fields:e.fields,select:Vm(),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};to.set(s,l);let p=d=>(l.audit&&Object.assign(d,{importAudit:l.audit}),d);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=await Xc(s,t,{...r,onLimitReached:"error"},n,i,1);return s.validationErrorTable&&i&&At(i,s.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??ht,hr.get(d)??new Map),p(d)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let d=await(s.type==="UPSERT_SELECT",Sc(s,t,r,n,i,1));return p(d)}let c=await(s.type==="UPSERT_SELECT"?ip(s,t,r,n,i):ep(s,t,r,n,i));return p(c)}async function Hm(e,t,r,n,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");sc(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=Ba(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],c=[...new Set(n.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],d=await Re(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let L of d){let N=Number(L.$id?.value),U=Number(L.$revision?.value);if(Number.isFinite(N)){u.set(N,{id:N,...Number.isFinite(U)?{revision:U}:{},record:L});for(let b of c){let k=L[b]?.value;if(Array.isArray(k)){for(let W of k)if(W.id){let K=f.get(W.id)??[];K.push({parentId:N,table:b}),f.set(W.id,K)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=r.parents.map((L,N)=>{let U=[...L.errors];for(let k of l.errors[N])U.push({operation:"UPDATE",parentRow:L.parentRow,field:k.field,code:k.code,message:k.message,sourceValues:t.records[N].top});let b=E[N];return b!==void 0&&!u.has(b)&&U.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:U.length===0,errors:U}}),y=lc(t.records,R,E,u,f),m=y.flatMap(L=>[...L.errors]),g=new Set(y.filter(L=>!L.valid).map(L=>L.parentRow)),h={...r,parents:R,errors:m,invalidParentRows:g};ka(h,e.rejectLimit);let A=y.filter(L=>L.valid),P=y.flatMap(L=>L.tables),I=(L,N)=>P.filter(U=>U.table===L).reduce((U,b)=>U+Number(b[N]),0),_=Object.fromEntries(p.map(L=>[L,{existingRows:I(L,"existingRows"),inputRows:I(L,"inputRows"),updateRows:I(L,"updateRows"),addRows:I(L,"addRows"),deleteRows:I(L,"deleteRows"),rowIdNotFound:I(L,"rowIdNotFound")}])),w={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(L=>L.tables.some(N=>N.deleteRows>0)),totalDeleteRows:A.flatMap(L=>L.tables).reduce((L,N)=>L+N.deleteRows,0),rowIdNotFound:A.flatMap(L=>L.tables).reduce((L,N)=>L+N.rowIdNotFound,0),invalidParents:g.size,parents:A.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},v=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],O=xa(m,v),S=[...v,...Ma];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&At(a,e.validationErrorTable,S,O,o.tempTableMaxRows??ht,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:O.length,columns:S,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:g.size,mutationCandidates:A.length},tables:_,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:w.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.");At(a,e.errorTable,S,O,o.tempTableMaxRows??ht,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:w}))throw new Z("UPDATE",A.length)}let C=L=>new Map(Object.entries(L).map(([N,U])=>[N,U.value]));for(let L of A){let N=Fa(C(L.top),new Map([...L.subtables].map(([U,b])=>[U,b.map(k=>({...k.rowId?{rowId:k.rowId}:{},values:C(k.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:A.length,affectedRows:A.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}async function Ym(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 Me(e.appId,e.fields,r,i),s=await at(e.appId,e.fields,a,r,i),l=await Fi(t,new Map),p=Da(e.source,l,n.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=p.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let d=Ba(c,e.recordNumberSourceHeader),u=new Set,f=[...new Set(d.normalized.filter(w=>w!==null))];for(let w=0;w<f.length;w+=100){let v=f.slice(w,w+100),O=await r.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let S of O.records){let C=S.$id?.value;typeof C=="string"&&C!==""&&u.add(C.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(w=>[w.code,w])),R=new Map(e.fields.map(w=>[w,E.get(w)?.fieldType??"SINGLE_LINE_TEXT"])),y=p.rows.map((w,v)=>{let O=d.normalized[v],S=[...p.importRowErrors?.[v]??[],...d.errors[v]];return O!==null&&!u.has(O)&&S.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${O} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...O!==null&&u.has(O)?{targetId:Number(O)}:{},payload:new Map([[e.recordNumberSourceHeader,c[v]],...e.fields.map(C=>[C,w[C]??""])]),preErrors:S,record:{},evaluationRow:w,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],g=na(y,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),h=[...m,...dr],A={type:"VALIDATION",operation:"UPDATE",validatedRows:y.length,validRows:y.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:h,errors:g.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&&At(o,e.validationErrorTable,h,g.errors,n.tempTableMaxRows??ht,new Map),A}if(!e.onErrorSkip&&g.invalidRows>0){let w=g.errors[0];throw new Error(`DmlValidationError: ${w.$err_code} ${w.$err_message} (row=${w.$err_row}, field=${w.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(At(o,e.errorTable,h,g.errors,n.tempTableMaxRows??ht,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new Qi(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let P=y.filter(w=>!g.invalidRowNumbers.has(w.rowNumber));if(n.confirm&&!await n.confirm(P.length,"UPDATE"))throw new Z("UPDATE",P.length);let I=P.map(w=>({id:w.targetId,record:w.record}));for(let w=0;w<I.length;w+=100)await r.putRecords({app:e.appId,records:I.slice(w,w+100)});let _={type:"UPDATE",updatedCount:I.length,...e.onErrorSkip?{affectedRows:I.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(_,{insertedCount:0,importAudit:p.importAudit}),_}async function jm(e,t,r,n,i,o){let a=to.get(e);if(!a){let R=i&&i.size>0?await xt(e.select,t,r,i,n,!0):await St(e.select,t,r,n,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:me.get(R)}}let s=await Fi(a.handle,a.cache),l=r.maxRecords??1e4,p=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:p.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),d=a.source.kind==="JSON"?_a(a.source,s,c,l):Da(a.source,s,l,e.fields,o);if(a.audit=d.importAudit,a.source.kind==="JSON"||!a.source.projection)return d;let u=uc(a.source.projection),f=new Map(i??[]);f.set(Ka,d);let E=await xt(u,t,{...r,onLimitReached:"error"},f,n,!0);return{rows:E.rows,columns:E.columns,columnMeta:me.get(E)}}var cs={materialize:jm};function Zc(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 ep(e,t,r,n,i){if(e.checkGroups?.length)return Cn(e,t,r,n,i);let o=await Me(e.appId,e.fields,t,n),a=await at(e.appId,e.fields,o,t,n),s=await cs.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(Zc(s),p.length!==e.fields.length){let f=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(r.confirm&&!await r.confirm(l.length,"INSERT"))throw new Z("INSERT",l.length);let c=await Ee(e.appId,t,n),d=l.map((f,E)=>{let R={};return e.fields.forEach((y,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(y))return;let g=f[p[m]]??"";R[y]={value:qc(g,c.get(y))}}),R});d.forEach(f=>Kt([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<d.length;f+=100){let E=d.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function wc(e,t,r,n,i){if(e.applyBlocks?.length)return tp(e,t,r,n);if(e.checkGroups?.length&&ot(e.where)){let E=await Me(e.appId,e.assignments.map(y=>y.field),t,n);await at(e.appId,e.assignments.map(y=>y.field),E,t,n);let R=await Ee(e.appId,t,n);return Jc(e,R),Bt(e,ja(R,e.appId)),await mr(e,t,n),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Cn(e,t,r,n,i);if(e.subtableCode)return await mr(e,t,n),cy(e,t,r,n);let o=await Me(e.appId,e.assignments.map(E=>E.field),t,n),a=e.assignments.map(E=>E.field),s=await at(e.appId,a,o,t,n);if(await mr(e,t,n),ot(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return oy(e,e.from,t,r,n,i);let l=r.maxRecords??1e4;await lp(e.assignments,t,r,n);let p=await Ee(e.appId,t,n);if(si(e)){let E=Bo(e),y=(await _e(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:r.fetchParallel??1})).records,m=Go(e,y,p);if(Kt(m.flatMap(g=>g.records.map(h=>h.record)),a,o,s),r.confirm&&!await r.confirm(y.length,"UPDATE"))throw new Z("UPDATE",y.length);for(let g of m)await t.putRecords(g);return{type:"UPDATE",updatedCount:y.length}}let c=Br(e),u=(await Ti(t.getRecords,c.app,c.query,{maxRecords:l,parallel:r.fetchParallel??1})).ids,f=$r(e,u,p);if(Kt(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 tp(e,t,r,n,i=1){if(!e.validateOnly&&r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Xe(e.where))return qm(e,t,r,n,i);let o=await Q(e.appId,t,n),a=Ze(e,o),s=ui(e,o),l=Xo(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(p.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(p.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let c=Number(p.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);fi(p.records[0]);let d=Jl({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),u=Fe(o,e.assignments.map(P=>P.field)),f=Lt(d.postImage,u)?await Ye(e.appId,t,n):void 0,E=_t(d.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=Le(r.dmlMaxRows,"dmlMaxRows",st),y=Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe),m=d.parentRows>R||d.changedSubtableRows>y;if(e.validateOnly){let P=Jr({plans:[d],records:Hr(d).records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:y,wouldExceed:m}}),I={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:Tn(P.branches[0]),guards:In(P.branches[0]),deletedRows:{total:d.tables.reduce((_,w)=>_+w.deletedRows,0),parentRows:d.tables.some(_=>_.deletedRows>0)?1:0},diagnostic:P};return hr.set(I,oo(E.columns,o,e.appId)),I}if(d.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${d.parentRows}) exceed dmlMaxRows (${R}).`);if(d.changedSubtableRows>y)throw new Error(`ArgumentError: APPLY changed subtable rows (${d.changedSubtableRows}) exceed dmlMaxSubtableRows (${y}).`);let g=pi(d,E.normalizedRecord),h=Hr(g),A=Jr({plans:[g],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:y,wouldExceed:m}});if(r.confirm){let P=io(A,!1);if(!await r.confirm(d.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:P,applyDiagnostic:A}))throw new Z("UPDATE",d.parentRows)}return await t.putRecords(h),{type:"UPDATE",updatedCount:d.parentRows,diagnostic:Ne(A,{successfulChunks:1,successfulParents:d.parentRows})}}async function qm(e,t,r,n,i){let o=Le(r.dmlMaxRows,"dmlMaxRows",st),a=Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Oe),s=await Q(e.appId,t,n),l=Ze(e,s),p;if(Zi(e))p=await Qm(e,t,r,s,n);else{let f=ui(e,s),E=Br(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 c=await yi({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});if(e.validateOnly)return ny(e,c,s);js("phase15b",e);let d=Jr(c);if(r.confirm){let f=io(d);if(!await r.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:d}))throw new Z("UPDATE",c.guards.parentRows)}let u=await yu(c,t,d);return{...u,diagnostic:Ne(d,u)}}function Zi(e){return(e.applyBlocks?.length??0)>0&&!Xe(e.where)&&(ut(e.where)||ae(e.where))}function zm(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Zi(t)&&ae(t.where)}var Xm=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
8
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let c="",f=!1;for(;r<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&nt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){c+=E;continue}r>=e.length&&nt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
+ `,r:"\r",t:" "};if(R in m){c+=m[R];continue}R!=="u"&&nt(`has invalid escape \\${R}`,r-2,n,Math.max(1,i-2));let y=e.slice(r,r+4);/^[0-9a-fA-F]{4}$/.test(y)||nt("has invalid unicode escape",r,n,i);for(let h=0;h<4;h++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(r,r+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(r+2,r+6)))&&nt("has an unpaired high surrogate",r,n,i),o(),o();let h=e.slice(r,r+4);for(let O=0;O<4;O++)o();let T=Number.parseInt(h,16);(T<56320||T>57343)&&nt("has an invalid surrogate pair",r-4,n,Math.max(1,i-4)),c+=String.fromCodePoint(65536+(g-55296<<10)+T-56320)}else g>=56320&&g<=57343?nt("has an unpaired low surrogate",r-4,n,Math.max(1,i-4)):c+=String.fromCharCode(g)}f||nt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:c,...l});continue}let p=e.slice(r),u=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(p)?.[0];if(u){for(let c=0;c<u.length;c++)o();t.push({kind:"number",lexeme:u,...l});continue}let d=/^(true|false|null)/.exec(p)?.[0];if(d){for(let c=0;c<d.length;c++)o();t.push({kind:"literal",value:d==="true"?!0:d==="false"?!1:null,...l});continue}nt(`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 Gi(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Vi(e){if(e.byteLength===0)throw new M("JSON source is empty.");let t=nc(rc(e)),r=0,n=(p,u=t[r])=>{throw new M(`JSON ${p} (offset=${u.offset}, line=${u.line}, column=${u.column}).`)},i=(p,u)=>p.kind==="punct"&&p.value===u,o=p=>{let u=t[r];(u.kind!=="punct"||u.value!==p)&&n(`expected ${p}; found ${Gi(u)}`,u),r++},a=()=>{let p=t[r++];if(p.kind==="string")return p.value;if(p.kind==="number")return{kind:"number",lexeme:p.lexeme};if(p.kind==="literal")return p.value;if(p.kind==="punct"&&p.value==="{"){let u=new Map;if(i(t[r],"}"))return r++,u;for(;;){let d=t[r++];if(d.kind!=="string")return n(`object key must be a string; found ${Gi(d)}`,d);let c=d.value;u.has(c)&&n(`duplicate key ${JSON.stringify(c)}`,d),o(":"),u.set(c,a());let f=t[r];if(i(f,"}")){r++;break}o(",")}return u}if(p.kind==="punct"&&p.value==="["){let u=[];if(i(t[r],"]"))return r++,u;for(;;){u.push(a());let d=t[r];if(i(d,"]")){r++;break}o(",")}return u}return n(`expected a value; found ${Gi(p)}`,p)},s=a();t[r].kind!=="eof"&&n(`has trailing data; found ${Gi(t[r])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:n("root must be an object or array.",t[0]);if(l.length===0)throw new M("JSON source contains no records.");return l.forEach((p,u)=>{if(!(p instanceof Map))throw new M(`JSON record ${u+1} must be an object.`)}),l}var xR=new Set(["CHECK_BOX","MULTI_SELECT"]),ic=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ve(e,t,r){throw new M(`JSON field validation failed (row=${e}, field=${t}): ${r}`)}function FR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function KR(e,t,r){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ve(r,t.code,"boolean is not accepted."),FR(e)){t.fieldType==="NUMBER"&&Ve(r,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ve(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)||Ve(r,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ve(r,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ve(r,t.code,"unsupported value type."),!xR.has(t.fieldType)&&!ic.has(t.fieldType)&&Ve(r,t.code,"array is accepted only for multi-value fields.");let n=e.map(i=>(typeof i!="string"&&Ve(r,t.code,"array elements must be strings."),i));return new Set(n).size!==n.length&&Ve(r,t.code,"array elements must not contain duplicates."),ic.has(t.fieldType)?JSON.stringify(n.map(i=>({code:i}))):JSON.stringify(n)}function va(e,t,r,n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let i=Vi(t.bytes);if(i.length>n)throw new M(`source rows (${i.length}) exceed maxRecords (${n}).`);let o=new Map(r.map(l=>[l.code,l]));if(o.size!==r.length)throw new M("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,p)=>{for(let c of l.keys())o.has(c)||Ve(p+1,c,"unknown key (not declared in INTO).");let u={},d=new Set;for(let c of r)l.has(c.code)&&(d.add(c.code),u[c.code]=KR(l.get(c.code),c,p+1));a.push(u),s.push(d)}),{rows:a,columns:r.map(l=>l.code),columnMeta:new Map(r.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Ua(e,t,r,n,i,o){let a=$i(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>r)throw new M(`source rows (${a.rows.length}) exceed maxRecords (${r}).`);if(e.mappingMode==="BY_NAME"){if(!n||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(n).size!==n.length)throw new M("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,g)=>[y,g]));for(let y of n)if(!l.has(y))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let p=new Map(i.map(y=>[y.code,y])),u=new Set(n);if(o&&u.has(o))throw new M("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],c=[],f=y=>a.rows.filter(g=>g[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,g]of a.columns.entries()){if(u.has(g)||g===o)continue;let h=p.get(g);if(h)d.push({column:g,reason:E(h),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)c.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new M(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of n){let g=p.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let g=[],h={};for(let T of n){let O=y[l.get(T)];try{h[T]=tc(O,p.get(T)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof cn))throw b;h[T]=O,g.push({field:T,code:b.code,message:b.message})}}return R.push(g),h}),columns:[...n],columnMeta:new Map(n.map(y=>[y,{fieldType:p.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...n],ignoredKnownColumns:d,ignoredUnknownColumns:c}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((p,u)=>[p,l[u]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var pn=(e,t,r)=>{throw new M(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${r}`)};function oc(e,t,r,n,i=n){if(t.encoding&&t.encoding!=="utf8")throw new M("JSON source is UTF-8 only.");let o=Vi(t.bytes);if(o.length>n)throw new M(`source parent rows (${o.length}) exceed maxRecords (${n}).`);let a=new Map(r.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==r.length)throw new M("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,p)=>{let u=p+1;for(let E of l.keys())a.has(E)||pn(u,E,"unknown key (not declared in INTO).");let d=new Map,c=new Map,f=new Set;for(let E of r){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&pn(u,R,"object is not accepted for a top-level field."),d.set(R,m);continue}Array.isArray(m)||pn(u,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((h,T)=>{h instanceof Map||pn(u,R,`childRow=${T+1} must be an object.`);let O=h;for(let b of O.keys())y.has(b)||pn(u,b,`unknown child key in subtable ${R} at childRow=${T+1}.`);if(s++,s>i)throw new M(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:T+1,values:O}});c.set(R,g)}return{rowNumber:u,top:d,subtables:c,replacementTables:f}})}}function ac(e,t,r,n,i,o){let a=$i(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new M('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((c,f)=>[c,f]));if(o&&!s.has(o))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=r.filter(c=>c.kind==="FIELD"),p=r.filter(c=>c.kind==="SUBTABLE");for(let c of l)if(!s.has(c.field))throw new M(`ERR_IMPORT_MISSING_COLUMN: required header "${c.field}" is missing.`);for(let c of p){if(!c.rowIdSourceHeader||!s.has(c.rowIdSourceHeader))throw new M(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${c.subtableCode} is missing.`);for(let f of c.children)if(!s.has(f))throw new M(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let u=[],d;if(a.rows.forEach((c,f)=>{let E=f+2,R=c[0];if(R!==""&&R!=="*")throw new M(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new M(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:u.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,c[s.get(m.field)]])),subtables:new Map(p.map(m=>[m.subtableCode,[]])),replacementTables:new Set(n),...o?{recordNumberSourceValue:c[s.get(o)]}:{}},u.push(d)}else if(d){for(let m of l){let y=c[s.get(m.field)];if(y!==""&&y!==d.top.get(m.field))throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=c[s.get(o)];if(m!==""&&m!==d.recordNumberSourceValue)throw new M(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new M(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of p){let y=c[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(T=>[T,c[s.get(T)]]));if(y===""&&[...g.values()].every(T=>T===""))continue;let h=d.subtables.get(m.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:g})}}),u.length===0)throw new M("CSV has no parent rows.");return{records:u}}var BR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),$R=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function xa(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function cc(e,t,r,n,i){let o=new Map(r.filter(c=>!c.inSubtable).map(c=>[c.code,c])),a=new Map;for(let c of r)if(c.inSubtable&&c.subtableCode){let f=a.get(c.subtableCode);f||a.set(c.subtableCode,f=new Map),f.set(c.code,c)}let s=t.filter(c=>c.kind==="FIELD"),l=t.filter(c=>c.kind==="SUBTABLE");for(let c of s)sc(c.field,o.get(c.field),void 0);for(let c of l){let f=o.get(c.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${c.subtableCode} does not exist.`);let E=a.get(c.subtableCode)??new Map;for(let R of c.children)sc(R,E.get(R),c.subtableCode)}let p=new Map(l.map(c=>[c.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),u=e.records.map(c=>GR(c,s,l,o,a,n,i,p)),d=u.flatMap(c=>[...c.errors]);return{parents:u,errors:d,invalidParentRows:new Set(u.filter(c=>!c.valid).map(c=>c.parentRow)),tableCounts:p}}function GR(e,t,r,n,i,o,a,s){let l=[],p={};for(let c of t)e.top.has(c.field)&&Ma(e.top.get(c.field),n.get(c.field),o,p,c.field,l,ka(e,a,c.field));let u={};if(a==="INSERT")for(let c of n.values())c.fieldType==="SUBTABLE"||c.writable===!1||e.top.has(c.code)||lc(c,o,u,l,ka(e,a,c.code));let d=new Map;for(let c of r){if(!e.subtables.has(c.subtableCode))continue;let f=s.get(c.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(c.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(c.subtableCode);for(let h of c.children){let T=g.get(h),O=ka(e,a,h,c.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?Ma(R.values.get(h),T,o,y,h,l,O):lc(T,o,y,l,O)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}d.set(c.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:p,subtables:d,replacementTables:e.replacementTables,errors:l}}function sc(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&&$R.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${r?`child ${r}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function lc(e,t,r,n,i){let o=Ot(e.defaultValue)?"":e.defaultValue;Ma(o,e,t,r,e.code,n,i,!Ot(e.defaultValue))}function Ma(e,t,r,n,i,o,a,s=!1){let l=VR(e),p=Se(l,t,r);p.ok?n[i]={value:WR(l,t)?l:p.value}:o.push({...a,code:p.code,message:s?`\u65E2\u5B9A\u5024: ${p.message}`:p.message})}function VR(e){return uc(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:uc(t)?t.lexeme:t):e}function uc(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function WR(e,t){return BR.has(t.fieldType)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)}function ka(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 Fa=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Ka(e,t,r=1){return e.map(n=>{let i={};for(let o of t)i[o]=n.sourceValues.get(o)==null?"":HR(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 HR(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 pc(e,t){return Ba(e,t,"DROP")}function dc(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 fc(e,t,r){return e.map((n,i)=>{let o=t[i],a=o===void 0?void 0:r.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...n.subtables].map(([l,p])=>{let u=a?.record[l]?.value,d=Array.isArray(u)?u.length:0;return{table:l,existingRows:d,inputRows:p.length,addRows:p.length,deleteRows:d}});return{parentRow:n.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:n.top,subtables:n.subtables,tables:s}})}function YR(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function Ec(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 Rc(e,t,r,n,i){return t.map((o,a)=>{let s=e[a],l=r[a],p=l===void 0?void 0:n.get(l),u=[...o.errors];if(!p||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:u};let d=new Map,c=[];for(let f of o.replacementTables){let E=YR(p.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,h=0,T=0,O=m.map((b,L)=>{let w=y[L]??{};return b.rowId&&R.has(b.rowId)?(g++,{rowId:b.rowId,record:w}):(b.rowId&&((i.get(b.rowId)??[]).some(C=>C.parentId!==l||C.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),T++),h++,{record:w})});d.set(f,O),c.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:h,deleteRows:E.length-g,rowIdNotFound:T})}return{parentRow:o.parentRow,targetId:l,...p.revision===void 0?{}:{revision:p.revision},valid:u.length===0,top:o.top,subtables:d,tables:c,errors:u}})}var $a="#__import_source";function mc(e){return{...e,from:{appId:0,alias:null,cteName:$a}}}function jR(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Ga(e,t){let r=e.map(jR),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 qR="\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",yr=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"}},ye=new WeakMap;function Mc(e){return ye.get(e)}var hr=new WeakMap,no=new WeakMap,yc=new WeakMap,zR=1;function XR(e,t){if(t)return t;let r=yc.get(e);return r||(r=`client:${zR++}`,yc.set(e,r)),r}async function Ja(e,t,r={}){let n=Date.now(),i=XR(t,r.cacheContext),o=Dy(e,r.enableImport===!0),a=JR(),s=QR(t,a),l={aborted:!1},p=ZR(s,l,!em(o)),u=await rm(o,p,r,i);a.elapsedMs=Date.now()-n;let d={...tm(u,l),metrics:a};if(u.type==="SELECT"){let c=ye.get(u);c&&ye.set(d,c)}return d}function JR(){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 QR(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 ZR(e,t,r){return{...e,getRecords:async n=>{let i=await e.getRecords(n);if(i.searchAborted&&(t.aborted=!0,r))throw new yr;return i}}}function em(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function tm(e,t){if(!t.aborted||e.type!=="SELECT")return e;let r=new Set(e.warnings??[]);return r.add(qR),{...e,warnings:[...r]}}async function Qa(e,t,r){return Qu(e,{select:n=>An(n,t,r),dml:n=>Fc(n,t,r),prefilterDecomposition:async n=>{if(n.where===null)return null;let i=await Ar(n,t,r);return Da(n,i)}})}async function rm(e,t,r,n){let i=await Qa(e,t,n);e.type!=="EXPLAIN"&&Zu(i);let o=Va(e);if(o!==null&&!cy(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Vn("phase15b",e),qs("phase15b",e),sr(e),e.type!=="EXPLAIN"&&await pm(e,t,n),e.type==="IMPORT")return oy(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 _c(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 np(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 im(e,t,r,n);case"SELECT":return St(e,t,r,n,void 0,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"UNION":return zc(e,t,r,n,r.captureColumnMeta===!0,r.captureColumnMeta===!0);case"WITH":return Cm(e,t,r,n,void 0,r.captureColumnMeta===!0);case"INSERT":return ny(e,t,r,n);case"INSERT_SELECT":return sp(e,t,r,n);case"UPSERT":return Iy(e,t,r,n);case"UPSERT_SELECT":return pp(e,t,r,n);case"UPDATE":return _c(e,t,r,n);case"DELETE":return Ty(e,t,r,n);case"REORDER":return Oy(e,t,r,n);case"SHOW_APPS":return dp(t);case"DESCRIBE":return fp(e,t,n);case"EXPLAIN":return xy(e,t,n,r.maxRecords??1e4,r.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Le(r.dmlMaxRows,"dmlMaxRows",st):st,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te):Te,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return sm(e,t,r,n)}}var Za=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],es=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ts(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 nm(e=!1){let t=e?es:Za;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 im(e,t,r,n){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return om(e,t,r,n)}async function om(e,t,r,n){let i=await J(e.appId,t,n),o=new Map(i.filter(I=>!I.inSubtable).map(I=>[I.code,I])),a=new Set(i.filter(I=>I.inSubtable).map(I=>I.code)),s=aa(e,i),l=e.checkGroups??[],p=cr(l);for(let I of p){if(I.field!=="$id"&&!o.has(I.field)&&!a.has(I.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${I.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(I.field!=="$id"&&!o.has(I.field)&&a.has(I.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${I.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let u=new Map([...o].map(([I,U])=>[I,U.fieldType]));u.set("$id","RECORD_NUMBER"),Bt(e,u);let d=ts(e.where),c=[...new Set(["$id",...s.map(I=>I.subtableCode??I.field.code),...d,...p.map(I=>I.field)])];for(let I of d){if(I!=="$id"&&!o.has(I)&&!a.has(I))throw new Error(`ArgumentError: WHERE field ${I} does not exist in APP${e.appId}.`);if(I!=="$id"&&!o.has(I)&&a.has(I))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${I} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let f=s.some(I=>I.field.fieldType==="NUMBER")?await Ye(e.appId,t,n):void 0,E=I=>I.field==="$id"?z({fieldType:"__ID__"}):o.get(I.field)?.semantics??(o.has(I.field)?z(o.get(I.field)):void 0),R=rt(e.where,E);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(R)}).`);let m=new Map([...o].map(([I,U])=>[I,U.fieldType])),y=new Map([...o.values()].flatMap(I=>I.optionOrder?[[I.code,new Set(Object.keys(I.optionOrder))]]:[])),g=e.where===null?null:R.capability==="EXACT_PUSHDOWN"?e.where:rr(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:y,allowKlike:!1}),h=g===null?"":V(g),O=(await Re(t.getRecords,e.appId,h,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(I=>({id:String(I.$id?.value??""),record:I,flat:tt(I,null)})).filter(I=>e.where===null||q(e.where,I.flat,U=>u.get(U.field))),b=[],L=new Map,w=new Map,_=new Set,C=0,v=I=>{if(_.add(I.id),C+=1,e.summary){let K=JSON.stringify([I.id,I.subtable??"",I.field,I.code]),te=w.get(K);te?te.$err_count=String(Number(te.$err_count)+1):w.set(K,{$id:I.id,$err_subtable:I.subtable??"",$err_field:I.field,$err_code:I.code,$err_count:"1"});return}let U=JSON.stringify([I.id,I.subtable??"",I.field,I.code,I.message]),B=L.get(U);B?(B.$err_count=String(Number(B.$err_count)+1),I.subrow!==void 0&&(B.$err_subrow=`${B.$err_subrow},${I.subrow}`,B.$err_subrow_id=`${B.$err_subrow_id},${I.subrowId??""}`)):L.set(U,{$id:I.id,$err_field:I.field,$err_code:I.code,$err_message:I.message,$err_value:I.value,$err_subtable:I.subtable??"",$err_subrow:I.subrow===void 0?"":String(I.subrow),$err_subrow_id:I.subrowId??"",$err_count:"1"})},k=s.filter(I=>!I.subtableCode),A=new Map;for(let I of s){if(!I.subtableCode)continue;let U=A.get(I.subtableCode)??[];U.push(I),A.set(I.subtableCode,U)}for(let I of O){for(let U of k){let B=I.record[U.field.code]?.value,K=Se(B,U.field,f);K.ok||v({id:I.id,field:U.field.code,code:K.code,message:K.message,value:qr(B,U.field.fieldType)})}for(let[U,B]of A){let K=I.record[U]?.value;if(Array.isArray(K))for(let te=0;te<K.length;te++){let F=K[te];for(let D of B){let H=F.value?.[D.field.code]?.value,ie=Se(H,D.field,f);if(!ie.ok){let je=yi(U,te,F);v({id:I.id,field:D.field.code,code:ie.code,message:ie.message,value:qr(H,D.field.fieldType),...je})}}}}for(let U of oi(l,I.flat,B=>u.get(B.field)))v({id:I.id,field:"",code:"ERR_CHECK",message:U.message,value:""})}if(e.summary)b.push(...w.values());else for(let I of L.values()){let U=Number(I.$err_count);I.$err_subtable!==""&&U>=2&&(I.$err_message=`${I.$err_message}\uFF08${U}\u884C: ${I.$err_subrow}\uFF09`),b.push(I)}let N={type:"SELECT",columns:[...e.summary?es:Za],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:C}};return ye.set(N,nm(e.summary===!0)),N}var ht=1e4;function At(e,t,r,n,i,o){let a=e.get(t);if(a&&(a.columns.length!==r.length||a.columns.some((l,p)=>l!==r[p])||!am(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 am(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||!Zn(i.semantics,n.semantics))return!1}return!0}function Va(e){if(Array.isArray(e)){for(let t of e){let r=Va(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=Va(r);if(n!==null)return n}}return null}var hn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Rr=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function sm(e,t,r,n,i){let o=await Wi(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 Wi(e.low,t,r,n,i),p=await Wi(e.high,t,r,n,i);if(!Nt(">=",o,l,a)||!Nt("<=",o,p,a))throw new hn(`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 Wi(e.right,t,r,n,i);if(!Nt(e.op,o,s,a))throw new hn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Wi(e,t,r,n,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return W(e);case"STRING":return e.value;case"ARITH":return String(Wa(e));case"SCALAR_SUBQUERY":try{return await lm(e.query,t,r,n,i)}catch(o){throw o instanceof Rr?new hn(o.message):o}}}async function lm(e,t,r,n,i){let{query:o,probed:a}=um(e),s=await yn(o,t,r,n,i);if(s.columns.length!==1)throw new Rr(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Rr("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 Rr(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function um(e){return Q(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 Wa(e){if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=Wa(e.left),r=Wa(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 Ar(e,t,r,n,i=!1){let o=[e.from,...e.joins.map(c=>c.table)],a=i||Be(e.where)?[...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))]:[],s=new Map(await Promise.all(a.map(async c=>{let f=await J(c,t,r);return[c,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,p=c=>{if(Array.isArray(c)){c.forEach(p);return}if(c===null||typeof c!="object")return;let f=c;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(p)}};p(e.where),p(e.having);for(let c of e.columns)c.type==="CASE_COL"&&p(c.expr);let u=new Map;await Promise.all([...s].map(async([c,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await cs(c,t,r);R&&u.set(c,R)}));let d=(c,f,E)=>{if(f==="$id")return ur(z({fieldType:"__ID__"}),c.appId,"$id");if(E&&c.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(c.appId)?.get(fe(c,f));if(!R)return;let m=R.semantics??z(R),y=R.fieldType==="STATUS"&&u.has(c.appId)?{...m,optionOrder:u.get(c.appId)}:m;return ur(y,c.appId,R.code)};return c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return d(e.from,c.field,!1);let E=o.find(R=>Oe(R)===c.tableAlias);return E?E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(c.field)?.semantics??x("string"):d(E,c.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?n?.get(e.from.cteName)?.columnMeta?.get(c.field)?.semantics??x("string"):d(e.from,c.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?n?.get(E.cteName)?.columnMeta?.get(c.field)?.semantics:d(E,c.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Yi(E,c.field)!==void 0))return f.length>1?x("string"):void 0}}function rs(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=>Be(i.condition))?!0:Object.values(n).some(t)};return e.columns.some(t)}function xc(e,t){let r=new Map;for(let n of e.columns){if(!("alias"in n)||!n.alias)continue;let i;n.type==="FIELD"?i=t(ke(n.field)):n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?i=x("number"):n.type==="AGGREGATE"?n.func==="MIN"||n.func==="MAX"||n.func==="MODE"?n.arg.type!=="WILDCARD"&&(i=ss(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=Mt(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 An(e,t,r,n){if(e.where===null)return rt(null,()=>{});let i=await Ar(e,t,r,n);return rt(e.where,i)}function Ut(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 zi(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Fc(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let n=Be(e.where)?await J(e.appId,t,r):[],i=new Map(n.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?rt(null,()=>{}):rt(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 mr(e,t,r){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let n=await Fc(e,t,r);if(n.capability!=="EXACT_PUSHDOWN")throw new j(`WHERE predicate cannot be represented by kintone REST (${Ut(n)})`)}async function St(e,t,r,n,i,o=!1,a=!1){let s;if(await io(e,t,n,i),Em(e))return s=ym(e),o&&ye.set(s,await Ya(e,s.columns,t,n,i,a)),s;let l=await ns(e,t,n,i);await Ep(e,t,r,n,i);let p=await An(e,t,n,i);if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(p)}).`);let u;if(p.capability==="SUPERSET_PREFILTER"){let m=await Ar(e,t,n,i),y=Da(e,m);y.eligible&&_a(e,y)&&(u=y.plan)}let d=be(e),c=p.capability==="EXACT_PUSHDOWN"?d:"FULL_SCAN",f=await Tn(e,t,n,i),E=zi(e)?(e.orderMode==="KINTONE_NATIVE"?en:Zr)({stmt:e,staticMode:c,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:f.semantics,maxRecords:r.maxRecords??1e4,hasKlike:ae(e.where)}):null;await hm(e,E?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":c,t,n);let R=Kc(e,r,E);try{c==="SIMPLE"?s=await gm(e,t,R.effectiveOptions,n,E,f):s=await Nm(e,t,R.effectiveOptions,n,i,p.capability==="EXACT_PUSHDOWN",f,u,l)}catch(m){Bc(R,m)}return o&&ye.set(s,await Ya(e,s.columns,t,n,i,a)),s}async function ns(e,t,r,n){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(p=>p.table)],o=await Promise.all(i.map(async p=>{if(p.cteName!==null){let f=n?.get(p.cteName);if(!f)throw new Error(`InternalError: materialized schema ${p.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let u=await J(p.appId,t,r);if(!p.subtableCode)return{kind:"APP",fieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)};let d=u.filter(f=>f.inSubtable&&f.subtableCode===p.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(d.length>0?d:u.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Nu(e,(p,u)=>o[u]),s=e.groupBy,l=Cu(s,e.columns,a);return cm(e,s,l),l}function cm(e,t,r){let n=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(n)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;r.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],p=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let u=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${u}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var Sn=new WeakMap;async function pm(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 io(o,t,r);for(let s of Object.values(a))await i(s)};await i(e)}async function dm(e,t,r,n){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let d=await J(u,t,r);return[u,new Map(d.map(c=>[c.code,c]))]}))),s=(u,d)=>{if(d==="$id")return"$id";let c=fe(u,d);return a.get(u.appId)?.has(c)?c:null},l=(u,d)=>{if(u.cteName===null)return!1;let c=n?.get(u.cteName);return c?c.columns.includes(d):!0},p=(u,d,c,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,c.field)!==null).length,R=i.some(y=>l(y,c.field)),m=Oe(u);return{canonicalId:`source:${d}:APP${u.appId}:${f}`,directKey:c.tableAlias&&m?`${c.tableAlias}.${c.field}`:c.field,unqualifiedBridgeKey:E===1&&!R?c.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let f=i.findIndex(m=>Oe(m)===u.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,u.field);if(R===null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${E.appId}.`);return p(E,f,u,R)}let d=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,u.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),c=i.filter(f=>l(f,u.field));if(d.length+c.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(d.length===1&&c.length===0){let f=d[0];return p(f.table,f.tableIndex,u,f.code)}throw c.length===1?new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function io(e,t,r,n){Sn.delete(e);let i=Q(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await dm(e,t,r,n),s=gl(e,a,ml);s&&Sn.set(e,s)}function fm(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 Kc(e,t,r){let n=r?.kind==="CANONICAL_REST_TOP_N"||r?.kind==="KORDER_NATIVE"||r?.kind==="KORDER_CURSOR"?wt({...e,orderBy:[]}):wt(e),i=n.size>0&&t.onLimitReached==="truncate";return{reasons:n,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Bc(e,t){throw e.reasons.size>0&&t instanceof Ie?new Ie(fm(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function gc(e,t){try{return await t()}catch(r){Bc(e,r)}}function ot(e){return e?.type==="BOOLEAN"&&e.value===!1}function Em(e){return e.from.appId===0&&e.from.cteName===lt}function Xi(e){return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Xi(e.left)||Xi(e.right):e.type==="STRING_FUNC"?is(e):!1}function Rm(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:fn(e)}function fn(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?is(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?fn(e.left)||fn(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"?Xi(r):fn(r))):!1}function is(e){return e.args.some(t=>Rm(t))}function mm(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(Xi(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(is(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(fn(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 ym(e){if(e.joins.length>0||e.where||Q(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.");mm(e);let t=Sa([{}],e.columns),{rows:r,columns:n}=_i(t,e.columns),i=Li(r,e.limit,e.offset);return{type:"SELECT",rows:i,columns:n,rowCount:i.length,warnings:[]}}async function gm(e,t,r,n,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Yc(e):e,s=Wn(a),l=i?.kind==="CANONICAL_LOCAL"?bt(e,e.from):s.fields,p=await as(e,t,n),u=ls(e,p),d=e.columns.some(L=>L.type==="CASE_COL")?await Ar(e,t,n,void 0,rs(e)):void 0,c=r.maxRecords??1e4,f=new Set,E=r.onLimitReached??"error",R=r.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=c&&!ae(e.where)?y:void 0,h;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)h=[];else if(i?.kind==="KORDER_CURSOR"){let L=await wu({client:t,app:s.app,fields:s.fields,query:Ea(e),offset:e.offset??0,limit:e.limit});h=L.records,L.cleanupWarning&&f.add(L.cleanupWarning)}else if(m)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let L=e.where?V(e.where):"";h=await Re(t.getRecords,s.app,L,l,{parallel:R,maxRecords:c,stopAfter:g,onLimit:E,onTruncate:w=>{f.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`)}})}let T=h.map(L=>tt(L,null));m||(T=ha(T,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Aa(e.columns,void 0,u.row,d)),T=Li(T,e.limit,e.offset));let{rows:O,columns:b}=_i(T,e.columns,void 0,u.row,void 0,d);return{type:"SELECT",rows:O,columns:b,rowCount:O.length,warnings:[...f]}}async function hm(e,t,r,n){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let p of s)l.add(p)};if(t==="SIMPLE"){let a=Wn(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,bt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(c=>!Pu(c));if(l.length===0)continue;let p=await J(a,r,n);if(p.length===0)continue;let u=new Set(p.map(c=>c.code)),d=l.filter(c=>!u.has(c));if(d.length>0)throw new Error(`ArgumentError: unknown field code(s): ${d.join(", ")} (APP${a})`)}}function $c(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Ur(e.where,{tableAlias:e.from.alias}):null}async function Gc(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,$c(e)),e.where!==null)for(let a of e.joins){if(!a.table.alias||a.table.subtableCode||a.table.cteName!==null)continue;let s=Ur(e.where,{tableAlias:a.table.alias});i(a.table.appId,s)}let o=await Promise.all([...n.entries()].map(async([a,s])=>{let[l,p]=await Promise.all([Ee(a,t,r),vm(a,t,r)]),u=Am(s).filter(d=>l.get(d)==="STATUS");if(u.length>0){let d=await us(a,t,r);if(d.enable&&d.states&&d.states.length>0){let c=new Set(d.states.map(f=>f.name));for(let f of u)p.set(f,c)}}return[a,l,p]}));return{fieldTypesByApp:new Map(o.map(([a,s])=>[a,s])),fieldOptionsByApp:new Map(o.map(([a,,s])=>[a,s]))}}function Am(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 it(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"&&Ji(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ji(e.right.expr,t);return;case"LOGICAL":it(e.left,t),it(e.right,t);return;case"NOT":case"GROUP":it(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ji(e,t){for(let r of e.branches)it(r.condition,t)}function Sm(e){let t=[];it(e.where,t),it(e.having,t);for(let r of e.columns)r.type==="CASE_COL"&&Ji(r.expr,t);return t}function Oe(e){return e.alias??e.cteName}function Vc(e,t){return[e.from,...e.joins.map(r=>r.table)].find(r=>Oe(r)===t)}function os(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function as(e,t,r){let n=Sm(e);if(n.length===0)return new Map;let i=new Set,o=os(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=Vc(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 Ee(s,t,r)]));return new Map(a)}function ke(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Wc(e,t,r){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Dt(t,r)}function Dt(e,t){if(e.type==="FIELD_REF"){t.push(ke(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Dt(e.left,t),Dt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Dt(e.left,t),Dt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&Dt(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"&&Dt(r,t)}function Qi(e,t){if(e.type==="AGG_REF"){Wc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Qi(e.left,t),Qi(e.right,t))}function Ha(e,t){for(let r of e.args)r.type==="AGG_REF"||r.type==="AGG_ARITH"?Qi(r,t):En(r,t)}function En(e,t){if(e.type==="STRING_FUNC"){Ha(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){En(e.left,t),En(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"?Ha(n,t):n.type!=="ARRAY"&&n.type!=="FIELD_REF"&&n.type!=="ARITH"&&En(n,t)}}function Tm(e){let t=[];for(let r of e)r.type==="AGGREGATE"?Wc(r.func,r.arg,t):r.type==="ARITH_AGG_COL"?Qi(r.expr,t):r.type==="STRFUNC_COL"?Ha(r.expr,t):r.type==="SCALAR_VALUE_COL"&&En(r.expr,t);return t}var Im=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function wm(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":Im.has(e.fieldType)?"string":void 0}async function Hc(e,t,r,n){let i=Tm(e.columns);if(i.length===0)return;let o=new Set,a=os(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=Vc(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 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([...s].map(async([f,E])=>{if(![...p].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await cs(f,t,r);R&&l.set(f,R)}));let u=[e.from,...e.joins.map(f=>f.table)],d=(f,E)=>{let R=f.semantics??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 m=u.find(y=>Oe(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return n?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(m.appId)?.get(fe(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=s.get(e.from.appId)?.get(fe(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let h=n?.get(y.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let g=s.get(y.appId)?.get(fe(y,f.field));return g?[d(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?u.find(m=>Oe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return d(E,R?.appId??e.from.appId)}}function fe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Yi(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function We(e,t){let r=e.semantics??z(e);return{sortKind:wm(e),fieldType:e.fieldType,semantics:t===void 0?r:ur(r,t,e.code)}}function Yc(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 He(){return{semantics:x("string","KSQL_UNKNOWN")}}function jc(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function vt(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 bm=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Mt(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Y("number"):Y("string")}return bm.has(e.func)?Y("number"):Y("string")}function gr(e,t){return e.type==="STRING"?Y("string"):e.type==="ARRAY"?jc():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Y("number"):e.type==="STRING_FUNC"?Mt(e):e.type==="FIELD_REF"?t(ke(e.field))??He():e.type==="FIELD"?t(e)??He():He()}function oo(e){if(e.length===0)return He();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&&Zn(r(n.semantics),r(t.semantics)))?e.every(i=>Zn(i.semantics,t.semantics))?t:{...t,semantics:r(t.semantics)}:e.some(n=>n.semantics?.compareMode==="unsupported")?jc("KSQL_MIXED_UNSUPPORTED"):He()}function ss(e,t){if(e.type==="FIELD_REF")return t(ke(e.field))??He();if(e.type==="FIELD")return t(e)??He();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 Mt(e);let r=e.branches.map(n=>gr(n.result,t));return e.elseResult&&r.push(gr(e.elseResult,t)),oo(r)}function Pm(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 Ya(e,t,r,n,i,o=!1){let a=new Map;Pm(e)&&await Promise.all(os(e).map(async R=>{if(a.has(R.appId))return;let m=await J(R.appId,r,n);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),p=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let h=a.get(e.from.appId)?.get(R.field);return h?We(h,e.from.appId):void 0}let y=s.find(h=>Oe(h)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let g=a.get(y.appId)?.get(fe(y,R.field));return g?We(g,y.appId):vt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(fe(e.from,R.field));return y?We(y,e.from.appId):vt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let T=i?.get(y.cteName);return T?.columns.includes(R.field)?[T.columnMeta?.get(R.field)]:[]}let g=a.get(y.appId)?.get(fe(y,R.field)),h=g?We(g,y.appId):vt(R.field);return h?[h]:[]});return m.length===1?m[0]:void 0},u=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Oe(y)!==R.tableAlias)return!1;let g=fe(y,R.field);return a.get(y.appId)?.has(g)===!0||vt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},d=(R,m)=>{let y=u(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},c=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=ke(R),y=d(p(m),m);y&&c.set(R,y)}return c}if(f)for(let R of t){let m=ke(R),y=d(p(m),m);y&&c.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let g;if(R.type==="FIELD"){let h=ke(R.field);g=d(p(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=Y("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?g=Y("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=ss(R.arg,p));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=Y("number");else if(R.type==="GROUPING_COL")g=Y("number");else if(R.type==="LITERAL_COL")g=Y("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?g=Mt(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?g=Y("number"):h.type==="FIELD"?g=p(h):g=Y("string")}else if(R.type==="STRFUNC_COL")g=Mt(R.expr);else if(R.type==="WINDOW_COL")g=Y("number");else if(R.type==="CASE_COL"){let h=R.expr.branches.map(T=>gr(T.result,p));R.expr.elseResult&&h.push(gr(R.expr.elseResult,p)),g=oo(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=He());g&&c.set(y,g)}),c}function qc(e,t){let r=ye.get(e),n=ye.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=r?.get(o),l=t.columns[a],p=l===void 0?void 0:n?.get(l);if(s&&p){let u=oo([s,p]),d=s.publicSourceApp===p.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:c,...f}=u;i.set(o,d===void 0?f:{...f,publicSourceApp:d})}else(s||p)&&i.set(o,He())}),i}function ls(e,t){let r=[e.from,...e.joins.map(s=>s.table)],n=r.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let p=r.find(u=>Oe(u)===s.tableAlias);return!p||p.cteName!==null?void 0:Yi(p,s.field)??t.get(p.appId)?.get(fe(p,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Yi(e.from,s.field)??t.get(e.from.appId)?.get(fe(e.from,s.field));if(r.some(p=>p.cteName!==null))return;let l=n.flatMap(p=>{let u=Yi(p,s.field)??t.get(p.appId)?.get(fe(p,s.field));return u?[u]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function Nm(e,t,r,n,i,o=!0,a,s,l){let p=r.maxRecords??1e4,u=new Set,d=r.fetchParallel??1;await Promise.all([bn(e.where,t,r,n,i),bn(e.having,t,r,n,i)]);let[c,f,E]=await Promise.all([Gc(e,t,n),as(e,t,n),Hc(e,t,n,i)]),R=ls(e,f),m=await Ar(e,t,n,i,Be(e.having)||rs(e)),y=xc(e,m),g=ir(e,c);Lo(g);let h=g.mainCondition,T=g.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let O=s?s.prefilterWhere:h,b=await mp(e.columns,t,r,n,i),L=ot(e.where),w=L?Promise.resolve([]):Rn(e,e.from,t,p,d,!0,r.onLimitReached??"error",u,O,o,l),_=[],C=[];for(let K of e.joins){if(L){_.push({join:K,promise:Promise.resolve([])});continue}let te=K.table.alias?T.get(K.table.alias)??null:null;te!==null?_.push({join:K,promise:Rn(e,K.table,t,p,d,!1,r.onLimitReached??"error",u,te,!0,l)}):C.push(K)}let v=a?Promise.resolve(a):Tn(e,t,n,i);v.catch(()=>{});let k=await w,A=new Map;A.set(e.from.alias,k);for(let{join:K,promise:te}of _)A.set(K.table.alias,await te);await Promise.all(C.map(async K=>{let F=await ep(e,K,A,t,p,d,r.onLimitReached??"error",u,null,l)??await Rn(e,K.table,t,p,d,!1,r.onLimitReached??"error",u,null,!0,l);A.set(K.table.alias,F)}));let{optionOrders:P,sortKinds:N,semantics:I}=await v,{rows:U,columns:B}=wa({tables:A,stmt:e,scalarCache:b,optionOrders:P,sortKinds:N,orderSemantics:I,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??g.appliedKlikes,...s?{residualWhere:s.residualWhere}:{},resolvedGroupingSpec:Sn.get(e),plainGroupByPlan:l});return{type:"SELECT",rows:U,columns:B,rowCount:U.length,warnings:[...u]}}async function zc(e,t,r,n,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?zc(e.left,t,r,n,i,o):St(e.left,t,r,n,void 0,i,o),St(e.right,t,r,n,void 0,i,o)]),l=a.columns,p=s.columns,u=s.rows.map(E=>{let R={};return l.forEach((m,y)=>{R[m]=E[p[y]??m]??""}),R}),d=[...a.rows,...u],c=e.all?d:Xc(d,l),f={type:"SELECT",rows:c,columns:l,rowCount:c.length};return i&&ye.set(f,qc(a,s)),f}function Xc(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 Cm(e,t,r,n,i,o=!1){if((i==null||i.size===0)&&pt(e))return St(dt(e),t,r,n,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await dp(t):s.query.type==="DESCRIBE"?l=await fp(s.query,t,n):l=await xt(s.query,t,r,a,n,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:ye.get(l)})}return xt(e.query,t,r,a,n,o)}async function xt(e,t,r,n,i,o=!1){if(e.type==="UNION"){let[l,p]=await Promise.all([xt(e.left,t,r,n,i,o),xt(e.right,t,r,n,i,o)]),u=l.columns,d=p.columns,c=p.rows.map(m=>{let y={};return u.forEach((g,h)=>{y[g]=m[d[h]??g]??""}),y}),f=[...l.rows,...c],E=e.all?f:Xc(f,u),R={type:"SELECT",rows:E,columns:u,rowCount:E.length};return o&&ye.set(R,qc(l,p)),R}if(!(e.from.cteName!=null&&e.from.cteName!==lt||e.joins.some(l=>l.table.cteName!=null)))return St(e,t,r,i,n,o,!1);let s=await Om(e,t,r,n,i);return o&&ye.set(s,await Ya(e,s.columns,t,i,n)),s}async function Om(e,t,r,n,i){await io(e,t,i,n);let o=Sn.get(e),a=await ns(e,t,i,n),s=new Set,l=F=>{if(F.alias!==null||F.cteName===null)return F;let D=Oe(F);return s.add(D),{...F,alias:D}};e={...e,from:l(e.from),joins:e.joins.map(F=>({...F,table:l(F.table)}))};let p=new Set;for(let F of[e.from,...e.joins.map(D=>D.table)]){let D=Oe(F);if(D!==null){if(p.has(D))throw new Error(`ArgumentError: effective alias ${D} is used by multiple tables.`);p.add(D)}}let u=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&&u(F.cteName);let d=r.maxRecords??1e4,c=new Set,f=r.fetchParallel??1;await Promise.all([bn(e.where,t,r,i,n),bn(e.having,t,r,i,n),Ep(e,t,r,i,n)]);let E=await An(e,t,i,n);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(E)}).`);let R=await Tn(e,t,i,n),m=zi(e)?(e.orderMode==="KINTONE_NATIVE"?en:Zr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:d,hasKlike:ae(e.where)}):null,y=Kc(e,r,m),g=y.effectiveOptions,[h,T,O]=await Promise.all([Gc(e,t,i),as(e,t,i),Hc(e,t,i,n)]),b=ls(e,T),L=await Ar(e,t,i,n,Be(e.having)||rs(e)),w=xc(e,L),_=ir(e,h);Lo(_);let C=await mp(e.columns,t,g,i,n),v=Promise.resolve(R);v.catch(()=>{});let k=new Map,A=new Map;if(e.from.cteName!=null){let F=u(e.from.cteName);k.set(e.from.alias,F.rows.map(hc)),A.set(e.from.alias,F.columns)}else{let F=await gc(y,()=>Rn(e,e.from,t,d,f,!0,g.onLimitReached??"error",c,_.mainCondition,E.capability==="EXACT_PUSHDOWN",a));k.set(e.from.alias,F)}let P=e.joins.map(F=>gc(y,async()=>{if(F.table.cteName!=null){let D=u(F.table.cteName);k.set(F.table.alias,D.rows.map(hc)),A.set(F.table.alias,D.columns)}else{let D=F.table.alias?_.joinConditions.get(F.table.alias)??null:null,ie=await ep(e,F,k,t,d,f,g.onLimitReached??"error",c,D,a)??await Rn(e,F.table,t,d,f,!1,g.onLimitReached??"error",c,D,!0,a);k.set(F.table.alias,ie)}}));await Promise.all(P);let{optionOrders:N,sortKinds:I,semantics:U}=await v,B=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:K,columns:te}=wa({tables:k,stmt:e,scalarCache:C,optionOrders:N,sortKinds:I,orderSemantics:U,fieldTypeResolver:b.row,fieldSemanticsResolver:L,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:w,aggregateSortKindResolver:O,appliedKlikes:_.appliedKlikes,sourceColumns:B,tableColumns:A,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a});return{type:"SELECT",rows:K,columns:te,rowCount:K.length,warnings:[...c]}}function hc(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{value:r??""}]))}async function Rn(e,t,r,n,i,o,a,s,l=null,p=!0,u){let d=bt(e,t,u),c=m=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${m} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let m=o&&p?il(e,t.appId).query:"",y=l!==null?V(l):"",g=m&&y?`(${m}) and (${y})`:m||y;return(await _e(r.getRecords,t.appId,g,d,{parallel:i,maxRecords:n,onLimit:a,onTruncate:c})).records}let R=(await _e(r.getRecords,t.appId,"",d,{parallel:i,maxRecords:n,onLimit:a,onTruncate:c})).records;return Gu(R,t.subtableCode)}var Jc=50;function Lm(e){let t=we(e);return t!==null?JSON.stringify(t):e}function ja(e){return JSON.stringify(e)}function Ft(e,t){return JSON.stringify(e.map((r,n)=>t[n]?Lm(r):r))}function Nn(e,t){let r=e.raw.get(ja(t));if(r!==void 0)return r;if(e.numericKey.some(Boolean))return e.normalized.get(Ft(t,e.numericKey))}async function Cn(e,t,r,n,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:l},u=(m,y,g)=>{let h=m.get(y);(h===void 0||g>h)&&m.set(y,g)},d=(m,y)=>{u(p.raw,ja(m),y),l.some(Boolean)&&u(p.normalized,Ft(m,l),y)},c=new Set,f=[],E=new Set;for(let m of r){let y=ja(m);E.has(y)||(E.add(y),m.some(g=>g==="")?f.push(m):c.add(m[0]))}let R=["$id",...t];for(let m of Sr([...c],Jc)){let y=`${t[0]} in (${m.map(Zi).join(",")})`,g=await Re(n.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let h of g){let T=Number(h.$id?.value);Number.isFinite(T)&&d(t.map(O=>Qc(h[O]?.value)),T)}}for(let m of f){let y=t.map((h,T)=>`${h} = ${Zi(m[T])}`).join(" and "),g=await Re(n.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});g.length!==0&&d(m,_m(g))}return p}function _m(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 Qc(e){return typeof e=="string"?e:e==null?"":String(e)}function Zi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Sr(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}var Zc=50,Dm=6,Ac=Zc*Dm;async function ep(e,t,r,n,i,o,a,s,l=null,p){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let u=t.on.left.tableAlias,d=t.on.right.tableAlias;if(!u||!d)return null;let c,f,E;if(u===t.table.alias&&d!==t.table.alias)c=d,f=t.on.right.field,E=t.on.left.field;else if(d===t.table.alias&&u!==t.table.alias)c=u,f=t.on.left.field,E=t.on.right.field;else return null;let R=r.get(c);if(!R)return null;let m=new Set;for(let L of R){let w=L[f]?.value,_=Qc(w).trim();_.length>0&&m.add(_)}let y=[...m];if(y.length===0)return[];if(y.length>Ac)return s.add(`JOIN\u30AD\u30FC\u304C ${y.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 ${Ac} \u4EF6\uFF09\u3002`),null;let g=bt(e,t.table,p),h=L=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${L} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${L} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},T=Sr(y,Zc),O=[],b=new Set;for(let L of T){let w=`${E} in (${L.map(Zi).join(",")})`,_=l!==null?`(${w}) and (${V(l)})`:w,C=await _e(n.getRecords,t.table.appId,_,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:h});for(let v of C.records){let k=`${v.$id?.value??""}:${JSON.stringify(v)}`;b.has(k)||(b.add(k),O.push(v))}}return O}var Sc=new Map,Tc=new Map,Ic=new Map,wc=new Map,bc=new Map,Pc=new Map;function Tr(e,t,r){return e.get(t)?.get(r)}function Ir(e,t,r,n){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(r,n)}async function J(e,t,r){let n=Tr(wc,r,e);if(n)return n;let i=t.getFields(e);return Ir(wc,r,e,i),i}async function Ye(e,t,r){let n=Tr(Pc,r,e);if(n)return n;let i=t.getNumberPrecision(e);return Ir(Pc,r,e,i),i}async function us(e,t,r){let n=Tr(bc,r,e);if(n)return n;let i=t.getProcessStatuses(e);return Ir(bc,r,e,i),i}async function cs(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 Ee(e,t,r){let n=Tr(Sc,r,e);if(n)return n;let i=await J(e,t,r),o=new Map(i.map(a=>[a.code,a.fieldType]));return Ir(Sc,r,e,o),o}async function qa(e,t,r){let n=Tr(Tc,r,e);if(n)return n;let i=await J(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 Ir(Tc,r,e,o),o}async function vm(e,t,r){let n=await qa(e,t,r);return new Map([...n.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Nc(e,t,r){let n=Tr(Ic,r,e);if(n)return n;let i=await J(e,t,r),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Ir(Ic,r,e,o),o}function Um(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 km(e,t,r,n){let i=Um(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(d=>d.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))].map(async d=>{let c=await J(d,t,r);return[d,new Map(c.map(f=>[f.code,f]))]}))),l=d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(d.field);return R?We(R,e.from.appId):void 0}let f=o.find(R=>Oe(R)===d.tableAlias);if(!f)return;if(f.cteName!==null)return n?.get(f.cteName)?.columnMeta?.get(d.field);let E=s.get(f.appId)?.get(fe(f,d.field));return E?We(E,f.appId):vt(d.field)}if(e.joins.length===0){if(e.from.cteName!==null)return n?.get(e.from.cteName)?.columnMeta?.get(d.field);let f=s.get(e.from.appId)?.get(fe(e.from,d.field));return f?We(f,e.from.appId):vt(d.field)}let c=o.flatMap(f=>{if(f.cteName!==null){let m=n?.get(f.cteName),y=m?.columns.includes(d.field)?m.columnMeta?.get(d.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(fe(f,d.field)),R=E?We(E,f.appId):vt(d.field);return R?[R]:[]});return c.length>1&&a.add(d.field),c.length===1?c[0]:void 0},p=new Map;for(let d of e.columns){if(!("alias"in d)||!d.alias)continue;let c;if(d.type==="FIELD")c=l(ke(d.field));else if(d.type==="ARITH_COL"||d.type==="ARITH_AGG_COL"||d.type==="WINDOW_COL")c=Y("number");else if(d.type==="GROUPING_COL")c=Y("number");else if(d.type==="LITERAL_COL"||d.type==="SCALAR_VALUE_COL")c=Y("string");else if(d.type==="STRFUNC_COL")c=Mt(d.expr);else if(d.type==="SCALAR_SUBQUERY_COL")c=He();else if(d.type==="CASE_COL"){let f=d.expr.branches.map(E=>gr(E.result,l));d.expr.elseResult&&f.push(gr(d.expr.elseResult,l)),c=oo(f)}else d.type==="AGGREGATE"&&(d.func==="MIN"||d.func==="MAX"||d.func==="MODE"?d.arg.type!=="WILDCARD"&&(c=ss(d.arg,l)):c=d.func==="GROUP_CONCAT"?Y("string"):Y("number"));c?.semantics&&p.set(d.alias,c.semantics)}let u=new Map;for(let d of i){let c=p.get(d)??l(ke(d))?.semantics;if(!c){let E=ke(d);E.tableAlias===null&&a.has(E.field)&&u.set(d,z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=c;if(c.fieldType==="STATUS"&&c.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await us(c.source.appId,t,r);E.enable&&E.states!==null&&(f={...c,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}u.set(d,f)}return u}async function Tn(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([Mm(e,t,r),xm(e,t,r),km(e,t,r,n)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Mm(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 qa(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await qa(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}async function xm(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 Nc(a.appId,t,r);for(let[l,p]of s.entries())n.has(l)||n.set(l,p)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Nc(a.appId,t,r);for(let[l,p]of s.entries())n.set(`${a.alias}.${l}`,p)}return n}function tp(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 Fm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Km(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||Fm.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Me(e,t,r,n){let i=await J(e,r,n);return Km(e,t,i),i}async function at(e,t,r,n,i){let o=new Map(r.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ye(e,n,i):void 0}function Kt(e,t,r,n){let i=new Map(r.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),p=o[s]?.value??"",u=Se(p,l,n);if(!u.ok)throw new Error(`DmlValidationError: ${u.code} ${u.message} (row=${a+1}, field=${s})`);let d=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(p)&&p.every(c=>typeof c=="object"&&c!==null&&"code"in c);o[s]={value:d?p:u.value}}})}async function Bm(e,t,r,n,i){let o=await Me(e.appId,e.fields,t,n),a=await Xr({statement:e,fieldInfos:o,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});return yy(e,a,o)}async function $m(e,t,r,n,i){let{fieldInfos:o,prepared:a}=await rp(e,t,r,n,i);return hy(e,a,o)}async function rp(e,t,r,n,i){let o=await Me(e.appId,e.fields,t,n),a=new Map(o.map(m=>[m.code,m.fieldType])),s=up(e),l=new Set;for(let m of s){let y=Ft(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let p=await Cn(e.appId,e.keyFields,s,t,r,a),u=s.map(m=>Nn(p,m)),d=new Map,c=[...new Set(u.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Sr(c,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let h=Number(g.$id?.value);Number.isSafeInteger(h)&&h>0&&d.set(h,g)}}let E=u.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:d.get(m)}})),R=await mu({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});return{fieldInfos:o,prepared:R}}async function Gm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Me(e.appId,e.fields,t,n),o=await Xr({statement:e,fieldInfos:i,dmlMaxRows:Le(r.dmlMaxRows,"dmlMaxRows",st),dmlMaxSubtableRows:Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),loadNumberPrecision:()=>Ye(e.appId,t,n)}),a=ca(o);if(r.confirm&&!await r.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ao(a),applyDiagnostic:a}))throw new ee("INSERT",o.guards.parentRows);let s=await Su(o,t,a);return{...s,diagnostic:Ce(a,s)}}async function Vm(e,t,r,n){if(r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await rp(e,t,r,n,1),o=pa(i);if(r.confirm){let s=ao(o);if(!await r.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ee("UPDATE",i.guards.parentRows)}let a=await Tu(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ce(o,a)}}function Wm(e,t){let r=new Map;for(let n of[...e,...t]){let i=r.get(n.table);r.set(n.table,i?{table:n.table,patchRows:i.patchRows+n.patchRows,appendRows:i.appendRows+n.appendRows,removeRows:i.removeRows+n.removeRows}:{...n})}return[...r.values()]}function ao(e,t=!0){let r=e.branches.find(c=>c.branch==="insert"),n=e.branches.find(c=>c.branch==="update"),i=e.branches.flatMap(c=>c.targets),o=Wm(r?Hi(r):[],n?Hi(n):[]),a=Hm(i),s=e.branches.reduce((c,f)=>c+(f.parentRows??0),0),l=i.filter(c=>c.targetKind==="SUBTABLE").reduce((c,f)=>c+(f.changedCount??0),0),p=o.reduce((c,f)=>c+f.appendRows,0),u=o.reduce((c,f)=>c+f.removeRows,0),d={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:p,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:u,deletedParentRows:e.branches.reduce((c,f)=>c+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(c=>c.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&r)return{...d,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(c=>c.targetKind==="SUBTABLE").reduce((c,f)=>c+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&r&&n){let c=Hi(r),f=Hi(n);return{...d,insertedParentRows:r.parentRows??0,initialSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:n.parentRows??0,applyBranches:{insert:{parentRows:r.parentRows??0,initialSubtableRows:c.reduce((E,R)=>E+R.appendRows,0),tables:c},update:{parentRows:n.parentRows??0,changedSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:n.deletedParentRows??0}}}}return d}function Hi(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let r=kt(t,"APPEND"),n=kt(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-r-n,appendRows:r,removeRows:n}})}function kt(e,t){return e.operations.filter(r=>r.kind===t).reduce((r,n)=>r+(n.count??0),0)}function Hm(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:kt(r,"ADD"),removedValues:kt(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 np(e,t,r,n,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Bm(e,t,r,n,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return $m(e,t,r,n,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await lp(e,t,r,n,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await ps(e,t,r,n,i,o)).result}var eo=class extends Error{constructor(r,n){super(`RejectLimitExceededError: ${r}`);this.diagnostic=n;this.name="RejectLimitExceededError"}};async function ps(e,t,r,n,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",p=e.type==="UPDATE"?["$id",...e.assignments.map(P=>P.field)]:[...e.fields];if(new Set(p).size!==p.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let u=e.type==="UPDATE"?e.assignments.map(P=>P.field):e.fields,d=await Me(e.appId,u,t,n);e.type==="UPDATE"&&await mr(e,t,n);let c=new Map(d.map(P=>[P.code,P])),f=await at(e.appId,u,d,t,n),E=Fe(d,p),R=Vu(E),m=(await Ym(e,l,t,r,n,i,c,e.type==="UPDATE"?R:void 0)).sort((P,N)=>P.rowNumber-N.rowNumber),y=m.filter(P=>P.mode==="update"),g=e.type==="UPDATE"?zm:e.type.startsWith("UPSERT")?P=>Xm(P,t,r.maxRecords??1e4):void 0,h=r.loadUpdateModeSnapshots??g,T=y.length>0&&h!==void 0,O=new Map;if(T){na(y,u,d);let P=await h({appId:e.appId,candidates:y,fields:R}),N=new Map;for(let I of y){if(I.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${I.rowNumber}).`);let U=P.get(I.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${I.targetId}.`);let B=Wu(U,I.record??{});N.set(I.rowNumber,B)}f===void 0&&[...N.values()].some(I=>Lt(I,E))&&(f=await Ye(e.appId,t,n));for(let I of y){let U=N.get(I.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${I.rowNumber}.`);O.set(I.rowNumber,_t(U,E,f,o,I.rowNumber,l))}}let b=ia(m,l,p,u,d,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!T}),{errors:L,invalidRows:w,invalidRowNumbers:_}=b;if(T){let P=new Map(b.candidateResults.map(N=>[N.rowNumber,N]));L=[],_=new Set;for(let N of m){let I=P.get(N.rowNumber);if(!I)throw new Error(`InternalError: validation detail is missing for row ${N.rowNumber}.`);if(N.mode==="create"){let K=[...I.preErrors,...I.builtInErrors,...I.checkErrors];L.push(...K),K.length>0&&_.add(N.rowNumber);continue}let U=O.get(N.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${N.rowNumber}.`);let B=Hu({rowNumber:N.rowNumber,setFields:u,normalizedPostImage:U.normalizedRecord,preErrors:I.preErrors,postImageErrors:U.errors,checkErrors:I.checkErrors});N.record=B.writeRecord,L.push(...B.errors);for(let K of B.invalidRowNumbers)_.add(K)}w=_.size}let C=[...p,...dr],v={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-w,invalidRows:w,errorCount:L.length,columns:C,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let P of p){if(P==="$id"){k.set(P,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let N=c.get(P);N&&k.set(P,We(N,e.appId))}let A=new Set(["$err_statement","$err_row"]);for(let P of dr)k.set(P,Y(A.has(P)?"number":"string"));return hr.set(v,k),{result:v,candidates:m,invalidRowNumbers:_,columnMeta:k}}async function Cc(e,t,r,n,i,o){let a=await ps(e,t,r,n,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");At(i,s,a.result.columns,a.result.errors,r.tempTableMaxRows??ht,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new eo(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let p=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(r.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await r.confirm(p.length,E))throw new ee(E,p.length)}let u={affectedRows:p.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<p.length;R+=100){let m=await t.postRecords({app:e.appId,records:p.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...u}}if(e.type==="UPDATE"){let E=p.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...u}}let d=p.filter(E=>E.mode==="create"),c=p.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<d.length;E+=100){let R=await t.postRecords({app:e.appId,records:d.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<c.length;E+=100)await t.putRecords({app:e.appId,records:c.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:c.length,...u}}async function Ym(e,t,r,n,i,o,a,s){if(e.type==="UPDATE")return qm(e,r,n,i,o,s);let l,p,u,d,c;if(e.type==="INSERT"||e.type==="UPSERT")Oc(e,e.fields),c=new Map(e.fields.map(T=>[T,a.get(T)?.fieldType??""])),Bt(e,c),l=e.values.map(T=>T.map((O,b)=>O.type==="CASE_VALUE"?mt(O.expr,{},a.get(e.fields[b])?.fieldType):O));else{let T=await fs.materialize(e,r,n,i,o,[...a.values()]),O=(e.checkGroups?.length??0)>0;if(T.columns.length<e.fields.length||!O&&T.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${T.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(O&&new Set(T.columns).size!==T.columns.length)throw le("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");Oc(e,T.columns),p=T.rows,u=T.importPresence,d=T.importRowErrors;let b=T.columnMeta;c=new Map(T.columns.map(L=>{let w=b?.get(L),_=w?.fieldType??(w?.semantics?.compareMode==="number"||w?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,_]})),Bt(e,c),l=T.rows.map(L=>T.columns.map(w=>L[w]??""))}let f=l.map((T,O)=>({rowNumber:O+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,L)=>u&&!u[O]?.has(b)?[]:[[b,T[L]]])),preErrors:[...d?.[O]??[]],record:{},evaluationRow:p?.[O]??Object.fromEntries(e.fields.map((b,L)=>[b,xe(T[L])])),evaluationFieldTypes:c}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let T of e.keyFields)if(!e.fields.includes(T))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${T}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([T,O])=>[T,O.fieldType])),R=f.map(T=>e.keyFields.map(O=>xe(T.payload.get(O)))),m=e.keyFields.map(T=>E.get(T)==="NUMBER"),y=new Map;for(let T of R){let O=Ft(T,m);y.set(O,(y.get(O)??0)+1)}let g=no.has(e);if(g&&[...y.values()].some(T=>T>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 h=await Cn(e.appId,e.keyFields,R,r,n,E);return f.forEach((T,O)=>{let b=R[O],L=Nn(h,b);T.mode=L===void 0?"create":"update",L!==void 0&&(T.targetId=L),e.keyFields.forEach((w,_)=>{b[_]===""&&T.preErrors.push({field:w,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${w} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(Ft(b,m))??0)>1&&T.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 ds(e){return e.checkGroups?cr(e.checkGroups):[]}function Oc(e,t){let r=new Set(t);for(let n of ds(e)){if(n.tableAlias!==null)throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.tableAlias}.${n.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!r.has(n.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var jm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Bt(e,t){if(e.checkGroups)for(let r of xl(e.checkGroups)){let n=r.tableAlias?`${r.tableAlias}.${r.field}`:r.field,i=t.get(n)??t.get(r.field);if(jm.has(i??""))throw le(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${n} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function qm(e,t,r,n,i,o){if(e.from)return Qm(e,e.from,t,r,n,i,o);await Rp(e.assignments,t,r,n);let a=await Ee(e.appId,t,n),s=ip(e,a);Bt(e,za(a,e.appId));let l,p=new Map,u=new Map;if(li(e)){let d=$o(e),c=[...new Set([...d.fields,...s,...o??[]])],f=await _e(t.getRecords,d.app,d.query,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ji(f.records),p=u,l=Vo(e,f.records,a).flatMap(E=>E.records)}else{let d=$r(e);if(s.length>0){let c=[...new Set(["$id",...s,...o??[]])],f=await _e(t.getRecords,d.app,d.query,c,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ji(f.records),p=u,l=Gr(e,[...p.keys()],a).flatMap(E=>E.records)}else if(o){let c=await _e(t.getRecords,d.app,d.query,[...o],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"});u=ji(c.records),l=Gr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let c=await Ii(t.getRecords,d.app,d.query,{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1});l=Gr(e,c.ids,a).flatMap(f=>f.records)}}return l.sort((d,c)=>d.id-c.id).map((d,c)=>({rowNumber:c+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(d.id)],...e.assignments.map(f=>[f.field,d.record[f.field]?.value??""])]),preErrors:[],record:d.record,targetId:d.id,validationSnapshot:u.get(d.id),evaluationRow:Jm(p.get(d.id),e.appId),evaluationFieldTypes:za(a,e.appId)}))}function ji(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 zm(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 Xm(e,t,r){let n=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(n.length>r)throw new Ie(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${r} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(n),o=new Map;for(let a of Sr(n,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let p=l.$id?.value,u=Number(p);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(p)}.`);if(!i.has(u))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${u}.`);if(o.has(u))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${u}.`);o.set(u,l)}}for(let a of n)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function ip(e,t){if(e.from)return[];let r=new Set;for(let n of ds(e)){if(n.tableAlias!==null&&n.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${n.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(n.field!=="$id"&&!t.has(n.field))throw le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${n.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);r.add(n.field)}return[...r]}function Jm(e,t){if(!e)return{};let r=tt(e,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([n,i])=>[`APP${t}.${n}`,i])])}function za(e,t){return new Map([...e,...[...e].map(([r,n])=>[`APP${t}.${r}`,n]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Qm(e,t,r,n,i,o,a){let s=await Ap(e,t,r,i,o);Bt(e,s.evaluationTypes);let l=await op(e,t,r,n,i,o,a),p=await Ee(e.appId,r,i),u=Ho(e,l,p).flatMap(f=>f.records),d=new Map(l.map(f=>[Number(f.target.$id?.value),f])),c=a?ji(l.map(f=>f.target)):new Map;return u.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:c.get(f.id),evaluationRow:eg(d.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Zm=Jc,ey=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function op(e,t,r,n,i,o,a){let s=await ty(e,t,r,i),l=await Ap(e,t,r,i,o),p=[...new Set(e.assignments.filter(O=>O.value.type==="SOURCE_FIELD").map(O=>O.value.type==="SOURCE_FIELD"?O.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...p])],d=await ry(t,u,p,r,n,i,o),c=new Map,f=new Map;for(let O of d){if(!Object.prototype.hasOwnProperty.call(O,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=Lc(O[t.joinKeyField],s,"source");if(c.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);c.set(b,O),f.set(b,String(O[t.joinKeyField]).trim())}if(c.size===0)return[];let E=n.maxRecords??1e4,R=[...new Set([...Sy(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":$r({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,h=0;for(let O of Sr([...f.values()],Zm)){let b=`${t.targetJoinField} in (${O.map(Zi).join(",")})`,L=m?`(${b}) and (${m})`:b,w=await _e(r.getRecords,e.appId,L,R,{maxRecords:E,parallel:n.fetchParallel??1,onLimit:"error"});if(h+=w.records.length,h>E)throw new Ie(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let _ of w.records){let C=_.$id?.value;if(typeof C!="string"||C==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(C)||(g.add(C),y.push(_))}}let T=[];for(let O of y){let b=O[t.targetJoinField]?.value,L=Lc(b,s,"target");if(L===null)continue;let w=c.get(L);w!==void 0&&T.push({target:O,source:w})}return T}async function ty(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 ry(e,t,r,n,i,o,a){if(e.cteName!==null){let u=a?.get(e.cteName);if(!u)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let d of t)if(!u.columns.includes(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);return u.rows}let s=await Ee(e.appId,n,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let u of r){if(u!=="$id"&&!s.has(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);let d=u==="$id"?"RECORD_NUMBER":s.get(u);if(ey.has(d??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${d} (${u}).`)}return(await _e(n.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>tt(u,null))}function Lc(e,t,r){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(r==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&r==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a positive safe integer: ${e}`);return String(o)}let n=we(e);if(n===null)throw new Error(`ArgumentError: UPDATE ... FROM ${r} key must be a finite decimal: ${e}`);return JSON.stringify(n)}async function On(e,t,r,n,i){let o=await ps(e,t,r,n,i,1,!1,!1);if(o.result.errors.length>0){let d=o.result.errors[0];throw new Error(`DmlValidationError: ${d.$err_code} ${d.$err_message} (row=${d.$err_row}, field=${d.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(r.confirm&&a.length>0&&!await r.confirm(a.length,s))throw new ee(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let d=[];for(let c=0;c<a.length;c+=100){let f=await t.postRecords({app:e.appId,records:a.slice(c,c+100).map(E=>E.record)});d.push(f.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}if(e.type==="UPDATE"){let d=a.map(c=>({id:c.targetId,record:c.record}));for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPDATE",updatedCount:d.length}}let l=a.filter(d=>d.mode==="create"),p=a.filter(d=>d.mode==="update").map(d=>({id:d.targetId,record:d.record})),u=0;for(let d=0;d<l.length;d+=100){let c=await t.postRecords({app:e.appId,records:l.slice(d,d+100).map(f=>f.record)});u+=c.ids.length}for(let d=0;d<p.length;d+=100)await t.putRecords({app:e.appId,records:p.slice(d,d+100)});return{type:"UPSERT",insertedCount:u,updatedCount:p.length}}async function ny(e,t,r,n){if(e.applyBlocks?.length)return Gm(e,t,r,n);if(e.checkGroups?.length)return On(e,t,r,n);if(e.subtableCode)return wy(e,t,r,n);let i=await Me(e.appId,e.fields,t,n),o=await at(e.appId,e.fields,i,t,n),a=await Ee(e.appId,t,n),s=si(e,a);Kt(s.flatMap(p=>p.records),e.fields,i,o);let l=[];for(let p of s){let u=await t.postRecords(p);l.push(u.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function iy(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:lt},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function oy(e,t,r,n,i){if(!r.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=ec(e.source.sourceName,r.importSource);if(e.targets?.some(d=>d.kind==="SUBTABLE")){if(!e.validateOnly&&!r.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let D=new Set(e.targets.filter(H=>H.kind==="SUBTABLE").map(H=>H.subtableCode));if(e.replaceSubtables.some(H=>!D.has(H)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let H of e.targets.filter(ie=>ie.kind==="SUBTABLE"))if(!H.rowIdSourceHeader||!e.replaceSubtables.includes(H.subtableCode))throw new Error(`ArgumentError: CSV subtable ${H.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=e.targets,c=await J(e.appId,t,n),f=d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children),E=c.some(D=>f.includes(D.code)&&D.fieldType==="NUMBER")?await Ye(e.appId,t,n):void 0,R=await Bi(o,new Map),m=e.source.kind==="JSON"?oc(e.source,R,d,r.maxRecords??1e4):ac(e.source,R,d,e.replaceSubtables??[],r.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=cc(m,d,c,E,y);if(e.source.kind==="CSV")return ay(e,m,g,c,t,r,i);xa(g,e.rejectLimit);let h=[...new Set(d.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children))],T=Ka(g.errors,h),O=[...h,...Fa],b=g.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-b,invalid:b,mutationCandidates:g.parents.filter(D=>D.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},w={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-b,invalidRows:b,errorCount:T.length,columns:O,errors:T,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&At(i,e.validationErrorTable,O,T,r.tempTableMaxRows??ht,new Map),e.validateOnly)return w;if(dc(m),g.errors.length>0&&!e.onErrorSkip){let D=g.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.");At(i,e.errorTable,O,T,r.tempTableMaxRows??ht,new Map)}let _=g.parents.filter(D=>D.valid),C=new Map(c.map(D=>[D.code,D.fieldType])),v=_.map(()=>{});if(e.keyFields){for(let he of e.keyFields)if(!e.fields.includes(he))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${he}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let D=e.keyFields.map(he=>C.get(he)==="NUMBER"),H=new Set,ie=_.map(he=>e.keyFields.map(Wt=>String(he.top[Wt]?.value??"")));for(let he of ie){let Wt=Ft(he,D);if(H.has(Wt))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(Wt)}let je=await Cn(e.appId,e.keyFields,ie,t,r,C);ie.forEach((he,Wt)=>{v[Wt]=Nn(je,he)})}let k=d.filter(D=>D.kind==="SUBTABLE").map(D=>D.subtableCode),A=new Map,P=v.filter(D=>D!==void 0);for(let D of Sr([...new Set(P)],100)){let H=await t.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let ie of H.records){let je=Number(ie.$id?.value),he=Number(ie.$revision?.value);Number.isFinite(je)&&A.set(je,{id:je,...Number.isFinite(he)?{revision:he}:{},record:ie})}}let N=fc(_,v,A),I={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:N.length,insertedParents:N.filter(D=>D.mode==="INSERT").length,updatedParents:N.filter(D=>D.mode==="UPDATE").length,hasDeletes:N.some(D=>D.tables.some(H=>H.deleteRows>0)),parents:N.map(D=>({parentRow:D.parentRow,mode:D.mode,...D.targetId===void 0?{}:{targetId:D.targetId},tables:D.tables}))};if(N.length>0){if(!r.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await r.confirm(N.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new ee(e.keyFields?"UPDATE":"INSERT",N.length)}let U=D=>new Map(Object.entries(D).map(([H,ie])=>[H,ie.value])),B=D=>pc(U(D.top),new Map([...D.subtables].map(([H,ie])=>[H,ie.map(je=>({values:U(je)}))]))),K=N.filter(D=>D.mode==="INSERT"),te=N.filter(D=>D.mode==="UPDATE"),F=[];for(let D=0;D<K.length;D+=100){let H=await t.postRecords({app:e.appId,records:K.slice(D,D+100).map(B)});F.push(H.ids)}for(let D=0;D<te.length;D+=100)await t.putRecords({app:e.appId,records:te.slice(D,D+100).map(H=>({id:H.targetId,...H.revision===void 0?{}:{revision:H.revision},record:B(H)}))});return e.keyFields?{type:"UPSERT",insertedCount:F.flat().length,updatedCount:te.length,affectedRows:N.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}:{type:"INSERT",createdIds:F,insertedCount:F.flat().length,affectedRows:N.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return sy(e,o,t,r,n,i);let a={appId:e.appId,fields:e.fields,select:iy(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},s=e.keyFields?{type:"UPSERT_SELECT",...a,keyFields:e.keyFields}:{type:"INSERT_SELECT",...a},l={source:e.source,handle:o,cache:new Map};no.set(s,l);let p=d=>(l.audit&&Object.assign(d,{importAudit:l.audit}),d);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let d=await np(s,t,{...r,onLimitReached:"error"},n,i,1);return s.validationErrorTable&&i&&At(i,s.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??ht,hr.get(d)??new Map),p(d)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let d=await(s.type==="UPSERT_SELECT",Cc(s,t,r,n,i,1));return p(d)}let u=await(s.type==="UPSERT_SELECT"?pp(s,t,r,n,i):sp(s,t,r,n,i));return p(u)}async function ay(e,t,r,n,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Ec(t.records);let s=t.records.map(A=>A.recordNumberSourceValue??""),l=Ga(s,e.recordNumberSourceHeader),p=[...e.replaceSubtables],u=[...new Set(n.filter(A=>!A.inSubtable&&A.fieldType==="SUBTABLE").map(A=>A.code))],d=await Re(i.getRecords,e.appId,"",["$id","$revision",...u],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),c=new Map,f=new Map;for(let A of d){let P=Number(A.$id?.value),N=Number(A.$revision?.value);if(Number.isFinite(P)){c.set(P,{id:P,...Number.isFinite(N)?{revision:N}:{},record:A});for(let I of u){let U=A[I]?.value;if(Array.isArray(U)){for(let B of U)if(B.id){let K=f.get(B.id)??[];K.push({parentId:P,table:I}),f.set(B.id,K)}}}}}let E=l.normalized.map(A=>A===null?void 0:Number(A)),R=r.parents.map((A,P)=>{let N=[...A.errors];for(let U of l.errors[P])N.push({operation:"UPDATE",parentRow:A.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[P].top});let I=E[P];return I!==void 0&&!c.has(I)&&N.push({operation:"UPDATE",parentRow:A.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${I} does not exist in APP${e.appId}`,sourceValues:t.records[P].top}),{...A,valid:N.length===0,errors:N}}),m=Rc(t.records,R,E,c,f),y=m.flatMap(A=>[...A.errors]),g=new Set(m.filter(A=>!A.valid).map(A=>A.parentRow)),h={...r,parents:R,errors:y,invalidParentRows:g};xa(h,e.rejectLimit);let T=m.filter(A=>A.valid),O=m.flatMap(A=>A.tables),b=(A,P)=>O.filter(N=>N.table===A).reduce((N,I)=>N+Number(I[P]),0),L=Object.fromEntries(p.map(A=>[A,{existingRows:b(A,"existingRows"),inputRows:b(A,"inputRows"),updateRows:b(A,"updateRows"),addRows:b(A,"addRows"),deleteRows:b(A,"deleteRows"),rowIdNotFound:b(A,"rowIdNotFound")}])),w={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:T.length,insertedParents:0,updatedParents:T.length,hasDeletes:T.some(A=>A.tables.some(P=>P.deleteRows>0)),totalDeleteRows:T.flatMap(A=>A.tables).reduce((A,P)=>A+P.deleteRows,0),rowIdNotFound:T.flatMap(A=>A.tables).reduce((A,P)=>A+P.rowIdNotFound,0),invalidParents:g.size,parents:T.map(A=>({parentRow:A.parentRow,mode:"UPDATE",targetId:A.targetId,tables:A.tables}))},_=[...new Set(e.targets.flatMap(A=>A.kind==="FIELD"?[A.field]:A.children))],C=Ka(y,_),v=[..._,...Fa];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&At(a,e.validationErrorTable,v,C,o.tempTableMaxRows??ht,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:C.length,columns:v,errors:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:T.length,invalid:g.size,mutationCandidates:T.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:w.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let A=y[0];throw new Error(`DmlValidationError: ${A.code} ${A.message} (row=${A.parentRow}, field=${A.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");At(a,e.errorTable,v,C,o.tempTableMaxRows??ht,new Map)}if(T.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(T.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new ee("UPDATE",T.length)}let k=A=>new Map(Object.entries(A).map(([P,N])=>[P,N.value]));for(let A of T){let P=Ba(k(A.top),new Map([...A.subtables].map(([N,I])=>[N,I.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:k(U.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:A.targetId,...A.revision===void 0?{}:{revision:A.revision},record:P}]})}return{type:"UPDATE",updatedCount:T.length,affectedRows:T.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}async function sy(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 Me(e.appId,e.fields,r,i),s=await at(e.appId,e.fields,a,r,i),l=await Bi(t,new Map),p=Ua(e.source,l,n.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),u=p.recordNumberSourceValues;if(!u)throw new Error("InternalError: record-number source values were not materialized.");let d=Ga(u,e.recordNumberSourceHeader),c=new Set,f=[...new Set(d.normalized.filter(w=>w!==null))];for(let w=0;w<f.length;w+=100){let _=f.slice(w,w+100),C=await r.getRecords({app:e.appId,query:`$id in (${_.join(",")}) limit 500`,fields:["$id"]});for(let v of C.records){let k=v.$id?.value;typeof k=="string"&&k!==""&&c.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(w=>[w.code,w])),R=new Map(e.fields.map(w=>[w,E.get(w)?.fieldType??"SINGLE_LINE_TEXT"])),m=p.rows.map((w,_)=>{let C=d.normalized[_],v=[...p.importRowErrors?.[_]??[],...d.errors[_]];return C!==null&&!c.has(C)&&v.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`}),{rowNumber:_+1,operation:"UPDATE",mode:"update",...C!==null&&c.has(C)?{targetId:Number(C)}:{},payload:new Map([[e.recordNumberSourceHeader,u[_]],...e.fields.map(k=>[k,w[k]??""])]),preErrors:v,record:{},evaluationRow:w,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=ia(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),h=[...y,...dr],T={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:h,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(T,{importAudit:p.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&At(o,e.validationErrorTable,h,g.errors,n.tempTableMaxRows??ht,new Map),T}if(!e.onErrorSkip&&g.invalidRows>0){let w=g.errors[0];throw new Error(`DmlValidationError: ${w.$err_code} ${w.$err_message} (row=${w.$err_row}, field=${w.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(At(o,e.errorTable,h,g.errors,n.tempTableMaxRows??ht,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new eo(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,T)}let O=m.filter(w=>!g.invalidRowNumbers.has(w.rowNumber));if(n.confirm&&!await n.confirm(O.length,"UPDATE"))throw new ee("UPDATE",O.length);let b=O.map(w=>({id:w.targetId,record:w.record}));for(let w=0;w<b.length;w+=100)await r.putRecords({app:e.appId,records:b.slice(w,w+100)});let L={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:p.importAudit}),L}async function ly(e,t,r,n,i,o){let a=no.get(e);if(!a){let R=i&&i.size>0?await xt(e.select,t,r,i,n,!0):await St(e.select,t,r,n,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:ye.get(R)}}let s=await Bi(a.handle,a.cache),l=r.maxRecords??1e4,p=new Map((o??[]).map(R=>[R.code,R])),u=e.fields.map(R=>({code:R,fieldType:p.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),d=a.source.kind==="JSON"?va(a.source,s,u,l):Ua(a.source,s,l,e.fields,o);if(a.audit=d.importAudit,a.source.kind==="JSON"||!a.source.projection)return d;let c=mc(a.source.projection),f=new Map(i??[]);f.set($a,d);let E=await xt(c,t,{...r,onLimitReached:"error"},f,n,!0);return{rows:E.rows,columns:E.columns,columnMeta:ye.get(E)}}var fs={materialize:ly};function ap(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 sp(e,t,r,n,i){if(e.checkGroups?.length)return On(e,t,r,n,i);let o=await Me(e.appId,e.fields,t,n),a=await at(e.appId,e.fields,o,t,n),s=await fs.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(ap(s),p.length!==e.fields.length){let f=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(r.confirm&&!await r.confirm(l.length,"INSERT"))throw new ee("INSERT",l.length);let u=await Ee(e.appId,t,n),d=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[p[y]]??"";R[m]={value:tp(g,u.get(m))}}),R});d.forEach(f=>Kt([f],e.fields.filter(E=>E in f),o,a));let c=[];for(let f=0;f<d.length;f+=100){let E=d.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});c.push(R.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}async function _c(e,t,r,n,i){if(e.applyBlocks?.length)return lp(e,t,r,n);if(e.checkGroups?.length&&ot(e.where)){let E=await Me(e.appId,e.assignments.map(m=>m.field),t,n);await at(e.appId,e.assignments.map(m=>m.field),E,t,n);let R=await Ee(e.appId,t,n);return ip(e,R),Bt(e,za(R,e.appId)),await mr(e,t,n),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return On(e,t,r,n,i);if(e.subtableCode)return await mr(e,t,n),by(e,t,r,n);let o=await Me(e.appId,e.assignments.map(E=>E.field),t,n),a=e.assignments.map(E=>E.field),s=await at(e.appId,a,o,t,n);if(await mr(e,t,n),ot(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Ay(e,e.from,t,r,n,i);let l=r.maxRecords??1e4;await Rp(e.assignments,t,r,n);let p=await Ee(e.appId,t,n);if(li(e)){let E=$o(e),m=(await _e(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:r.fetchParallel??1})).records,y=Vo(e,m,p);if(Kt(y.flatMap(g=>g.records.map(h=>h.record)),a,o,s),r.confirm&&!await r.confirm(m.length,"UPDATE"))throw new ee("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let u=$r(e),c=(await Ii(t.getRecords,u.app,u.query,{maxRecords:l,parallel:r.fetchParallel??1})).ids,f=Gr(e,c,p);if(Kt(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),r.confirm&&!await r.confirm(c.length,"UPDATE"))throw new ee("UPDATE",c.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:c.length}}async function lp(e,t,r,n,i=1){if(!e.validateOnly&&r.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Xe(e.where))return uy(e,t,r,n,i);let o=await J(e.appId,t,n),a=Ze(e,o),s=ci(e,o),l=Jo(e),p=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(p.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(p.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let u=Number(p.records[0].$id?.value);if(u!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${u} does not match requested $id ${l}.`);Ei(p.records[0]);let d=eu({statement:e,snapshot:p.records[0],fieldInfos:o,metadata:a}),c=Fe(o,e.assignments.map(O=>O.field)),f=Lt(d.postImage,c)?await Ye(e.appId,t,n):void 0,E=_t(d.postImage,c,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=Le(r.dmlMaxRows,"dmlMaxRows",st),m=Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),y=d.parentRows>R||d.changedSubtableRows>m;if(e.validateOnly){let O=Qr({plans:[d],records:Yr(d).records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:In(O.branches[0]),guards:wn(O.branches[0]),deletedRows:{total:d.tables.reduce((L,w)=>L+w.deletedRows,0),parentRows:d.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:O};return hr.set(b,so(E.columns,o,e.appId)),b}if(d.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${d.parentRows}) exceed dmlMaxRows (${R}).`);if(d.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${d.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=di(d,E.normalizedRecord),h=Yr(g),T=Qr({plans:[g],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:d.parentRows,dmlMaxRows:R,subtableRows:d.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(r.confirm){let O=ao(T,!1);if(!await r.confirm(d.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:O,applyDiagnostic:T}))throw new ee("UPDATE",d.parentRows)}return await t.putRecords(h),{type:"UPDATE",updatedCount:d.parentRows,diagnostic:Ce(T,{successfulChunks:1,successfulParents:d.parentRows})}}async function uy(e,t,r,n,i){let o=Le(r.dmlMaxRows,"dmlMaxRows",st),a=Le(r.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),s=await J(e.appId,t,n),l=Ze(e,s),p;if(to(e))p=await fy(e,t,r,s,n);else{let f=ci(e,s),E=$r(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 u=await gi({statement:e,snapshots:p,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ye(e.appId,t,n)});if(e.validateOnly)return gy(e,u,s);Xs("phase15b",e);let d=Qr(u);if(r.confirm){let f=ao(d);if(!await r.confirm(u.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:d}))throw new ee("UPDATE",u.guards.parentRows)}let c=await Au(u,t,d);return{...c,diagnostic:Ce(d,c)}}function to(e){return(e.applyBlocks?.length??0)>0&&!Xe(e.where)&&(ut(e.where)||ae(e.where))}function cy(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&to(t)&&ae(t.where)}var py=`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 Jm(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Xm}`)}async function Qm(e,t,r,n,i){let o=n.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),p=da(e.where,{fieldTypes:s,fieldOptions:l});Jm(p);let c=p.prefilter===null?"":G(p.prefilter),d=new Set(ui(e,n));for(let E of Zm(e.where))d.add(E);let u=await ey(e.appId,e.where,a,t,i);return(await Re(t.getRecords,e.appId,c,[...d],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:tt(E,null)})).filter(({row:E})=>q(e.where,E,u.fieldTypeResolver,p.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function Zm(e){return Za(e)}async function ey(e,t,r,n,i){let s=[...ty(t)].some(c=>r.get(c)?.fieldType==="STATUS")?await ss(e,n,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":r.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return ur(z({fieldType:"__ID__"}),e,"$id");let d=r.get(c.field);if(!d)return;let u=d.semantics??z(d),f=d.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return ur(f,e,d.code)}}}function ty(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 ry(e,t,r){let n=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Fe(r,e.fields).payloadFields,...qr],a=t.guards.parentRows,s=ua(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:n.length,columns:o,errors:n,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Tn(l),guards:In(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return hr.set(p,oo(o,r,e.appId)),p}function ny(e,t,r){let n=t.validations,i=n.flatMap(p=>p.errors),o=n.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),a=n[0]?.columns?[...n[0].columns]:[...Fe(r,e.assignments.map(p=>p.field)).payloadFields,...qr],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:Tn(s.branches[0]),guards:In(s.branches[0]),deletedRows:{total:t.plans.reduce((p,c)=>p+c.tables.reduce((d,u)=>d+u.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return hr.set(l,oo(a,r,e.appId)),l}function iy(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??[...Fe(r,e.fields).payloadFields,...qr],l=ca(t),p=l.branches.find(E=>E.branch==="insert"),c=l.branches.find(E=>E.branch==="update"),d=Tn(p),u=Tn(c),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...d,...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:d,guards:In(p)},update:{apply:u,guards:In(c)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((y,m)=>y+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return hr.set(f,oo([...s],r,e.appId)),f}function Tn(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:kt(t,"REMOVE")}:{field:t.field,operations:r,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:kt(t,"ADD"),removedValues:kt(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function In(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 st=100,Oe=500;function Le(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 oo(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,We(s,r));continue}o.set(a,Y(i.has(a)?"number":"string"))}return o}async function oy(e,t,r,n,i,o){let a=await Qc(e,t,r,n,i,o),s=await Ee(e.appId,r,i),l=Wo(e,a,s),p=e.assignments.map(u=>u.field),c=await Q(e.appId,r,i),d=await at(e.appId,p,c,r,i);if(Kt(l.flatMap(u=>u.records.map(f=>f.record)),p,c,d),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 ay(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 sy(e,t,r,n){if(await mr(e,t,n),ot(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return py(e,t,r,n);let i=Vl(e),a=(await Ti(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=Wl(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function ly(e,t,r,n){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Cm(e,t,r,n);if(e.checkGroups?.length)return Cn(e,t,r,n);let i=await Me(e.appId,e.fields,t,n),o=await at(e.appId,e.fields,i,t,n),a=[],s=[],l=await Ee(e.appId,t,n),p=rp(e),c=await Nn(e.appId,e.keyFields,p,t,r,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((y,m)=>{let g=u[m];g.type==="CASE_VALUE"?E[y]={value:mt(g.expr,{},l.get(y))}:E[y]={value:Qe(g,l.get(y))}});let R=Pn(c,p[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),Kt([...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 d=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});d.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:d.flat().length,updatedCount:s.length}}function rp(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"?Pe(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function ps(e,t,r,n){if(t.length===0)return;let i=await Ee(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 uy(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=ao(a),l=new Map;for(let c of e.values){let d=bc(c[o]);if(!s.get(d))throw new Error(`_pid=${d} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,y)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:bc(c[y])}}});let E=l.get(d);E?E.push(f):l.set(d,[f])}let p=[];for(let[c,d]of l.entries()){let u=s.get(c),E=[...On(u,i),...d];p.push(np(e.appId,c,Ln(u),i,E))}for(let c of p)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function cy(e,t,r,n){let i=e.subtableCode;if(!Rn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];it(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&zi(u.value.expr,o);let a=await ps(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=ds(s,i).filter(u=>q(e.where,u.flat,a));if(r.confirm&&!await r.confirm(p.length,"UPDATE"))throw new Z("UPDATE",p.length);let c=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=c.get(u.parentId);f||(f=new Map,c.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:li(R.value,u.flat,a)}}f.set(u.rowId,E)}let d=ao(s);for(let[u,f]of c.entries()){let E=d.get(u);if(!E)continue;let y=On(E,i).map(m=>{let g=m.id??"";if(!g)return m;let h=f.get(g);return h?{id:g,value:h}:{id:g}});await t.putRecords(dy(e.appId,u,Ln(E),i,y))}return{type:"UPDATE",updatedCount:p.length}}async function py(e,t,r,n){let i=e.subtableCode;if(!Rn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];it(e.where,o);let a=await ps(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=ds(s,i).filter(u=>q(e.where,u.flat,a));if(r.confirm&&!await r.confirm(p.length,"DELETE"))throw new Z("DELETE",p.length);let c=new Map;for(let u of p){let f=c.get(u.parentId);f?f.push(u.rowIndex):c.set(u.parentId,[u.rowIndex])}let d=ao(s);for(let[u,f]of c.entries()){let E=d.get(u);if(!E)continue;let R=On(E,i),y=new Set(f),m=R.filter((g,h)=>!y.has(h));await t.putRecords(np(e.appId,u,Ln(E),i,m))}return{type:"DELETE",deletedCount:p.length}}function ao(e){let t=new Map;for(let r of e){let n=String(r.$id?.value??"");n&&t.set(n,r)}return t}function ds(e,t){let r=[];for(let n of e){let i=String(n.$id?.value??""),o=Ln(n),a=On(n,t);for(let s=0;s<a.length;s++){let l=a[s],p={...ci(l,s),_pid:i};for(let[c,d]of Object.entries(n))c!==t&&(p[`_p.${c}`]=qa(d?.value));r.push({parent:n,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return r}function On(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function Ln(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function np(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function dy(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function fy(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 bc(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?V(e):e.type==="CASE_VALUE"?Pe(e.expr,{}):e.elements.map(t=>t.value).join(",")}function qa(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 Rn(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Rn(e.left)||Rn(e.right);case"NOT":case"GROUP":return Rn(e.expr);default:return!1}}async function Ey(e,t,r,n){let i=[];it(e.where,i);let o=await ps(e.appId,i,t,n),a=await Q(e.appId,t,n);if(ot(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")},p=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),c=ds(p,e.subtableCode),d=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&q(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(r.confirm&&!await r.confirm(d.size,"UPDATE"))throw new Z("UPDATE",d.size);let u=ao(p);for(let f of d){let E=u.get(f);if(!E)continue;let y=On(E,e.subtableCode).map((g,h)=>({row:g,i:h,flat:Ry(E,e.subtableCode,g,h)}));y.sort((g,h)=>my(g.flat,h.flat,e.by,l));let m=y.map(g=>g.row.id??"");await t.putRecords(fy(e.appId,f,Ln(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:d.size}}function Ry(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}`]=qa(a?.value));for(let[o,a]of Object.entries(r.value??{}))i[o]=qa(a?.value);return i}function my(e,t,r,n){for(let i of r){let o=Pc(i.key,e),a=Pc(i.key,t),s=i.key.type==="FIELD_NAME"?n(ke(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?Mt(i.key.expr).semantics??x("string"):x("number"),l=Pt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Pc(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(te(e.expr,t));case"FUNC_KEY":return re(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function ip(e,t,r,n,i){if(e.checkGroups?.length)return Cn(e,t,r,n,i);let o=await Me(e.appId,e.fields,t,n),a=await at(e.appId,e.fields,o,t,n),s=await cs.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(Zc(s),p.length!==e.fields.length){let m=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let c=[],d=[],u=await Ee(e.appId,t,n),f=l.map((m,g)=>{let h={};return e.fields.forEach((A,P)=>{if(s.importPresence&&!s.importPresence[g]?.has(A))return;let I=m[p[P]]??"";h[A]={value:qc(I,u.get(A))}}),h});f.forEach(m=>Kt([m],e.fields.filter(g=>g in m),o,a));let E=f.map(m=>e.keyFields.map(g=>String(m[g]?.value??"")));if(to.has(e)){let m=e.keyFields.map(h=>u.get(h)==="NUMBER"),g=new Set;for(let h of E){let A=Ft(h,m);if(g.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");g.add(A)}}let R=await Nn(e.appId,e.keyFields,E,t,r,u);if(f.forEach((m,g)=>{let h=Pn(R,E[g]);h!==void 0?d.push({id:h,record:m}):c.push(m)}),r.confirm&&c.length+d.length>0){let m=c.length+d.length;if(!await r.confirm(m,"UPDATE"))throw new Z("UPDATE",m)}let y=[];for(let m=0;m<c.length;m+=100){let g=await t.postRecords({app:e.appId,records:c.slice(m,m+100)});y.push(g.ids)}for(let m=0;m<d.length;m+=100)await t.putRecords({app:e.appId,records:d.slice(m,m+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:d.length}}async function op(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 ap(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 yy(e,t=!1){try{let r=new Yt(e).tokenize(),n=new qt(r,{import:t}).parse();return Gn("phase15b",n),sr(n),n}catch(r){throw r instanceof ue||r instanceof T,r}}async function wn(e,t,r,n,i){let o=[];Yi(e,t,r,n,o,i),await Promise.all(o)}async function sp(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(wn(s.condition,t,r,n,i));await Promise.all(o)}function mn(e,t,r,n,i){return i!==void 0&&i.size>0?xt(e,t,r,i,n):St(e,t,r,n)}function Yi(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(mn(a.query,t,r,n,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(p=>p[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(mn(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":Yi(e.left,t,r,n,i,o),Yi(e.right,t,r,n,i,o);break;case"NOT":case"GROUP":Yi(e.expr,t,r,n,i,o);break;case"EXISTS":{let a=e;i.push(mn(a.query,t,r,n,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function lp(e,t,r,n){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await St(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 up(e,t,r,n,i){let o=new Map,a=[];for(let p=0;p<e.length;p++){let c=e[p];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(c.query),u=o.get(d);u||(u=mn(c.query,t,r,n,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(d,u)),a.push([p,u])}let s=await Promise.all(a.map(([,p])=>p)),l=new Map;return a.forEach(([p],c)=>l.set(p,s[c])),l}var cp=new WeakMap,pp=new WeakMap;async function gy(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))},p=new Map,c=new Map,d=new Set,u=i??await Xa(e,l,r),f=R=>u.nodes.find(y=>y.source===R||JSON.stringify(y.source)===JSON.stringify(R)),E=async R=>{if(R===null||typeof R!="object"||d.has(R))return;if(d.add(R),Array.isArray(R)){await Promise.all(R.map(E));return}let y=R;if(y.type==="SELECT"){let m=R;await ro(m,l,r);let g=[m.from,...m.joins.map(I=>I.table)].filter(I=>I.cteName===null).map(I=>I.appId);(Be(m.where)||m.orderBy.length>0||m.columns.some(I=>I.type==="WINDOW_COL"&&I.orderBy.length>0))&&g.forEach(I=>o.add(I));let A=await hn(m,l,r),P=f(m);if(A.capability==="UNSUPPORTED"&&!P)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(A)}).`);if(p.set(m,A),m.orderBy.length>0||m.columns.some(I=>I.type==="WINDOW_COL"&&I.orderBy.length>0)){let I=await Sn(m,l,r);if(m.orderMode!=="KINTONE_NATIVE")for(let w of I.semantics.values())w.fieldType==="STATUS"&&w.source&&a.add(w.source.appId);let _=[m.from,...m.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ji(m)&&!_&&P?.allowed!==!1){let w=A.capability==="EXACT_PUSHDOWN"?we(m):"FULL_SCAN";c.set(m,(m.orderMode==="KINTONE_NATIVE"?Zr:Qr)({stmt:m,staticMode:w,whereCapability:A.capability,whereReasons:A.reasons,orderSemantics:I.semantics,maxRecords:n,hasKlike:ae(m.where)}))}}}else if(y.type==="VALIDATE"){let m=R;o.add(m.appId);let g=await Q(m.appId,l,r),h=new Map(g.filter(N=>!N.inSubtable).map(N=>[N.code,N])),A=new Set(g.filter(N=>N.inSubtable).map(N=>N.code)),P=oa(m,g),I=cr(m.checkGroups??[]),_=Za(m.where);for(let N of I){if(N.field!=="$id"&&!h.has(N.field)&&!A.has(N.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${m.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!h.has(N.field)&&A.has(N.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let N of _){if(N!=="$id"&&!h.has(N)&&!A.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${m.appId}.`);if(N!=="$id"&&!h.has(N)&&A.has(N))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let w=new Map([...h].map(([N,U])=>[N,U.fieldType]));w.set("$id","RECORD_NUMBER"),Bt(m,w);let v=rt(m.where,N=>N.field==="$id"?z({fieldType:"__ID__"}):h.get(N.field)?.semantics??(h.has(N.field)?z(h.get(N.field)):void 0));if(v.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(v)}).`);let O=new Map([...h].map(([N,U])=>[N,U.fieldType])),S=new Map([...h.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),C=m.where===null?null:v.capability==="EXACT_PUSHDOWN"?m.where:rr(m.where,{allowUnqualifiedFields:!0,fieldTypes:O,fieldOptions:S,allowKlike:!1}),L=P.some(N=>N.field.fieldType==="NUMBER");L&&(s.add(m.appId),await Ye(m.appId,l,r)),cp.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),..._,...I.map(N=>N.field)])],subtables:new Map([...new Set(P.flatMap(N=>N.subtableCode?[N.subtableCode]:[]))].map(N=>[N,P.filter(U=>U.subtableCode===N).length])),capability:v,prefilter:C,numberPrecision:L})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(R.appId),y.type==="UPDATE"&&R.applyBlocks?.length){let g=R,h=await Q(g.appId,l,r);if(Ze(g,h),Zi(g)){let A=h.filter(I=>!I.inSubtable),P=da(g.where,{fieldTypes:new Map(A.map(I=>[I.code,I.fieldType])),fieldOptions:new Map(A.flatMap(I=>I.optionOrder?[[I.code,new Set(Object.keys(I.optionOrder))]]:[]))});pp.set(g,P)}}let m=R;(m.type!=="UPDATE"||!Zi(m))&&f(m)?.allowed!==!1&&await mr(m,l,r)}await Promise.all(Object.values(y).map(E))};if(await E(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&pt(e)){let R=dt(e),y=await hn(R,l,r),m=f(R);if(y.capability==="UNSUPPORTED"&&!m)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(y)}).`);if(p.set(R,y),ji(R)&&m?.allowed!==!1){let g=await Sn(R,l,r);c.set(R,(R.orderMode==="KINTONE_NATIVE"?Zr:Qr)({stmt:R,staticMode:y.capability==="EXACT_PUSHDOWN"?we(R):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:n,hasKlike:ae(R.where)}))}}return{capabilities:p,orderPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:u}}function Nc(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 hy(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function Ay(e){return e==="<>"?"!=":e}function ve(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(ve).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ve(t.expr);case"GROUPING_FIELD":return`GROUPING(${ve(t.ref)})`;case"GROUPING_REF":return ve(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ve(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ve(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(ve).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ve).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function pn(e){try{let t=e;switch(t.type){case"BINARY":return`${ve(t.left)} ${hy(t.op)} ${ve(t.right)}`;case"NULL_CHECK":return`${ve(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${pn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${pn(t.right)})`;case"NOT":return`NOT (${pn(t.expr)})`;case"GROUP":return`(${pn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Sy(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){let n=r.prefilterPlan;if(r.allowed&&n?.prefilterWhere&&n.residualWhere){for(let o of n.exactRelativeLeaves){let a=o.right.type==="KINTONE_FUNC"?o.right.name:"(unknown)",s=o.left.type==="FIELD"?o.left.field:void 0,l=Ay(o.op),p=r.capability?.reasons.find(c=>c.functionName===a&&(s===void 0||c.field===s)&&c.operator===l);t.push(` relative date function: ${a}`," relative date evaluation: kintone server exact prefilter",` field: ${p?.field??s??"(unknown)"} (${p?.fieldType??"unknown"})`,` operator: ${p?.operator??l}`)}let i=G(n.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${i}`,` client residual: ${pn(n.residualWhere)}`," relative date client evaluations: 0",` kintone query: ${i}`);continue}for(let i of r.functionNames){let o=r.capability?.reasons.find(a=>a.functionName===i);t.push(` relative date function: ${i}`," evaluation: kintone server",` field: ${o?.field??"(unknown)"} (${o?.fieldType??"unknown"})`,` operator: ${o?.operator??"(unknown)"}`,` where capability: ${r.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${r.restQuery||"(\u306A\u3057)"}`)}}return t}async function Ty(e,t,r,n,i,o=100,a=Oe,s){let l=s??await Xa(e.query,t,r),p=await gy(e.query,t,r,n,l),c=Sy(l),d=l.hasRelativeDate&&!l.allowed?[...Nc(p),...c]:[...Nc(p),...c,...Iy(dp(e.query,void 0,p.capabilities,p.orderPlans,o,a,n),i)];return{type:"SELECT",columns:["plan"],rows:d.map(u=>({plan:u})),rowCount:d.length}}function Iy(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 dp(e,t,r,n,i=100,o=Oe,a=1e4){if(e.type==="UNION")return by(e,r,n);if(e.type==="WITH")return Py(e,r,n);if(e.type==="INSERT")return Oy(e,t,i,o);if(e.type==="INSERT_SELECT")return Ly(e,t,r,n);if(e.type==="UPSERT")return Uy(e,t,i,o);if(e.type==="UPSERT_SELECT")return ky(e,t,r,n);if(e.type==="UPDATE")return _y(e,t,r,n,i,o,a);if(e.type==="DELETE")return vy(e,t);if(e.type==="REORDER")return My(e,t);if(e.type==="VALIDATE")return wy(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...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 s=e.keyFields?"UPSERT":"INSERT",l=e.targets?.some(p=>p.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 Ue(e,t,r,n)}function wy(e,t){let r=cp.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)":G(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?Qa:Ja).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 Ue(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":we(e),s=Ny(e);i&&i.capability!=="EXACT_PUSHDOWN"&&s.push(...i.reasons.map(f=>f.code));let l=[],p=Au(e,An.get(e)?.allItems.length);t&&l.push(t),l.push(` mode: ${a}`),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 c=o&&!o.requiresCompleteInput?{...e,orderBy:[]}:e,d=wt(c);o?.requiresCompleteInput&&d.add("LOCAL_ORDER");let u=ot(e.where);if(d.size>0&&(!u||p!==null)&&(l.push(" complete input: required (onLimit=truncate disabled)"),l.push(` complete input reason: ${[...d].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=Vn(o?.kind==="CANONICAL_REST_TOP_N"?Kc(e):e);l.push(` app: APP${e.from.appId} (${e.from.appId})`);let E=o?.kind==="KORDER_CURSOR"?fa(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=ir(e),E=bt(e,e.from),R=e.from.alias?` AS ${e.from.alias}`:"",y=f.mainCondition,m=Uc(e),g=e.joins.length===0&&i?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ct(e.where)?G(e.where):"",h=y!==null?G(y):g||"(\u5168\u4EF6\u53D6\u5F97)";l.push(` app: APP${e.from.appId}${R} (${e.from.appId})`),l.push(` kintone query: ${h}`),m!==null&&l.push(` pushdown candidate: ${G(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 A of e.joins){let P=bt(e,A.table),I=A.table.alias?` AS ${A.table.alias}`:"",_=A.type==="INNER"?"JOIN":`${A.type} JOIN`,w=A.table.alias?f.joinConditions.get(A.table.alias)??null:null,v=A.table.alias&&!A.table.subtableCode&&A.table.cteName===null&&e.where?Ur(e.where,{tableAlias:A.table.alias}):null,O=w!==null?G(w):"(\u5168\u4EF6\u53D6\u5F97)";l.push(` ${_}: APP${A.table.appId}${I} (${A.table.appId})`),l.push(` kintone query: ${O}`),v!==null&&l.push(` pushdown candidate: ${G(v)}\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(...Cy(e,r,n)),l}function by(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(...Ue(a,`[union:${s+1}]`,t,r))}),o}function Py(e,t,r){let n=[];for(let i of e.ctes)i.query.type==="SELECT"&&(n.push(...Ue(i.query,`[cte: ${i.name}]`,t,r)),n.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&n.push(...dp(e.query,"[main]",t,r)),pt(e)){n.push("");let i=dt(e);n.push(...Ue(i,"[effective: inlined CTE]",t,r))}return n}function Ny(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=ie(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"),ct(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),ut(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 Cy(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(...Ue(a.right.query,`[subquery:${i++}]`,t,r))),a.right.type==="SUBQUERY_IN_LIST"&&(n.push(""),n.push(...Ue(a.right.query,`[subquery:${i++}]`,t,r)));break;case"EXISTS":n.push(""),n.push(...Ue(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(...Ue(a.query,`[subquery:${i++}]`,t,r)));return e.having&&o(e.having),n}function Oy(e,t,r=st,n=Oe){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,...fs(Ai(e,r,n))]:a}function Ly(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(...Ue(e.select,"[source SELECT]",r,n)),i}function _y(e,t,r,n,i=100,o=Oe,a=1e4){if(e.applyBlocks?.length)return Dy(e,t,i,o,a);let s=Kl(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=si(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),d=[];if(t&&d.push(t),d.push(e.from?" [UPDATE FROM]":" [UPDATE]"),d.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;d.push(` source: ${f} AS ${e.from.alias}`),d.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),d.push(` target filter: ${e.from.targetFilter?bn(e.from.targetFilter):"(none)"}`)}else d.push(` kintone query: ${bn(e.where)}`);e.subtableCode||(d.push(" selection: exact native pushdown; JS residual none"),d.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),d.push(ot(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"),c&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!c&&u.push("\u5358\u7D14 SET"),d.push(` set type: ${u.join(", ")}`),p){let f=Fy(e);f.length>0&&d.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}d.push(" set fields:");for(let f of e.assignments)d.push(` ${By(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(d.push(""),d.push(...Ue(f.value.query,`[subquery: ${f.field}]`,r,n)));return d}function Dy(e,t,r,n,i){let o=Ai(e,r,n),a=o.branches[0],p=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),c=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],d=c.includes("REMOVE"),u=pp.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(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: ${bn(e.where)}`,`parent cardinality: ${Xe(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${c.join(" | ")}`,`selector: ${p.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${d?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${d?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${r}`,`dmlMaxSubtableRows: ${n}`,"MCP mutation: disabled in v1",...fs(o)]}function vy(e,t){let r=[];return t&&r.push(t),r.push(" [DELETE]"),r.push(` target: APP${e.appId} (${e.appId})`),r.push(` kintone query: ${bn(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(ot(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),r}function Uy(e,t,r=st,n=Oe){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,...fs(Ai(e,r,n))]:a}function fs(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 ky(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(...Ue(e.select,"[source SELECT]",r,n)),i}function My(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(xy).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${r}`,` scope: ${n}`,` by: ${i}`,ot(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: ${bn(e.where)}`),o}function xy(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function bn(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Fy(e){let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"&&eo(r,t),r.type==="STRING_FUNC"&&eo(r,t),(r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP")&&yn(r,t);return[...t]}function eo(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(eo(e.left,t),eo(e.right,t)),e.type==="STRING_FUNC")for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&yn(r,t)}async function fp(e,t,r,n,i){let o=us(e),a=await Ee(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 Ee(t.appId,r,n),p=new Set,c=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 le(`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 le(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(u.field)}else throw le(`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 le(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw le(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(u.field)}let d=new Map;for(let[u,f]of a)d.set(u,f),d.set(`APP${e.appId}.${u}`,f);d.set("$id","RECORD_NUMBER"),d.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)d.set(`${t.alias}.${u}`,f);return{targetFields:[...p],sourceFields:[...c],evaluationTypes:d}}function Ky(e,t,r){if(!e)return{};let n=tt(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 yn(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"&&yn(r,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(yn(e.left,t),yn(e.right,t))}function By(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} = ${Ep(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 Ep(e){return`${Cc(e.left)} ${e.op} ${Cc(e.right)}`}function Cc(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?V(e):e.type==="ARITH"?`(${Ep(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 ye=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 $t(e){return new ye("READ_ONLY_VIOLATION",e)}function Es(e,t){return new ye("PARSE_ERROR",e,t)}function Rp(){let e=new yr;return new ye("SEARCH_ABORTED",e.message,e)}function _n(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function $y(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 Dn(e){return e instanceof ye?e:e instanceof ue||e instanceof T?new ye("PARSE_ERROR",_n(e),e):e instanceof yr||e?.name==="SearchAbortedError"?new ye("SEARCH_ABORTED",_n(e),e):e instanceof Se||e?.name==="FetchAllLimitError"?new ye("FETCH_LIMIT_EXCEEDED",_n(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ye("CLIENT_ERROR",e.message,e.cause):$y(e)?new ye("CLIENT_ERROR",_n(e),e):new ye("EXECUTION_ERROR",_n(e),e)}var Gy=2,so=5,Vy=3e4,Wy=10*6e4+3e4,lo=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??Gy;if(!Number.isSafeInteger(n)||n<1||n>so)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${so}.`);this.maxActive=n,this.waitTimeoutMs=r.waitTimeoutMs??Vy,this.quarantineMs=r.quarantineMs??Wy}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 Ii(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>so)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${so}.`)}};function Hy(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Yy(e,t=n=>new Promise(i=>setTimeout(i,n)),r=Hy){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 jy(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 mp(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 jy(Yy(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),r=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function yp(e){return gp(e,zy(e))}function gp(e,t,r=!1,n){let i=[];for(let o of Object.values(e)){let a=Xy(o.options),s=Jy(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:uo(o.minValue),maxValue:uo(o.maxValue),minLength:uo(o.minLength),maxLength:uo(o.maxLength),defaultValue:o.defaultValue,inSubtable:r,...n?{subtableCode:n}:{},writable:!t.has(o.code)&&!qy.has(o.type)};l.semantics=z(l),i.push(l),o.fields&&i.push(...gp(o.fields,t,!0,o.type==="SUBTABLE"?o.code:n))}return i}var qy=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function zy(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 uo(e){return e==null||e===""?void 0:e}function Xy(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 Jy(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function hp(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 Qy="Filter aborted because of too many search results";function Ap(e){return e?.includes(Qy)===!0}var Sp="/k/v1/records.json",co="/k/v1/records/cursor.json",Zy=4096,eg=2,Rs=e=>kintone.api.url(e,!0);function tg(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},n=kintone.api.urlForGet(Sp,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(n).byteLength<=Zy?{url:n,init:{method:"GET",credentials:"include",headers:i}}:{url:Rs(Sp),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function vn(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let r=t,n=[typeof r.code=="string"&&r.code!==""?`${r.message}\uFF08${r.code}\uFF09`:r.message];if(r.errors!==null&&typeof r.errors=="object")for(let[o,a]of Object.entries(r.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&n.push(`${o}: ${s.join(" / ")}`)}let i=new Error(n.join(`
12
- `));return typeof r.code=="string"&&r.code!==""&&(i.name=r.code),typeof r.code=="string"&&Object.assign(i,{code:r.code}),typeof r.status=="number"&&Object.assign(i,{status:r.status}),Object.assign(i,{cause:e}),i}async function rg(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let n=t;return vn({code:n.code,message:n.message,errors:n.errors,status:e.status})}let r=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(r,{status:e.status,cause:t}),vn(r)}catch(t){let r=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(r,{status:e.status,cause:t}),vn(r)}}function ng(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Gt(e,t,r){try{return await kintone.api(Rs(e),t,r)}catch(n){throw vn(n)}}function ig(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Tp(e={}){let t=e.cursorMaxActive??eg;ig(t);let r=null,n=null,i=new Set;return{async getRecords(a){try{let s=tg(a),l=await fetch(s.url,s.init);if(!l.ok)throw await rg(l);let p=await l.json();return Ap(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(s){throw vn(s)}},async openCursor(a){let s=Rs(co),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??=new lo(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(),c;try{c=await r.runCreate(()=>Gt(co,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(p.release(),R):(p.quarantine(),new wi(R))}let d=c.id,u=mp(Number(c.totalCount),{get:()=>Gt(co,"GET",{id:d}),delete:()=>Gt(co,"DELETE",{id:d}),isAlreadyReleasedError:ng,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 s=[],l=0;for(;;){let p=await Gt("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of p.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(p.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Gt("/k/v1/app/form/fields.json","GET",{app:a});return yp(s.properties)},async getNumberPrecision(a){let s=await Gt("/k/v1/app/settings.json","GET",{app:a});return iu(s)},async getProcessStatuses(a){let s=await Gt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:hp(s.states)}}}}var Ip=new Set(["postRecords","putRecords","deleteRecords"]),Un=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 Tt(e){try{return await e()}catch(t){throw new Un(t)}}function og(e){return()=>{throw $t(`${String(e)} is blocked by the readonly client`)}}function ms(e){let t=e.getRecords.bind(e),r=e.openCursor.bind(e),n=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let p=await Tt(()=>t(l));if(p.searchAborted===!0)throw Rp();return p},openCursor:async l=>{let p=await Tt(()=>r(l)),c=p.nextPage.bind(p),d=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>Tt(()=>c()),close:()=>Tt(()=>d())}},getApps:()=>Tt(()=>n()),getFields:l=>Tt(()=>i(l)),getNumberPrecision:l=>Tt(()=>o(l)),getProcessStatuses:l=>Tt(()=>a(l))});return new Proxy(s,{get(l,p,c){return Ip.has(p)?og(p):Reflect.get(l,p,c)},has(l,p){return Ip.has(p)?!1:Reflect.has(l,p)}})}function ag(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 Un(o.reason)})(),r)}}}async function ys(e,t){let r=ag(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 wp=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),sg=new Set([...wp,"onLimitReached"]);function lg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function gs(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function ug(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 hs(e,t){lg(e);let r=t==="run"?sg:wp;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(ug(e.client),e.maxRecords!==void 0&&gs(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&gs(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(gs(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 bp(e,t={}){let r=new Yt(e).tokenize(),n=new qt(r,t).parse();return sr(n),n}function Pp(e){if(e.trim()==="")throw Es("SQL statement is empty");try{return bp(e,{import:!0})}catch(t){let r=Dn(t);throw r.code==="PARSE_ERROR"?r:Es("SQL statement could not be parsed",t)}}function cg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw $t("Unclassifiable statement branch is not allowed");return e.type}function Vt(e,t){let r=cg(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 $t("WITH contains an unclassifiable CTE list");for(let i of n.ctes){if(i===null||typeof i!="object"||!("query"in i))throw $t("WITH contains an unclassifiable CTE body");Vt(i.query,t)}Vt(n.query,t);return}case"UNION":{let n=e;Vt(n.left,t),Vt(n.right,t);return}default:break}throw $t(`${r} statements are not allowed in ${t} queries`)}function pg(e){Vt(e,"run")}function Np(e){pg(Pp(e))}function Cp(e){let t=e.trim(),r=Pp(t);return r.type==="EXPLAIN"?(Vt(r.query,"explain"),t):(Vt(r,"explain"),`EXPLAIN ${t}`)}function Op(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function Lp(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function dg(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,String(r)]))}function fg(e,t){let r=t?.get(e),n=r?.fieldType??r?.semantics?.fieldType,i=r?.semantics?.compareMode,o=r?.sortKind??(i==="number"||i==="string"?i:void 0),a=r?.publicSourceApp;return{name:e,valueType:"string",...n!==void 0?{fieldType:n}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}async function _p(e,t){try{let r=hs(t,"run");Np(e);let n=await ys(r.client,o=>za(e,ms(o),{...r.executeOptions,captureColumnMeta:!0}));Lp(n);let i=Oc(n);return{type:"query",rows:n.rows.map(dg),columns:n.columns.map(o=>fg(o,i)),rowCount:n.rowCount,warnings:[...n.warnings??[]],metrics:Op(n.metrics)}}catch(r){throw Dn(r)}}async function Dp(e,t){try{let r=hs(t,"explain"),n=await ys(r.client,o=>za(Cp(e),ms(o),r.executeOptions));Lp(n);let i=n.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
- `),metrics:Op(n.metrics)}}catch(r){throw Dn(r)}}var Eg="3.22.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runQuery,version});
11
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function dy(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${py}`)}async function fy(e,t,r,n,i){let o=n.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),p=fa(e.where,{fieldTypes:s,fieldOptions:l});dy(p);let u=p.prefilter===null?"":V(p.prefilter),d=new Set(ci(e,n));for(let E of Ey(e.where))d.add(E);let c=await Ry(e.appId,e.where,a,t,i);return(await Re(t.getRecords,e.appId,u,[...d],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:tt(E,null)})).filter(({row:E})=>q(e.where,E,c.fieldTypeResolver,p.appliedKlikes,c.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function Ey(e){return ts(e)}async function Ry(e,t,r,n,i){let s=[...my(t)].some(u=>r.get(u)?.fieldType==="STATUS")?await cs(e,n,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":r.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return ur(z({fieldType:"__ID__"}),e,"$id");let d=r.get(u.field);if(!d)return;let c=d.semantics??z(d),f=d.fieldType==="STATUS"&&s?{...c,optionOrder:s}:c;return ur(f,e,d.code)}}}function my(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 yy(e,t,r){let n=t.validations.flatMap(u=>u.errors),i=t.validations.reduce((u,d)=>u+(d.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Fe(r,e.fields).payloadFields,...zr],a=t.guards.parentRows,s=ca(t),l=s.branches[0],p={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:n.length,columns:o,errors:n,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:In(l),guards:wn(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return hr.set(p,so(o,r,e.appId)),p}function gy(e,t,r){let n=t.validations,i=n.flatMap(p=>p.errors),o=n.reduce((p,u)=>p+(u.invalidRows>0?1:0),0),a=n[0]?.columns?[...n[0].columns]:[...Fe(r,e.assignments.map(p=>p.field)).payloadFields,...zr],s=Qr(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:In(s.branches[0]),guards:wn(s.branches[0]),deletedRows:{total:t.plans.reduce((p,u)=>p+u.tables.reduce((d,c)=>d+c.deletedRows,0),0),parentRows:t.plans.filter(p=>p.tables.some(u=>u.deletedRows>0)).length},diagnostic:s};return hr.set(l,so(a,r,e.appId)),l}function hy(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??[...Fe(r,e.fields).payloadFields,...zr],l=pa(t),p=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),d=In(p),c=In(u),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...d,...c],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:d,guards:wn(p)},update:{apply:c,guards:wn(u)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return hr.set(f,so([...s],r,e.appId)),f}function In(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:kt(t,"REMOVE")}:{field:t.field,operations:r,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:kt(t,"ADD"),removedValues:kt(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function wn(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 st=100,Te=500;function Le(e,t,r){let n=e??r;if(!Number.isSafeInteger(n)||n<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return n}function so(e,t,r){let n=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:z({fieldType:"RECORD_NUMBER"})});continue}let s=n.get(a);if(s){o.set(a,We(s,r));continue}o.set(a,Y(i.has(a)?"number":"string"))}return o}async function Ay(e,t,r,n,i,o){let a=await op(e,t,r,n,i,o),s=await Ee(e.appId,r,i),l=Ho(e,a,s),p=e.assignments.map(c=>c.field),u=await J(e.appId,r,i),d=await at(e.appId,p,u,r,i);if(Kt(l.flatMap(c=>c.records.map(f=>f.record)),p,u,d),n.confirm&&!await n.confirm(a.length,"UPDATE"))throw new ee("UPDATE",a.length);for(let c of l)await r.putRecords(c);return{type:"UPDATE",updatedCount:a.length}}function Sy(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 Ty(e,t,r,n){if(await mr(e,t,n),ot(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Py(e,t,r,n);let i=Yl(e),a=(await Ii(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 ee("DELETE",a.length);let s=jl(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function Iy(e,t,r,n){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Vm(e,t,r,n);if(e.checkGroups?.length)return On(e,t,r,n);let i=await Me(e.appId,e.fields,t,n),o=await at(e.appId,e.fields,i,t,n),a=[],s=[],l=await Ee(e.appId,t,n),p=up(e),u=await Cn(e.appId,e.keyFields,p,t,r,l);if(e.values.forEach((c,f)=>{let E={};e.fields.forEach((m,y)=>{let g=c[y];g.type==="CASE_VALUE"?E[m]={value:mt(g.expr,{},l.get(m))}:E[m]={value:Qe(g,l.get(m))}});let R=Nn(u,p[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),Kt([...a,...s.map(c=>c.record)],e.fields,i,o),r.confirm&&a.length+s.length>0){let c=a.length+s.length;if(!await r.confirm(c,"UPDATE"))throw new ee("UPDATE",c)}let d=[];for(let c=0;c<a.length;c+=100){let f=await t.postRecords({app:e.appId,records:a.slice(c,c+100)});d.push(f.ids)}for(let c=0;c<s.length;c+=100)await t.putRecords({app:e.appId,records:s.slice(c,c+100)});return{type:"UPSERT",insertedCount:d.flat().length,updatedCount:s.length}}function up(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"?W(i):i.type==="CASE_VALUE"?Ne(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Es(e,t,r,n){if(t.length===0)return;let i=await Ee(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 wy(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=lo(a),l=new Map;for(let u of e.values){let d=Dc(u[o]);if(!s.get(d))throw new Error(`_pid=${d} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Dc(u[m])}}});let E=l.get(d);E?E.push(f):l.set(d,[f])}let p=[];for(let[u,d]of l.entries()){let c=s.get(u),E=[...Ln(c,i),...d];p.push(cp(e.appId,u,_n(c),i,E))}for(let u of p)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function by(e,t,r,n){let i=e.subtableCode;if(!mn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];it(e.where,o);for(let c of e.assignments)c.value.type==="CASE_VALUE"&&Ji(c.value.expr,o);let a=await Es(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=Rs(s,i).filter(c=>q(e.where,c.flat,a));if(r.confirm&&!await r.confirm(p.length,"UPDATE"))throw new ee("UPDATE",p.length);let u=new Map;for(let c of p){if(!c.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=u.get(c.parentId);f||(f=new Map,u.set(c.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:ui(R.value,c.flat,a)}}f.set(c.rowId,E)}let d=lo(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let m=Ln(E,i).map(y=>{let g=y.id??"";if(!g)return y;let h=f.get(g);return h?{id:g,value:h}:{id:g}});await t.putRecords(Ny(e.appId,c,_n(E),i,m))}return{type:"UPDATE",updatedCount:p.length}}async function Py(e,t,r,n){let i=e.subtableCode;if(!mn(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];it(e.where,o);let a=await Es(e.appId,o,t,n),s=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),p=Rs(s,i).filter(c=>q(e.where,c.flat,a));if(r.confirm&&!await r.confirm(p.length,"DELETE"))throw new ee("DELETE",p.length);let u=new Map;for(let c of p){let f=u.get(c.parentId);f?f.push(c.rowIndex):u.set(c.parentId,[c.rowIndex])}let d=lo(s);for(let[c,f]of u.entries()){let E=d.get(c);if(!E)continue;let R=Ln(E,i),m=new Set(f),y=R.filter((g,h)=>!m.has(h));await t.putRecords(cp(e.appId,c,_n(E),i,y))}return{type:"DELETE",deletedCount:p.length}}function lo(e){let t=new Map;for(let r of e){let n=String(r.$id?.value??"");n&&t.set(n,r)}return t}function Rs(e,t){let r=[];for(let n of e){let i=String(n.$id?.value??""),o=_n(n),a=Ln(n,t);for(let s=0;s<a.length;s++){let l=a[s],p={...pi(l,s),_pid:i};for(let[u,d]of Object.entries(n))u!==t&&(p[`_p.${u}`]=Xa(d?.value));r.push({parent:n,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:p})}}return r}function Ln(e,t){let r=e[t]?.value;return Array.isArray(r)?r:[]}function _n(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function cp(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function Ny(e,t,r,n,i){return{app:e,records:[{id:Number(t),revision:r,record:{[n]:{value:i}}}]}}function Cy(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 Dc(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?W(e):e.type==="CASE_VALUE"?Ne(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Xa(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 mn(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return mn(e.left)||mn(e.right);case"NOT":case"GROUP":return mn(e.expr);default:return!1}}async function Oy(e,t,r,n){let i=[];it(e.where,i);let o=await Es(e.appId,i,t,n),a=await J(e.appId,t,n);if(ot(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")},p=await Re(t.getRecords,e.appId,"",[],{maxRecords:r.maxRecords??1e4,parallel:r.fetchParallel??1}),u=Rs(p,e.subtableCode),d=e.all?new Set(p.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(u.filter(f=>e.where&&q(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(r.confirm&&!await r.confirm(d.size,"UPDATE"))throw new ee("UPDATE",d.size);let c=lo(p);for(let f of d){let E=c.get(f);if(!E)continue;let m=Ln(E,e.subtableCode).map((g,h)=>({row:g,i:h,flat:Ly(E,e.subtableCode,g,h)}));m.sort((g,h)=>_y(g.flat,h.flat,e.by,l));let y=m.map(g=>g.row.id??"");await t.putRecords(Cy(e.appId,f,_n(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:d.size}}function Ly(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}`]=Xa(a?.value));for(let[o,a]of Object.entries(r.value??{}))i[o]=Xa(a?.value);return i}function _y(e,t,r,n){for(let i of r){let o=vc(i.key,e),a=vc(i.key,t),s=i.key.type==="FIELD_NAME"?n(ke(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?Mt(i.key.expr).semantics??x("string"):x("number"),l=Pt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function vc(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(re(e.expr,t));case"FUNC_KEY":return ne(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function pp(e,t,r,n,i){if(e.checkGroups?.length)return On(e,t,r,n,i);let o=await Me(e.appId,e.fields,t,n),a=await at(e.appId,e.fields,o,t,n),s=await fs.materialize(e,t,r,n,i,o),{rows:l,columns:p}=s;if(ap(s),p.length!==e.fields.length){let y=p.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${p.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],d=[],c=await Ee(e.appId,t,n),f=l.map((y,g)=>{let h={};return e.fields.forEach((T,O)=>{if(s.importPresence&&!s.importPresence[g]?.has(T))return;let b=y[p[O]]??"";h[T]={value:tp(b,c.get(T))}}),h});f.forEach(y=>Kt([y],e.fields.filter(g=>g in y),o,a));let E=f.map(y=>e.keyFields.map(g=>String(y[g]?.value??"")));if(no.has(e)){let y=e.keyFields.map(h=>c.get(h)==="NUMBER"),g=new Set;for(let h of E){let T=Ft(h,y);if(g.has(T))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(T)}}let R=await Cn(e.appId,e.keyFields,E,t,r,c);if(f.forEach((y,g)=>{let h=Nn(R,E[g]);h!==void 0?d.push({id:h,record:y}):u.push(y)}),r.confirm&&u.length+d.length>0){let y=u.length+d.length;if(!await r.confirm(y,"UPDATE"))throw new ee("UPDATE",y)}let m=[];for(let y=0;y<u.length;y+=100){let g=await t.postRecords({app:e.appId,records:u.slice(y,y+100)});m.push(g.ids)}for(let y=0;y<d.length;y+=100)await t.putRecords({app:e.appId,records:d.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:d.length}}async function dp(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 fp(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(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 Dy(e,t=!1){try{let r=new Yt(e).tokenize(),n=new qt(r,{import:t}).parse();return Vn("phase15b",n),sr(n),n}catch(r){throw r instanceof ue||r instanceof S,r}}async function bn(e,t,r,n,i){let o=[];qi(e,t,r,n,o,i),await Promise.all(o)}async function Ep(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(bn(s.condition,t,r,n,i));await Promise.all(o)}function yn(e,t,r,n,i){return i!==void 0&&i.size>0?xt(e,t,r,i,n):St(e,t,r,n)}function qi(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(yn(a.query,t,r,n,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(p=>p[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(yn(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":qi(e.left,t,r,n,i,o),qi(e.right,t,r,n,i,o);break;case"NOT":case"GROUP":qi(e.expr,t,r,n,i,o);break;case"EXISTS":{let a=e;i.push(yn(a.query,t,r,n,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function Rp(e,t,r,n){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await St(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 mp(e,t,r,n,i){let o=new Map,a=[];for(let p=0;p<e.length;p++){let u=e[p];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(u.query),c=o.get(d);c||(c=yn(u.query,t,r,n,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(d,c)),a.push([p,c])}let s=await Promise.all(a.map(([,p])=>p)),l=new Map;return a.forEach(([p],u)=>l.set(p,s[u])),l}var yp=new WeakMap,gp=new WeakMap;async function vy(e,t,r,n=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},p=new Map,u=new Map,d=new Map,c=new Set,f=i??await Qa(e,l,r),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||c.has(m))return;if(c.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let g=m;await io(g,l,r);let h=[g.from,...g.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(Q(g).type==="PLAIN"&&!h){let w=await ns(g,l,r);w&&d.set(g,w)}let T=[g.from,...g.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Be(g.where)||g.orderBy.length>0||g.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&T.forEach(w=>o.add(w));let b=await An(g,l,r),L=E(g);if(b.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(b)}).`);if(p.set(g,b),g.orderBy.length>0||g.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await Tn(g,l,r);if(g.orderMode!=="KINTONE_NATIVE")for(let _ of w.semantics.values())_.fieldType==="STATUS"&&_.source&&a.add(_.source.appId);if(zi(g)&&!h&&L?.allowed!==!1){let _=b.capability==="EXACT_PUSHDOWN"?be(g):"FULL_SCAN";u.set(g,(g.orderMode==="KINTONE_NATIVE"?en:Zr)({stmt:g,staticMode:_,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:w.semantics,maxRecords:n,hasKlike:ae(g.where)}))}}}else if(y.type==="VALIDATE"){let g=m;o.add(g.appId);let h=await J(g.appId,l,r),T=new Map(h.filter(N=>!N.inSubtable).map(N=>[N.code,N])),O=new Set(h.filter(N=>N.inSubtable).map(N=>N.code)),b=aa(g,h),L=cr(g.checkGroups??[]),w=ts(g.where);for(let N of L){if(N.field!=="$id"&&!T.has(N.field)&&!O.has(N.field))throw le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${g.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!T.has(N.field)&&O.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 w){if(N!=="$id"&&!T.has(N)&&!O.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${g.appId}.`);if(N!=="$id"&&!T.has(N)&&O.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 _=new Map([...T].map(([N,I])=>[N,I.fieldType]));_.set("$id","RECORD_NUMBER"),Bt(g,_);let C=rt(g.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(C.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(C)}).`);let v=new Map([...T].map(([N,I])=>[N,I.fieldType])),k=new Map([...T.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),A=g.where===null?null:C.capability==="EXACT_PUSHDOWN"?g.where:rr(g.where,{allowUnqualifiedFields:!0,fieldTypes:v,fieldOptions:k,allowKlike:!1}),P=b.some(N=>N.field.fieldType==="NUMBER");P&&(s.add(g.appId),await Ye(g.appId,l,r)),yp.set(g,{targetFields:b.map(N=>N.subtableCode?`${N.subtableCode}(${N.field.code})`:N.field.code),fetchFields:[...new Set(["$id",...b.map(N=>N.subtableCode??N.field.code),...w,...L.map(N=>N.field)])],subtables:new Map([...new Set(b.flatMap(N=>N.subtableCode?[N.subtableCode]:[]))].map(N=>[N,b.filter(I=>I.subtableCode===N).length])),capability:C,prefilter:A,numberPrecision:P})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let h=m,T=await J(h.appId,l,r);if(Ze(h,T),to(h)){let O=T.filter(L=>!L.inSubtable),b=fa(h.where,{fieldTypes:new Map(O.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(O.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});gp.set(h,b)}}let g=m;(g.type!=="UPDATE"||!to(g))&&E(g)?.allowed!==!1&&await mr(g,l,r)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&pt(e)){let m=dt(e),y=await An(m,l,r),g=E(m);if(y.capability==="UNSUPPORTED"&&!g)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ut(y)}).`);if(p.set(m,y),zi(m)&&g?.allowed!==!1){let h=await Tn(m,l,r);u.set(m,(m.orderMode==="KINTONE_NATIVE"?en:Zr)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?be(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:h.semantics,maxRecords:n,hasKlike:ae(m.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Uc(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 Uy(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function ky(e){return e==="<>"?"!=":e}function ve(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(ve).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ve(t.expr);case"GROUPING_FIELD":return`GROUPING(${ve(t.ref)})`;case"GROUPING_REF":return ve(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ve(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ve(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(ve).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ve).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function dn(e){try{let t=e;switch(t.type){case"BINARY":return`${ve(t.left)} ${Uy(t.op)} ${ve(t.right)}`;case"NULL_CHECK":return`${ve(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${dn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${dn(t.right)})`;case"NOT":return`NOT (${dn(t.expr)})`;case"GROUP":return`(${dn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function My(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){let n=r.prefilterPlan;if(r.allowed&&n?.prefilterWhere&&n.residualWhere){for(let o of n.exactRelativeLeaves){let a=o.right.type==="KINTONE_FUNC"?o.right.name:"(unknown)",s=o.left.type==="FIELD"?o.left.field:void 0,l=ky(o.op),p=r.capability?.reasons.find(u=>u.functionName===a&&(s===void 0||u.field===s)&&u.operator===l);t.push(` relative date function: ${a}`," relative date evaluation: kintone server exact prefilter",` field: ${p?.field??s??"(unknown)"} (${p?.fieldType??"unknown"})`,` operator: ${p?.operator??l}`)}let i=V(n.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${i}`,` client residual: ${dn(n.residualWhere)}`," relative date client evaluations: 0",` kintone query: ${i}`);continue}for(let i of r.functionNames){let o=r.capability?.reasons.find(a=>a.functionName===i);t.push(` relative date function: ${i}`," evaluation: kintone server",` field: ${o?.field??"(unknown)"} (${o?.fieldType??"unknown"})`,` operator: ${o?.operator??"(unknown)"}`,` where capability: ${r.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${r.restQuery||"(\u306A\u3057)"}`)}}return t}async function xy(e,t,r,n,i,o=100,a=Te,s){let l=s??await Qa(e.query,t,r),p=await vy(e.query,t,r,n,l),u=My(l),d=l.hasRelativeDate&&!l.allowed?[...Uc(p),...u]:[...Uc(p),...u,...Fy(hp(e.query,void 0,p.capabilities,p.orderPlans,o,a,n,p.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:d.map(c=>({plan:c})),rowCount:d.length}}function Fy(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 hp(e,t,r,n,i=100,o=Te,a=1e4,s){if(e.type==="UNION")return By(e,r,n,s);if(e.type==="WITH")return $y(e,r,n,s);if(e.type==="INSERT")return Wy(e,t,i,o);if(e.type==="INSERT_SELECT")return Hy(e,t,r,n,s);if(e.type==="UPSERT")return zy(e,t,i,o);if(e.type==="UPSERT_SELECT")return Xy(e,t,r,n,s);if(e.type==="UPDATE")return Yy(e,t,r,n,i,o,a);if(e.type==="DELETE")return qy(e,t);if(e.type==="REORDER")return Jy(e,t);if(e.type==="VALIDATE")return Ky(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let u=e.targets?.filter(d=>d.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...u.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",p=e.targets?.some(u=>u.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...p?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&p?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...p?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return Ue(e,t,r,n,s)}function Ky(e,t){let r=yp.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)":V(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?es:Za).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 Ue(e,t,r,n,i){let o=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":be(e),p=Gy(e);o&&o.capability!=="EXACT_PUSHDOWN"&&p.push(...o.reasons.map(m=>m.code));let u=[],d=Iu(e,Sn.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${l}`),d&&(u.push(` grouping source: ${d.source}`),u.push(` grouping sets: ${d.expandedSetCount} (limit: ${d.setLimit})`),u.push(` grouping items: ${d.groupingItemCount} (limit: ${d.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${d.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let c=Q(e);if(c.type==="PLAIN"){let m=c.allItems;if(s)s.items.forEach((y,g)=>{let h=m[g];h?.type==="FIELD_NAME"&&y.kind==="PHYSICAL"&&u.push(` group key ${h.name}: PHYSICAL (source=${y.sourceIndex}, field=${y.fieldCode})`)});else if([e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null))for(let y of m)y.type==="FIELD_NAME"&&u.push(` group key ${y.name}: DEFERRED (materialized schema unavailable)`)}a?(u.push(` order plan: ${a.kind}`),a.reasonCodes.length>0&&u.push(` order reason: ${a.reasonCodes.join(", ")}`),a.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):a.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${a.scanRows}`))):d&&u.push(" order plan: CANONICAL_LOCAL");let f=a&&!a.requiresCompleteInput?{...e,orderBy:[]}:e,E=wt(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=ot(e.where);if(E.size>0&&(!R||d!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...E].join(", ")}`),u.push(" onLimit=truncate: disabled")),R)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(l==="FULL_SCAN"&&p.length>0&&u.push(` reason: ${p.join(", ")}`),l==="SIMPLE"){let m=Wn(a?.kind==="CANONICAL_REST_TOP_N"?Yc(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?Ea(e):m.query;u.push(` kintone query: ${y||"(\u306A\u3057)"}`),u.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=ir(e),y=bt(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",h=m.mainCondition,T=$c(e),O=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ct(e.where)?V(e.where):"",b=h!==null?V(h):O||"(\u5168\u4EF6\u53D6\u5F97)";u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${b}`),T!==null&&u.push(` pushdown candidate: ${V(T)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${y.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.join(", ")}`);for(let L of e.joins){let w=bt(e,L.table,s),_=L.table.alias?` AS ${L.table.alias}`:"",C=L.type==="INNER"?"JOIN":`${L.type} JOIN`,v=L.table.alias?m.joinConditions.get(L.table.alias)??null:null,k=L.table.alias&&!L.table.subtableCode&&L.table.cteName===null&&e.where?Ur(e.where,{tableAlias:L.table.alias}):null,A=v!==null?V(v):"(\u5168\u4EF6\u53D6\u5F97)";u.push(` ${C}: APP${L.table.appId}${_} (${L.table.appId})`),u.push(` kintone query: ${A}`),k!==null&&u.push(` pushdown candidate: ${V(k)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${w.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":w.join(", ")}`)}}return u.push(...Vy(e,r,n,i)),u}function By(e,t,r,n){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...Ue(s,`[union:${l+1}]`,t,r,n))}),a}function $y(e,t,r,n){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...Ue(o.query,`[cte: ${o.name}]`,t,r,n)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...hp(e.query,"[main]",t,r,100,Te,1e4,n)),pt(e)){i.push("");let o=dt(e);i.push(...Ue(o,"[effective: inlined CTE]",t,r,n))}return i}function Gy(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=Q(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"),ct(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),ut(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 Vy(e,t,r,n){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...Ue(s.right.query,`[subquery:${o++}]`,t,r,n))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...Ue(s.right.query,`[subquery:${o++}]`,t,r,n)));break;case"EXISTS":i.push(""),i.push(...Ue(s.query,`[subquery:${o++}]`,t,r,n));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...Ue(s.query,`[subquery:${o++}]`,t,r,n)));return e.having&&a(e.having),i}function Wy(e,t,r=st,n=Te){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...ms(Si(e,r,n))]:a}function Hy(e,t,r,n,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...Ue(e.select,"[source SELECT]",r,n,i)),o}function Yy(e,t,r,n,i=100,o=Te,a=1e4){if(e.applyBlocks?.length)return jy(e,t,i,o,a);let s=Gl(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),p=li(e),u=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),d=[];if(t&&d.push(t),d.push(e.from?" [UPDATE FROM]":" [UPDATE]"),d.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;d.push(` source: ${f} AS ${e.from.alias}`),d.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),d.push(` target filter: ${e.from.targetFilter?Pn(e.from.targetFilter):"(none)"}`)}else d.push(` kintone query: ${Pn(e.where)}`);e.subtableCode||(d.push(" selection: exact native pushdown; JS residual none"),d.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),d.push(ot(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let c=[];if(s&&c.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&c.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),u&&c.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!p&&!u&&c.push("\u5358\u7D14 SET"),d.push(` set type: ${c.join(", ")}`),p){let f=Zy(e);f.length>0&&d.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}d.push(" set fields:");for(let f of e.assignments)d.push(` ${tg(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(d.push(""),d.push(...Ue(f.value.query,`[subquery: ${f.field}]`,r,n)));return d}function jy(e,t,r,n,i){let o=Si(e,r,n),a=o.branches[0],p=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),u=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],d=u.includes("REMOVE"),c=gp.get(e),f=c?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${c.prefilter===null?"(none; empty query)":V(c.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${c.appliedKlikes.size}`,`unapplied KLIKE: ${c.unappliedKlikes.length}${c.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${r} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Pn(e.where)}`,`parent cardinality: ${Xe(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${u.join(" | ")}`,`selector: ${p.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${d?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${d?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${r}`,`dmlMaxSubtableRows: ${n}`,"MCP mutation: disabled in v1",...ms(o)]}function qy(e,t){let r=[];return t&&r.push(t),r.push(" [DELETE]"),r.push(` target: APP${e.appId} (${e.appId})`),r.push(` kintone query: ${Pn(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(ot(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),r}function zy(e,t,r=st,n=Te){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...ms(Si(e,r,n))]:a}function ms(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 Xy(e,t,r,n,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...Ue(e.select,"[source SELECT]",r,n,i)),o}function Jy(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(Qy).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${r}`,` scope: ${n}`,` by: ${i}`,ot(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: ${Pn(e.where)}`),o}function Qy(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Pn(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return V(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Zy(e){let t=new Set;for(let{value:r}of e.assignments)r.type==="ARITH"&&ro(r,t),r.type==="STRING_FUNC"&&ro(r,t),(r.type==="SCALAR_ARITH"||r.type==="CONCAT_OP")&&gn(r,t);return[...t]}function ro(e,t){if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(ro(e.left,t),ro(e.right,t)),e.type==="STRING_FUNC")for(let r of e.args)r.type!=="AGG_REF"&&r.type!=="AGG_ARITH"&&gn(r,t)}async function Ap(e,t,r,n,i){let o=ds(e),a=await Ee(e.appId,r,n),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(c=>[c,i?.get(s)?.columnMeta?.get(c)?.fieldType??(i?.get(s)?.columnMeta?.get(c)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ee(t.appId,r,n),p=new Set,u=new Set;for(let c of o){if(c.tableAlias!==null){if(c.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(c.field!=="$id"&&!a.has(c.field))throw le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(c.field)}else if(c.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(c.field!=="$id"&&!l.has(c.field))throw le(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(c.field)}else throw le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${c.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=c.field==="$id"||a.has(c.field),E=c.field==="$id"||l.has(c.field);if(!f)throw le(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${c.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw le(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${c.field} \u306F\u66D6\u6627\u3067\u3059`);p.add(c.field)}let d=new Map;for(let[c,f]of a)d.set(c,f),d.set(`APP${e.appId}.${c}`,f);d.set("$id","RECORD_NUMBER"),d.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[c,f]of l)d.set(`${t.alias}.${c}`,f);return{targetFields:[...p],sourceFields:[...u],evaluationTypes:d}}function eg(e,t,r){if(!e)return{};let n=tt(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 gn(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"&&gn(r,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(gn(e.left,t),gn(e.right,t))}function tg(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} = ${Sp(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 Sp(e){return`${kc(e.left)} ${e.op} ${kc(e.right)}`}function kc(e){return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?W(e):e.type==="ARITH"?`(${Sp(e)})`:"..."}var ee=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 ge=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 $t(e){return new ge("READ_ONLY_VIOLATION",e)}function ys(e,t){return new ge("PARSE_ERROR",e,t)}function Tp(){let e=new yr;return new ge("SEARCH_ABORTED",e.message,e)}function Dn(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function rg(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function vn(e){return e instanceof ge?e:e instanceof ue||e instanceof S?new ge("PARSE_ERROR",Dn(e),e):e instanceof yr||e?.name==="SearchAbortedError"?new ge("SEARCH_ABORTED",Dn(e),e):e instanceof Ie||e?.name==="FetchAllLimitError"?new ge("FETCH_LIMIT_EXCEEDED",Dn(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ge("CLIENT_ERROR",e.message,e.cause):rg(e)?new ge("CLIENT_ERROR",Dn(e),e):new ge("EXECUTION_ERROR",Dn(e),e)}var ng=2,uo=5,ig=3e4,og=10*6e4+3e4,co=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??ng;if(!Number.isSafeInteger(n)||n<1||n>uo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${uo}.`);this.maxActive=n,this.waitTimeoutMs=r.waitTimeoutMs??ig,this.quarantineMs=r.quarantineMs??og}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 wi(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>uo)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${uo}.`)}};function ag(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function sg(e,t=n=>new Promise(i=>setTimeout(i,n)),r=ag){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 lg(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 Ip(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 lg(sg(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),r=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function wp(e){return bp(e,cg(e))}function bp(e,t,r=!1,n){let i=[];for(let o of Object.values(e)){let a=pg(o.options),s=dg(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:po(o.minValue),maxValue:po(o.maxValue),minLength:po(o.minLength),maxLength:po(o.maxLength),defaultValue:o.defaultValue,inSubtable:r,...n?{subtableCode:n}:{},writable:!t.has(o.code)&&!ug.has(o.type)};l.semantics=z(l),i.push(l),o.fields&&i.push(...bp(o.fields,t,!0,o.type==="SUBTABLE"?o.code:n))}return i}var ug=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function cg(e){let t=new Set,r=n=>{for(let i of Object.values(n)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&r(i.fields)}};return r(e),t}function po(e){return e==null||e===""?void 0:e}function pg(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 dg(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Pp(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 fg="Filter aborted because of too many search results";function Np(e){return e?.includes(fg)===!0}var Cp="/k/v1/records.json",fo="/k/v1/records/cursor.json",Eg=4096,Rg=2,gs=e=>kintone.api.url(e,!0);function mg(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},n=kintone.api.urlForGet(Cp,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(n).byteLength<=Eg?{url:n,init:{method:"GET",credentials:"include",headers:i}}:{url:gs(Cp),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 Un(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 yg(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let n=t;return Un({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}),Un(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}),Un(r)}}function gg(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Gt(e,t,r){try{return await kintone.api(gs(e),t,r)}catch(n){throw Un(n)}}function hg(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Op(e={}){let t=e.cursorMaxActive??Rg;hg(t);let r=null,n=null,i=new Set;return{async getRecords(a){try{let s=mg(a),l=await fetch(s.url,s.init);if(!l.ok)throw await yg(l);let p=await l.json();return Np(l.headers.get("X-Cybozu-Warning"))?{records:p.records,searchAborted:!0}:{records:p.records}}catch(s){throw Un(s)}},async openCursor(a){let s=gs(fo),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??=new co(l,{maxActive:t}),r.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let p=await r.acquire(),u;try{u=await r.runCreate(()=>Gt(fo,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(p.release(),R):(p.quarantine(),new bi(R))}let d=u.id,c=Ip(Number(u.totalCount),{get:()=>Gt(fo,"GET",{id:d}),delete:()=>Gt(fo,"DELETE",{id:d}),isAlreadyReleasedError:gg,onReleased:()=>p.release(),onReleaseUnknown:()=>p.quarantine()}),f=null,E={totalCount:c.totalCount,async nextPage(){let R=await c.nextPage();return R.next||i.delete(E),R},close(){return f||(f=c.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let p=await Gt("/k/v1/apps.json","GET",{limit:100,offset:l});for(let u of p.apps)s.push({appId:Number(u.appId),name:u.name,description:u.description});if(p.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Gt("/k/v1/app/form/fields.json","GET",{app:a});return wp(s.properties)},async getNumberPrecision(a){let s=await Gt("/k/v1/app/settings.json","GET",{app:a});return su(s)},async getProcessStatuses(a){let s=await Gt("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Pp(s.states)}}}}var Lp=new Set(["postRecords","putRecords","deleteRecords"]),kn=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 Tt(e){try{return await e()}catch(t){throw new kn(t)}}function Ag(e){return()=>{throw $t(`${String(e)} is blocked by the readonly client`)}}function hs(e){let t=e.getRecords.bind(e),r=e.openCursor.bind(e),n=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let p=await Tt(()=>t(l));if(p.searchAborted===!0)throw Tp();return p},openCursor:async l=>{let p=await Tt(()=>r(l)),u=p.nextPage.bind(p),d=p.close.bind(p);return{totalCount:p.totalCount,nextPage:()=>Tt(()=>u()),close:()=>Tt(()=>d())}},getApps:()=>Tt(()=>n()),getFields:l=>Tt(()=>i(l)),getNumberPrecision:l=>Tt(()=>o(l)),getProcessStatuses:l=>Tt(()=>a(l))});return new Proxy(s,{get(l,p,u){return Lp.has(p)?Ag(p):Reflect.get(l,p,u)},has(l,p){return Lp.has(p)?!1:Reflect.has(l,p)}})}function Sg(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 kn(o.reason)})(),r)}}}async function As(e,t){let r=Sg(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 _p=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Tg=new Set([..._p,"onLimitReached"]);function Ig(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Ss(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function wg(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 Ts(e,t){Ig(e);let r=t==="run"?Tg:_p;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(wg(e.client),e.maxRecords!==void 0&&Ss(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Ss(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Ss(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 Dp(e,t={}){let r=new Yt(e).tokenize(),n=new qt(r,t).parse();return sr(n),n}function vp(e){if(e.trim()==="")throw ys("SQL statement is empty");try{return Dp(e,{import:!0})}catch(t){let r=vn(t);throw r.code==="PARSE_ERROR"?r:ys("SQL statement could not be parsed",t)}}function bg(e){if(e===null||typeof e!="object"||typeof e.type!="string")throw $t("Unclassifiable statement branch is not allowed");return e.type}function Vt(e,t){let r=bg(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 $t("WITH contains an unclassifiable CTE list");for(let i of n.ctes){if(i===null||typeof i!="object"||!("query"in i))throw $t("WITH contains an unclassifiable CTE body");Vt(i.query,t)}Vt(n.query,t);return}case"UNION":{let n=e;Vt(n.left,t),Vt(n.right,t);return}default:break}throw $t(`${r} statements are not allowed in ${t} queries`)}function Pg(e){Vt(e,"run")}function Up(e){Pg(vp(e))}function kp(e){let t=e.trim(),r=vp(t);return r.type==="EXPLAIN"?(Vt(r.query,"explain"),t):(Vt(r,"explain"),`EXPLAIN ${t}`)}function Mp(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function xp(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}function Ng(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,String(r)]))}function Cg(e,t){let r=t?.get(e),n=r?.fieldType??r?.semantics?.fieldType,i=r?.semantics?.compareMode,o=r?.sortKind??(i==="number"||i==="string"?i:void 0),a=r?.publicSourceApp;return{name:e,valueType:"string",...n!==void 0?{fieldType:n}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}async function Fp(e,t){try{let r=Ts(t,"run");Up(e);let n=await As(r.client,o=>Ja(e,hs(o),{...r.executeOptions,captureColumnMeta:!0}));xp(n);let i=Mc(n);return{type:"query",rows:n.rows.map(Ng),columns:n.columns.map(o=>Cg(o,i)),rowCount:n.rowCount,warnings:[...n.warnings??[]],metrics:Mp(n.metrics)}}catch(r){throw vn(r)}}async function Kp(e,t){try{let r=Ts(t,"explain"),n=await As(r.client,o=>Ja(kp(e),hs(o),r.executeOptions));xp(n);let i=n.rows.map(o=>String(o.plan??""));return{type:"explain",lines:i,text:i.join(`
13
+ `),metrics:Mp(n.metrics)}}catch(r){throw vn(r)}}var Og="3.23.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runQuery,version});