@rex0220/kintone-sql-tools 3.77.0 → 3.78.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,22 +1,22 @@
1
- "use strict";var Xs=Object.defineProperty;var Qg=Object.getOwnPropertyDescriptor;var Zg=Object.getOwnPropertyNames;var ey=Object.prototype.hasOwnProperty;var ty=(e,t)=>{for(var n in t)Xs(e,n,{get:t[n],enumerable:!0})},ny=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Zg(t))!ey.call(e,i)&&i!==n&&Xs(e,i,{get:()=>t[i],enumerable:!(r=Qg(t,i))||r.enumerable});return e};var ry=e=>ny(Xs({},"__esModule",{value:!0}),e);var BN={};ty(BN,{FlowImportProviderError:()=>Gs,KsqlFlowError:()=>ie,createExecutionContext:()=>xN,createImportSourceResolver:()=>Ig,createKintoneClient:()=>Tg,disposeExecutionContext:()=>KN,executeStatement:()=>kN,explainScript:()=>DN,exportSinkStatus:()=>Lp,isDmlResult:()=>Og,parseScript:()=>_N,previewStatement:()=>UN,serializeCsvExport:()=>Hs,serializeExportSink:()=>Yg,serializeSelectResultAsCsv:()=>Hg,validateScript:()=>vN,version:()=>LN});module.exports=ry(BN);var ue={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function iy(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
1
+ "use strict";var ol=Object.defineProperty;var sy=Object.getOwnPropertyDescriptor;var ly=Object.getOwnPropertyNames;var uy=Object.prototype.hasOwnProperty;var cy=(e,t)=>{for(var n in t)ol(e,n,{get:t[n],enumerable:!0})},py=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ly(t))!uy.call(e,i)&&i!==n&&ol(e,i,{get:()=>t[i],enumerable:!(r=sy(t,i))||r.enumerable});return e};var dy=e=>py(ol({},"__esModule",{value:!0}),e);var nC={};cy(nC,{FlowImportProviderError:()=>zs,KsqlFlowError:()=>ie,createExecutionContext:()=>zN,createImportSourceResolver:()=>vg,createKintoneClient:()=>_g,disposeExecutionContext:()=>ZN,executeStatement:()=>XN,explainScript:()=>jN,exportSinkStatus:()=>Fp,isDmlResult:()=>Fg,parseScript:()=>HN,previewStatement:()=>qN,serializeCsvExport:()=>Zs,serializeExportSink:()=>ty,serializeSelectResultAsCsv:()=>ey,validateScript:()=>YN,version:()=>WN});module.exports=dy(nC);var ue={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function fy(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
2
2
  `&&o+1<n&&o++,r++,i=1):a===`
3
- `?(r++,i=1):i++}return{line:r,column:i}}function Be(e,t,n){return{...n,...iy(e,t)}}var Ao=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),En=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Dr=new Set([...En,...Ao]),mn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",vt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return Ao.has(e)}function Hn(e){return En.has(e)}function ct(e){return Dr.has(e)}function So(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Se(t.where);if(l.length===0||!sy(l,a)||o===null||!Up(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ay(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return oy(d,e,l),d}function oy(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Up(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&ct(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function ay(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&ct(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&ct(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function sy(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Up(e,t){let n=new Map;for(let r of t){if(!ct(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Mp="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";async function kp(e,t,n,r={}){if(t.dialect!==1)return[];let i=[];for(let o=0;o<e.length;o++){let a=e[o],s=(l,c,d)=>{i.push({severity:l,code:c,message:d,line:1,column:1,statementIndex:o})};if(ly(a)){for(let l of Rn(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let c of Rn(a,l))s(c.severity,c.code,c.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",ue.SUBTABLE_DML_FORBIDDEN,"dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3059\u308B\u304B dialect 0 \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DML \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),(a.type==="INSERT"||a.type==="INSERT_SELECT")&&s(r.strict===!0?"error":"warning",ue.BARE_INSERT_NOT_IDEMPOTENT,"dialect 1 \u306E\u7D20\u306E INSERT \u306F\u518D\u5B9F\u884C\u3067\u91CD\u8907\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u51AA\u7B49\u6027\u306E\u305F\u3081 UPSERT / MERGE \u3092\u63A8\u5968\u3057\u307E\u3059\u3002"),Fp(a)&&s("warning",ue.SERVER_TIME_FUNCTION_NOT_AS_OF,Mp)}return i}function Rn(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:ue.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:ue.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function Fp(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Se(o).some(s=>s==="TODAY"||s==="NOW"||re(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function ly(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var uy="A-Za-z",cy="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Zs=`${uy}${cy}`,Gp=`${Zs}0-9_`,py=new RegExp(`^[${Zs}]$`,"u"),dy=new RegExp(`^[${Gp}]$`,"u"),fy=new RegExp(`^[${Zs}][${Gp}]{0,63}$`,"u");function Ey(e){return py.test(e)}function my(e){return dy.test(e)}function Yn(e){let t=e.normalize("NFC").toUpperCase();if(!fy.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function Qs(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function Ry(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function gy(e,t){let n=t>0?e[t-1]:"";if(Qs(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!Ey(e[l]??""))return null;for(l++;l<e.length&&my(e[l]);)l++;s=l;try{o=Yn(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&Qs(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&Ry(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Qs(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function jn(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
4
- `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=gy(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Kp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function To(e,t="dev",n){let r=jn(e),i=r.some(R=>R.profile!==null),o=new Map,a=R=>R??t;for(let R of r){if(R.source!=="physical")continue;let g=a(R.profile),y=o.get(R.appId);y||(y=new Set,o.set(R.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(R=>R.source==="physical").map(R=>R.appId)),l=new Map;for(let R of r){if(R.source!=="logical")continue;let g=a(R.profile).toLowerCase(),y=`logical:${R.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${R.logicalName}@${g} requires logicalApps configuration.`);let S=n.resolveLogicalApp(R.logicalName,g);l.set(y,S),s.add(S)}let c=new Map,d=new Map;for(let[R,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let S of y){let h=Kp(s);c.set(`physical:${R}@${S}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:R,profile:S})}}let u=[],p=[],f=0,m=0,E=(R,g,y,S)=>{if(!R&&g===y)return;let h=f;u.push(R),f+=R.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:g,sourceEnd:y,...S===void 0?{}:{bindingMappedAppId:S}})};for(let R of r){let g=a(R.profile).toLowerCase(),y;if(R.source==="physical")y={source:"physical",mappedAppId:c.get(`physical:${R.appId}@${g}`)??R.appId,appId:R.appId,profile:g};else{let I=`logical:${R.logicalName}@${g}`,N=c.get(I);N===void 0&&(N=Kp(s),c.set(I,N)),y={source:"logical",logicalName:R.logicalName,mappedAppId:N,appId:l.get(I),profile:g}}d.set(y.mappedAppId,y),E(e.slice(m,R.start),m,R.start);let S=e.slice(R.referenceValueEnd,R.appEnd),h=R.source==="physical"?`${e.slice(R.start,R.referenceValueStart)}${y.mappedAppId}${S}`:`APP${y.mappedAppId}${S}`;E(h,R.start,R.fullEnd,y.mappedAppId),m=R.fullEnd}return E(e.slice(m),m,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var Io=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var xe=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Dt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(zn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(el(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new xe(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new xe("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new xe("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&zn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&zn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&zn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!zn(this.input[this.pos]))throw new xe("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&zn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&$p(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Io.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!el(n))throw new xe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&$p(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new xe(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new xe("\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 xe("\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===`
3
+ `?(r++,i=1):i++}return{line:r,column:i}}function Ye(e,t,n){return{...n,...fy(e,t)}}var No=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),yn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Mr=new Set([...yn,...No]),hn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Ut="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return No.has(e)}function qn(e){return yn.has(e)}function dt(e){return Mr.has(e)}function Co(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Se(t.where);if(l.length===0||!Ry(l,a)||o===null||!Vp(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:my(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return Ey(d,e,l),d}function Ey(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Vp(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&dt(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function my(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&dt(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&dt(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function Ry(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Vp(e,t){let n=new Map;for(let r of t){if(!dt(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Wp="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";async function Hp(e,t,n,r={}){if(t.dialect!==1)return[];let i=[];for(let o=0;o<e.length;o++){let a=e[o],s=(l,c,d)=>{i.push({severity:l,code:c,message:d,line:1,column:1,statementIndex:o})};if(gy(a)){for(let l of An(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let c of An(a,l))s(c.severity,c.code,c.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",ue.SUBTABLE_DML_FORBIDDEN,"dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3059\u308B\u304B dialect 0 \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DML \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),(a.type==="INSERT"||a.type==="INSERT_SELECT")&&s(r.strict===!0?"error":"warning",ue.BARE_INSERT_NOT_IDEMPOTENT,"dialect 1 \u306E\u7D20\u306E INSERT \u306F\u518D\u5B9F\u884C\u3067\u91CD\u8907\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u51AA\u7B49\u6027\u306E\u305F\u3081 UPSERT / MERGE \u3092\u63A8\u5968\u3057\u307E\u3059\u3002"),Yp(a)&&s("warning",ue.SERVER_TIME_FUNCTION_NOT_AS_OF,Wp)}return i}function An(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:ue.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:ue.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function Yp(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Se(o).some(s=>s==="TODAY"||s==="NOW"||ne(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function gy(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var yy="A-Za-z",hy="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",sl=`${yy}${hy}`,zp=`${sl}0-9_`,Ay=new RegExp(`^[${sl}]$`,"u"),Sy=new RegExp(`^[${zp}]$`,"u"),Ty=new RegExp(`^[${sl}][${zp}]{0,63}$`,"u");function Iy(e){return Ay.test(e)}function wy(e){return Sy.test(e)}function Jn(e){let t=e.normalize("NFC").toUpperCase();if(!Ty.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function al(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function by(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function Ny(e,t){let n=t>0?e[t-1]:"";if(al(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!Iy(e[l]??""))return null;for(l++;l<e.length&&wy(e[l]);)l++;s=l;try{o=Jn(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&al(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&by(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(al(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Xn(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
4
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=Ny(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function jp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Po(e,t="dev",n){let r=Xn(e),i=r.some(R=>R.profile!==null),o=new Map,a=R=>R??t;for(let R of r){if(R.source!=="physical")continue;let g=a(R.profile),y=o.get(R.appId);y||(y=new Set,o.set(R.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(R=>R.source==="physical").map(R=>R.appId)),l=new Map;for(let R of r){if(R.source!=="logical")continue;let g=a(R.profile).toLowerCase(),y=`logical:${R.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${R.logicalName}@${g} requires logicalApps configuration.`);let S=n.resolveLogicalApp(R.logicalName,g);l.set(y,S),s.add(S)}let c=new Map,d=new Map;for(let[R,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let S of y){let h=jp(s);c.set(`physical:${R}@${S}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:R,profile:S})}}let u=[],p=[],f=0,m=0,E=(R,g,y,S)=>{if(!R&&g===y)return;let h=f;u.push(R),f+=R.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:g,sourceEnd:y,...S===void 0?{}:{bindingMappedAppId:S}})};for(let R of r){let g=a(R.profile).toLowerCase(),y;if(R.source==="physical")y={source:"physical",mappedAppId:c.get(`physical:${R.appId}@${g}`)??R.appId,appId:R.appId,profile:g};else{let I=`logical:${R.logicalName}@${g}`,N=c.get(I);N===void 0&&(N=jp(s),c.set(I,N)),y={source:"logical",logicalName:R.logicalName,mappedAppId:N,appId:l.get(I),profile:g}}d.set(y.mappedAppId,y),E(e.slice(m,R.start),m,R.start);let S=e.slice(R.referenceValueEnd,R.appEnd),h=R.source==="physical"?`${e.slice(R.start,R.referenceValueStart)}${y.mappedAppId}${S}`:`APP${y.mappedAppId}${S}`;E(h,R.start,R.fullEnd,y.mappedAppId),m=R.fullEnd}return E(e.slice(m),m,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var Oo=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var Fe=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},Mt=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(Qn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ll(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Fe(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new Fe("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new Fe("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&Qn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Qn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Qn(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||!Qn(this.input[this.pos]))throw new Fe("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&Qn(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&qp(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Oo.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!ll(n))throw new Fe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&qp(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Fe(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new Fe("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new Fe("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
5
5
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
6
- `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new xe("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function el(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||yy(t)}function $p(e){let t=e.codePointAt(0);return el(e)||t>=48&&t<=57}function zn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function yy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var hy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Ay(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function be(e){let t=hy.exec(e.trim());if(t===null)return null;let n=Ay(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function nl(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function Bp(e){let t=be(e);return t===null?null:nl(t)}function Sy(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function wo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Sy(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function bo(e,t){let n=be(e),r=be(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return wo(n,r)}var Ue="__NO_FROM__";function rl(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function No(e){return e.windowKind==="AGGREGATE"}function il(e){return e.windowKind==="VALUE"}function Ne(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Bp(t)??t}function Vp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function Ty(e){return`${e.tableAlias??""}\0${e.field}`}function te(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=Ty(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function Wp(e){return te(e).type!=="NONE"}function Hp(e,t){let n=te(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}var Po=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],sl="\0as-of:";function xr(e){return`${sl}${e}`}function qn(e){if(!e.startsWith(sl))return null;let t=e.slice(sl.length);return Ur(t)?t:null}function Ur(e){return Po.includes(e)}function ll(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=ol(r,"year"),o=ol(r,"month"),a=ol(r,"day"),s=`${al(i)}-${Co(o)}-${Co(a)}`,l=`${al(i)}-${Co(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${al(c)}-${Co(d)}-01`}}}function ol(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function Co(e){return String(e).padStart(2,"0")}function al(e){return String(e).padStart(4,"0")}function Oo(e){return`'${e.replace(/'/g,"''")}'`}function Jn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return cl(e);let n=`${Jn(e.left)}${e.op}${Jn(e.right)}`;return t?n:`(${n})`}function Yp(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return cl(e.expr);if(e.type==="AGG_FIELD")return At(e.expr);if(e.type==="ARITH_FIELD")return Jn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ul(e.expr)}function zp(e){switch(e.type){case"STRING":return Oo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>Oo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(zp).join(",")})`;case"ARITH_VALUE":return Jn(e.expr);case"CASE_VALUE":return ul(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Mr(e){switch(e.type){case"BINARY":return`${Yp(e.left)} ${e.op.replace("_"," ")} ${zp(e.right)}`;case"NULL_CHECK":return`${Yp(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Mr(e.left)} ${e.op} ${Mr(e.right)})`;case"NOT":return`NOT (${Mr(e.expr)})`;case"GROUP":return`(${Mr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function jp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Oo(t.value)).join(",")}]`:e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?At(e):e.type==="FIELD_REF"||e.type==="ARITH"?Jn(e):gn(e)}function ul(e){let t=e.branches.map(r=>`WHEN ${Mr(r.condition)} THEN ${jp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${jp(e.elseResult)}`;return`CASE ${t}${n} END`}function Iy(e){return e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?At(e):gn(e)}function cl(e){return`${e.func}(${e.args.map(Iy).join(",")})`}function gn(e){switch(e.type){case"STRING":return Oo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return cl(e);case"CASE_WHEN":return ul(e);case"SCALAR_ARITH":return`(${gn(e.left)}${e.op}${gn(e.right)})`;case"CONCAT_OP":return`(${gn(e.left)}||${gn(e.right)})`}}function wy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Jn(e,!0):gn(e)}function de(e,t,n){let r=wy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function At(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${At(e.left)}${e.op}${At(e.right)}`}var qp=20,dl=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"}),Xp=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),kr=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"}),yC=Object.freeze(Object.values(kr).filter(e=>e!==void 0)),by=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Ny=new Set(by);function Cy(e){return Ny.has(e)}var Qp=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Fr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Jp(e){return Fr[e]!==void 0}var Py=Object.freeze([...Ao]),Oy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Ly=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function _y(e){return Oy.has(e)}function vy(e){return Ly.has(e)}function Dy(e){return Number.isInteger(e)&&e>=1&&e<=31}var hC=Object.freeze(Array.from(new Set([...Object.keys(dl),...Xp,...Object.keys(kr),...Object.keys(Qp),...Object.keys(Fr),...Py,"IF"]))),xy=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function Uy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!xy.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},pl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
7
- `),Jt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!Ur(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Po.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>qp)throw new T(`batch exceeds ${qp} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new T("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new 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 / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new 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}}parseRelativeDateVariableToken(){let t=this.peek(),n=Fr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Fr[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=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 t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){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");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))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)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=St(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=St(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new T(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:v,...P?{rowIdSourceHeader:P}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});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 c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="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(),u=!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(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ue||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(N=>N.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 m="POSITION",E=!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(),!u)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(m="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(),E=!0}}let R,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(R=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(N=>N.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(N=>N.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(m!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(y);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of N)if(!S.some(P=>P.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(y)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(m!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(R)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:m,ignoreUnknownColumns:E,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...R?{keyFields:R}:{},...h,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=St(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}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(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.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",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!Ur(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Po.map(i=>`@${i}`).join("/")} \u3067\u3059`,t);return this.advance(),this.expect(")",`@${r} \u306F\u5F15\u6570\u306A\u3057\u306E () \u3067\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044`),{type:"VARIABLE",name:xr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Uy(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:Ue},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=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()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,m=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(g=>g.type==="WINDOW_COL"),R=r.some(g=>this.selectColumnHasAggregate(g));if(E&&(l.length>0||c!==void 0||R))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(c&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:m}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new T("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new T("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new T("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new T("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new T("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new T("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new T("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(Ne(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(pl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=qn(a.name),l=null;if(s===null){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());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new 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 a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return Qp[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(kr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(pl,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(pl,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ne(`-${z(n)}`):{type:"AGG_ARITH",left:Ne("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ne(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),kr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ne(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ne("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ne(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ne(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ne(`-${z(n)}`):{type:"ARITH",left:Ne("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ne(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=dl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=dl[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Xp.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=My(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return kr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!Cy(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=St(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new 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(),this.finishVariableReference(t);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.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:de(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ne(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!_y(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 c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!vy(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!Dy(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Jp(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Fr[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=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");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ne(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ne(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Vp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new 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 i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=St(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=St(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),m=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...m}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),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 c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}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}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=St(n,this.prev());if(i)throw new T("MERGE \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("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new T("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new T(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,m=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),m=this.parseMergeValueList(),this.expect(")"),f.length!==m.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||m===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let E=new Map;f.forEach((I,N)=>E.set(I.toLowerCase(),m[N]));for(let I of p){let N=I.field.toLowerCase(),v=E.get(N);if(v!==void 0&&!this.mergeExpressionsEqual(v,I.value,c))throw new T(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);v===void 0&&(f.push(I.field),m.push(I.value),E.set(N,I.value))}let R=m.map(I=>this.mergeValueToSelectColumn(I,c,t)),g=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},y={type:"SELECT",distinct:!1,columns:R,from:g,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},S=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:y,keyFields:[d.field],...S,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=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(Ne(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(Ne(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";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${o}`,i)}}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}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&Ur(t.value.slice(1).toUpperCase())&&this.peek().kind==="("&&this.peekAt(1).kind===")"}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=St(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.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 u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(Jp(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=St(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=St(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;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;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new 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"||Io.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function My(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function St(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Kr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=ky(e.op);if(t===null)throw new fe(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Kr(e.left),right:Kr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Kr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function ky(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 Zp(e){return e.includes("%")||e.includes("_")}function Gr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Qt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Xt(e){if(e===null)return!1;if(Gr(e))return!0;switch(e.type){case"LOGICAL":return Xt(e.left)||Xt(e.right);case"NOT":case"GROUP":return Xt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(Qt(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return Fy(e);case"NULL_CHECK":return Gy(e);case"LOGICAL":return $y(e);case"NOT":return By(e);case"GROUP":return Vy(e);case"EXISTS":throw new fe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new fe("internal error: BOOLEAN predicate reached kintone query conversion")}}function Fy(e){if(Gr(e))throw new fe("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=td(e.left),n=Ky(e.op),r=Wy(e.right,e.op);return`${t} ${n} ${r}`}function Ky(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 Gy(e){let t=td(e.field);return e.not?`${t} != ""`:`${t} = ""`}function $y(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=ed(e.left)?`(${t})`:t,o=ed(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function By(e){return j(Kr(e.expr))}function Vy(e){return`(${j(e.expr)})`}function td(e){if(e.type==="FUNC_FIELD")throw new fe(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new fe("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new fe("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 fe("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 fe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Qy(e.field)}function Wy(e,t){switch(e.type){case"VARIABLE":throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new fe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return nd(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return rd(e);case"IN_LIST":return Jy(e,t);case"ARITH_VALUE":throw new fe("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 fe("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 fe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new fe("\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 fe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function nd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function rd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Hy(e)}function Hy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?$r():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!zy(e.args.offset,e.args.offsetText)||!Yy.has(e.args.unit)?$r():`${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&&!jy.has(e.args.weekday)?$r():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"||!qy(e.args.day)?$r():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return $r()}var Yy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),jy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function zy(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function qy(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function $r(){throw new fe("internal error: invalid relative date function AST reached kintone query conversion")}function Jy(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new fe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Xy(e.values),`(${e.values.map(r=>r.type==="STRING"?nd(r):r.type==="NUMBER"?z(r):rd(r)).join(",")})`}function Xy(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Qy(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function ed(e){return e.type==="LOGICAL"}var fe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var id=Symbol("ksql.groupingRowMeta"),od=new WeakMap;function fl(e,t){return Object.defineProperty(e,id,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function El(e){return e[id]}function Zy(e){return El(e)?.includedCanonicalIds}function ad(e,t){od.set(e,t)}function Xn(e,t){let n=Zy(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=od.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Lo=["$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 ml(e){return e.startsWith("_")||e.startsWith("$")}var eh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function gl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(gl);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"?eh.test(t.field):Object.values(t).some(gl)}function th(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 Ye(e)||gl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var nh=["_pid","_rid","_idx"];function Rl(e){return[...new Set(e)]}function rh(e){switch(e.kind){case"APP":return Rl([...e.fieldCodes,...Lo]);case"SUBTABLE":return Rl([...e.childFieldCodes,...nh,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Rl(e.columns)}}function sd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:rh(t(r,i))}))}function ld(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 ud(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function cd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?ld(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:ud(a,r.fieldCode)}}function ih(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function oh(e,t,n){let r=ld(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:ud(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>ih(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=th(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&de(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function pd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?oh(r.name,t,n):{kind:"EXPRESSION"})}}var ah="B65_NON_GROUPED_DEPENDENCY",hl=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function _o(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field:e};let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Al(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return _o(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?_o(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Sl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function fd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Ed(e){return e.type==="WINDOW_COL"}function sh(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Zt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>Zt(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Sl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Zt(n.expr,t);let i=typeof r=="string"?hl.get(r):void 0;if(i!==void 0)return Zt(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${sh(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Al(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=Zt(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function lh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function uh(e){let t=new Map;for(let n of e){let r=lh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Tl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var ch=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function vo(e){if(e&&typeof e=="object"){let t=e,n=Al(t);if(n!==null)return Tl(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?hl.get(t.type):void 0;if(i!==void 0){let a=vo(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function dd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Tl(n),o=vo(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${ah})`)}function yn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)yn(a,t);return}let n=e;if(Sl(n)||fd(n)||Ed(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw dd(t.clause,t.expression,"WILDCARD",t.policy);let r=Al(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&ch.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let c=new Set(t.resolvingAliases);c.add(r.field),yn(l[0],{...t,resolvingAliases:c});return}}let a=Zt(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw dd(t.clause,t.expression,r,t.policy);return}let i=Zt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?hl.get(n.type):void 0;if(o!==void 0){yn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||yn(n[a],t)}function Br(e,t){let n=uh(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&yn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&yn(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?_o(r.key.name):r.key;yn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function yl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(yl);let t=e;return Sl(t)||Ed(t)?!1:fd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(yl)}function Qn(e){return te(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&yl(t))}function ph(e){return e.type==="FIELD_NAME"?_o(e.name):e.expr}function md(e,t,n){let r=te(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let m=cd(f,n);if(m.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${m.name} is ambiguous across multiple sources.`);return m.kind==="UNKNOWN"?`unknown:${m.name}`:`source:${m.sourceIndex}:${m.fieldCode}`},a=new Set;t.items.forEach((f,m)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Zt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Zt(ph(i[m]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:vo(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,m)=>f.type==="FIELD_NAME"&&t.items[m]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:d,migrationSourceSql:u,migrationGroupingFields:p}}function Do(e){if(te(e).type!=="NONE"||!Qn(e))return;let t={identities:new Set,resolveField:n=>`ast:${Tl(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};Br(e,t)}function Rd(e){return`FIELD:${e}`}var gd=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Il(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>je(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>je(r,t))}}function Mo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Mo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){je(n.arg,t);return}Object.values(n).forEach(r=>Mo(r,t))}}function Ye(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ye);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(Ye)}function dh(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ye(e):!1}function fh(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Il(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Il(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ad(e,r.canonicalId)}function wl(e){let t=te(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&je(i,n);je(e.having,n),je(e.orderBy,n);let r=[];je(e.where,r),je(e.joins,r),Mo(e.columns,r),Mo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&je(i,r);if(r.length>0)throw new Error("ArgumentError: GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");Do(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function yd(e,t,n=()=>{}){wl(e);let r=te(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&je(c,i);if(je(e.having,i),je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Hp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${Il(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)fh(c,t,a);Br(e,{identities:new Set([...a].map(Rd)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!dh(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Eh(e){return e.some(t=>t.type==="WINDOW_COL")}function ze(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||te(e).type!=="NONE"||e.distinct||Eh(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&Id(t.expr)||t.type==="SCALAR_VALUE_COL"&&Wr(t.expr))||xt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function xt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return hd(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Gr(e);case"NULL_CHECK":return hd(e.field);case"LOGICAL":return xt(e.left)||xt(e.right);case"NOT":case"GROUP":return xt(e.expr);case"EXISTS":return!0}}function hd(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Fo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(mh).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:Rh(e.columns),totalCount:!1}}function Td(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!xt(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function hn(e,t,n){let i=bd(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function mh(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 Rh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Ko(r.field)):r.type==="ARITH_COL"?Vr(r.expr,n):r.type==="STRFUNC_COL"?bl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Zn(r.expr,n);return[...new Set(n)]}function gh(e,t){Vr(e.left,t),Vr(e.right,t)}function Vr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Ko(e.field)):e.type==="ARITH"?gh(e,t):e.type==="STRING_FUNC"&&bl(e,t)}function Ko(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function bl(e,t){for(let n of e.args)yh(n,t)}function yh(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ko(e,t);return}Zn(e,t)}function Zn(e,t){if(e.type==="FIELD"){t.push(Ko(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){bl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zn(e.left,t),Zn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Ad(n.result,t);e.elseResult&&Ad(e.elseResult,t)}}function Ad(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ko(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Vr(e,t);return}Zn(e,t)}}function ko(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&hh(e.arg,t);return}e.type==="AGG_ARITH"&&(ko(e.left,t),ko(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Ko(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function hh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Vr(e,t):Zn(e,t)}function Id(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Wr(t))}function Wr(e){return e.type==="STRING_FUNC"?Id(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Wr(e.left)||Wr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Sd(t.result))||e.elseResult!==null&&Sd(e.elseResult):!1}function Sd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Wr(e)}function wd(e,t){let n=new Set,r=bd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function bd(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Ah(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},m=(A,w)=>{let U=a.get(A);if(!(!U||U.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let O=w.slice(3);O&&O!=="*"&&U.fields.add(O);return}return void 0}w&&U.fields.add(w)}},E=(A,w="select",U)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let W=c.get(F);if(W){u(W);return}return}if(w==="groupBy"&&U!==void 0){if(U.kind==="PHYSICAL"){let F=r[U.sourceIndex];F&&(n||F.cteName===null)&&m(F,U.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&d.has(A)||(w==="orderBy"||w==="having"||w==="groupBy")&&Sh(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),W=A.slice(O+1);if(F==="_p"){l&&m(l,`_p.${W}`);return}let G=c.get(F);if(G){m(G,W);return}if(n)return}n?n.unqualified.add(A):s&&m(s,A)},R=(A,w,U="select")=>{if(w){if(w==="_p"){l&&m(l,`_p.${A}`);return}let O=c.get(w);if(O){m(O,A);return}if(n)return}E(A,U)},g=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){g(A.left,w),g(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},y=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(y(A.left,w),y(A.right,w)),A.type==="AGG_GROUP_KEY"&&R(A.field,A.tableAlias??null,w)},S=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){y(A,w);return}I(A,w)},h=(A,w="select")=>{for(let U of A.args)S(U,w)},I=(A,w="select")=>{if(A.type==="FIELD"){R(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&P(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)},v=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)}},P=(A,w="select")=>{for(let U of A.branches)C(U.condition,w),v(U.result,w);A.elseResult&&v(A.elseResult,w)},M=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){y(A.aggregateRef,w);return}R(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){y(A.expr,w);return}if(A.type==="ARITH_FIELD"){g(A.expr,w);return}A.type!=="GROUPING_FIELD"&&P(A.expr,w)},x=(A,w="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,w);return}if(A.type==="CASE_VALUE"){P(A.expr,w);return}},C=(A,w="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,w),x(A.right,w);return;case"NULL_CHECK":M(A.field,w);return;case"LOGICAL":C(A.left,w),C(A.right,w);return;case"NOT":case"GROUP":C(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},D=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){g(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)R(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(R(A.on.left.field,A.on.left.tableAlias,"where"),R(A.on.right.field,A.on.right.tableAlias,"where"));C(e.where,"where");let _=te(e);if(_.type==="PLAIN")_.allItems.forEach((A,w)=>D(A,t?.items[w]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)R(A.field,A.tableAlias,"select");C(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Ah(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(de(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function Sh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function en(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||ze(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||Wp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function tn(e){let t=e.ctes[0].query,n=e.query,r=Go(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function Go(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Nd(e.left,t)};case"NULL_CHECK":return{...e,field:Nd(e.field,t)};case"LOGICAL":return{...e,left:Go(e.left,t),right:Go(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Go(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Nd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Th=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ih=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ne(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":Ih.has(e.fieldType)?t="option":Th.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function er(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function $o(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var qe=["=","!=",">","<",">=","<="],wh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),bh=new Set(qe),Nh=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),Ch=new Map([["TODAY",new Set(qe)],["NOW",new Set(qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ph=["=","!=","in","not in"],Oh=new Map([["RECORD_NUMBER",new Set([...qe,"in","not in"])],["__ID__",new Set([...qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(qe)],["UPDATED_TIME",new Set(qe)],["DATE",new Set(qe)],["TIME",new Set(qe)],["DATETIME",new Set(qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...qe,"in","not in"])],["CALC",new Set([...qe,"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(Ph)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Lh=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),Cl=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),Od=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Vo(e){return Oh.get(e)??new Set}function Ld(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Cl.has(o.fieldType)&&Vo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Ie(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Yr(e,t)}function Yr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return _h(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Nl():xh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Nl();case"GROUP":return Yr(e.expr,t);case"NOT":{let n=Yr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:vd(n.reasons)?zr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Yr(e.left,t),r=Yr(e.right,t);return Mh(e.op,n,r)}}}function _h(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return vh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Cd(n))return Pd(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Pd(e,t,d[0],r):Bo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,jr(e))}if(t.type!=="FIELD")return Nl();let i=r(t);if(!i)return tr("WHERE_FIELD_UNRESOLVED",t.field,void 0,jr(e));let o=jr(e);if(!_d(i.fieldType,o))return tr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Uh(i.fieldType,e))return tr("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Vo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Cd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{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 Cd(e){return e.type==="KINTONE_FUNC"&&En.has(e.name)}function Pd(e,t,n,r){let i=jr(e),o=n.name;if(!En.has(o)||t.type!=="FIELD")return Bo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Nh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Bo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Ch.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Bo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function vh(e,t,n,r){let i=jr(e),o=n.name;if(t.type!=="FIELD")return Hr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Dh(n)?bh.has(i)?!wh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Hr("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}]}:Hr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Hr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Hr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Dh(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 xh(e,t,n){let r=n(e);return r?_d(r.fieldType,t)?!Cl.has(r.fieldType)&&!Od.has(r.fieldType)?tr("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:tr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):tr("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function _d(e,t){let n=Lh.get(e);return n===void 0||n.has(t)}function Uh(e,t){return Cl.has(e)?!0:Od.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function jr(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 Mh(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?zr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?zr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):zr({capability:"LOCAL_ONLY",reasons:r})}function Nl(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function tr(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Bo(e,t,n,r,i){return zr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Hr(e,t,n,r,i){return Dd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function vd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function kh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&En.has(t.functionName))}function Dd(e){if(e.capability==="EXACT_PUSHDOWN"||!vd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&re(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Fh(e){if(e.capability==="EXACT_PUSHDOWN"||!kh(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&En.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function zr(e){return Fh(Dd(e))}function qr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Wo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Ho(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!qr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Yo(e){let t=e.raw??String(e.value),n=be(t);if(n===null)return!1;if(n.sign===0)return z(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=nl(n);return z(e)===o}var Kh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Gh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),$h=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Bh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function jo(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?$h.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Wh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Vh(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&Yo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Yo(e.right)?"exact":"unsafe":Gh.has(r)?Pl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Pl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Bh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?qr(e.right.value)?"exact":"unsafe":r==="TIME"?Wo(e.right.value)?"exact":"unsafe":Ho(e.right.value)?"exact":"unsafe":Kh.has(r)?!Pl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function xd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function Pl(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function Vh(e){let t=n=>n.type==="NUMBER"&&Yo(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function Wh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Ol(e,t={}){return Xo(e,t).condition}function Xo(e,t={}){return zo(e,n=>Hh(n,t))}function Jr(e,t={}){return qo(e,n=>xd(n,r=>Jo(r,t)))}function zo(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=zo(e.left,t),r=zo(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return zo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function qo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=qo(e.left,t),r=qo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return qo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Hh(e,t){if(Yh(e,t)||jh(e,t))return"exact";if(e.left.type!=="FIELD"||!Jo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Ie(e,i=>{if(!Jo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":jo(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Yh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Jo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function jh(e,t){return!zh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function zh(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Jo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Xr(e,t={}){let n=e!==null&&t.extractCondition!==!1?Xo(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;nr(r,o);let a=new Set;return nr(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function An(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=Xr(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=Xo(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())nr(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function Ll(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function nr(e,t){if(e!==null){if(Qt(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 qh=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})}),Dl=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})}),Qr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Qr} scope does not support ${e}`)}function Jh(e,t){let n=Qr;Qr=e;try{return t()}finally{Qr=n}}function Xh(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 or(e,t){return Jh(e,()=>Qh(t,qh[e]))}function Qh(e,t){let n=Xh(e);if(n===null)return;if(n.type==="UPSERT"){eA(n,t);return}let r=n.applyBlocks;if(_l(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){tA(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),nA(i.where,t.multipleParents),Md(r,t)}function Md(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);kd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Qo(i,"APPEND targets");ir(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Ud(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&q("parent or qualified PATCH targets in this phase")}ir(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Ud(r.selector.where,t.idxSelectors)}}}}function kd(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var Zh=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Fd(e,t){if(kd(e),e.targetKind==="MULTI_VALUE"){if(!Zh.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 _l(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Qr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function eA(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];_l(n),_l(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),Kd(n,"UPSERT ON INSERT"),Md(r,{...t,idxSelectors:!1,expectRows:!1})}function Kd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Qo(i,"APPEND targets");ir(r.values,"APPEND values")}}function tA(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),Kd(t,"INSERT")}function Ut(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 Zr(e,t){let n=Dl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&xl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${rr(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${rr(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${rr(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ut(t.where))throw new Error(`UnsupportedError: APPLY ${rr(e)} execution does not support multiple-parent APPLY`)}function xl(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function Gd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ut(t.where))&&!Dl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${rr(e)} public multiple-parent write is not connected`)}function ar(e){if(!Dl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${rr(e)} internal prepared write is not available`)}function rr(e){return`Phase ${e.slice(5)}`}function nA(e,t){Ut(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),vl(e,t))}function vl(e,t){if(Array.isArray(e)){for(let o of e)vl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&re(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))vl(o,t)}function Ud(e,t){ir(e,"child row selectors",t)}function ir(e,t,n=!1){if(Array.isArray(e)){for(let s of e)ir(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&re(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),Qo(l,t,n)}if(i==="FIELD_REF"&&Qo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))ir(s,t,n)}function Qo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}var Te=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function $d(e){Bd(e)}function Ml(e){if(Ll(e).length>0)throw new Te("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 Bd(e){switch(e.type){case"SELECT":sr(e);return;case"UNION":Fl(e);return;case"WITH":Vd(e);return;case"EXPLAIN":Bd(e.query);return;case"CREATE_TEMP_TABLE":kl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":Sn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ut(e.where)&&Pe(e.where)){Ul(e.where),Sn(e);return}if(nn(e)&&e.subtableCode)throw new Te("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!oA(e,e.where)){Ul(e.where),Sn(e);return}if(nn(e))throw new Te("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(nn(e)&&e.subtableCode)throw new Te("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){Ul(e.where),Sn(e);return}if(nn(e))throw new Te("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(nn(e))throw new Te("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(nn(e))throw new Te("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(nn(e))throw new Te("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(nn(e))throw new Te("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 Ul(e){ea(e,t=>{if(!Qt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Te("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new Te("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 kl(e){e.type==="SELECT"?sr(e):e.type==="UNION"?Fl(e):Vd(e)}function Fl(e){kl(e.left),sr(e.right)}function Vd(e){if(en(e)){sr(tn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?sr(t.query):t.query.type==="UNION"&&Fl(t.query);kl(e.query)}function sr(e){if(iA(e),Pe(e.where)&&!(ze(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=An(e,{allowUnresolvedVariables:!0});if(Ll(n).length===0){Sn(e);return}if(rA(e)){Sn(e);return}throw new Te("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")}Sn(e)}function rA(e){return e.where!==null&&Se(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function iA(e){ea(e,t=>{if(!Qt(t))return;if(!Zo(e.where,t))throw new Te("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Te("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new Te("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 Sn(e){ta(e,t=>{t.type==="SELECT"&&sr(t)},!0)}function nn(e){let t=!1;return ta(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function oA(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function Zo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Zo(e.left,t)||Zo(e.right,t);case"NOT":case"GROUP":return Zo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ea(e,t){if(Array.isArray(e)){for(let r of e)ea(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&aA(r)||ea(r,t)}function ta(e,t,n=!1){if(Array.isArray(e)){for(let i of e)ta(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))ta(i,t)}function aA(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ei=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function Wd(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(sA(t))throw new ei;return;default:return}}function sA(e){let t=!1;return na(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||lA(n.where)&&(t=!0)}),t}function lA(e){let t=!1;return na(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function na(e,t){if(Array.isArray(e)){for(let r of e)na(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))na(r,t)}function rn(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function ra(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return rn(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return rn(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return rn(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return rn(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return rn(e,t,3,3);case"REGEXP_REPLACE":return rn(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return rn(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return rn(e,t,0,0)}}var $l=1e4,Mt=$l,Z=e=>new Error(`ArgumentError: ${e}`),uA=e=>e.type==="VARIABLE",on=e=>e?.type==="STRING"&&e.fromVariable===!0;function cA(e){return e.type==="NUMBER"?Number(z(e)):e.value}function lr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function Kl(e){let t=lr(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function pA(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function Hd(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function ti(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function ni(e){let t=be(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function Yd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function ia(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function Gl(e){return e.year*12+e.month-1}function jd(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function dA(e,t,n){let r=Kl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Kl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return ia(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=Gl(t)+(n.coefficient<0&&t.day!==1?1:0);return ia(Gl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return ia(e.year,a,n.coefficient)}function zd(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function fA(e){let t=Math.floor(e/12),n=e-t*12+1;return zd(t,n,1)}function qd(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(y=>cA(y));["start","stop","step"].forEach((y,S)=>{if(t[S]==="")throw Z(`GENERATE_SERIES \u306E ${y} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?lr(n):null,c=typeof r=="string"?lr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(Yd))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(on(o)&&on(a)&&ti(n)!==null&&ti(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let y=i===void 0?{coefficient:1,unit:"DAY"}:Hd(i);return jd(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:dA(l,c,y)}}let p=o.type==="NUMBER"?ni(o):on(o)?ti(n):null,f=a.type==="NUMBER"?ni(a):on(a)?ti(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||on(o))&&(a.type==="NUMBER"||on(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let m=i===void 0?1:s?.type==="NUMBER"?ni(s):on(s)?ti(i):null;if(m===null)throw s?.type==="NUMBER"||on(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=p,R=f,g=m;if(g===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:R,step:g,rowCount:ia(E,R,g)}}function EA(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(uA)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&ni(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(Yd(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&lr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=ni(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=Hd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=lr(i.value);o&&jd(o,r.unit)}}return null}let t=qd(e);if(t.rowCount>Mt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Mt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Jd(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=EA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Mt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Mt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function oa(e){let t=qd(e);if(t.rowCount>Mt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Mt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=lr(t.start);if(t.dateUnit==="MONTH"){let i=Gl(r);for(let o=0;o<t.rowCount;o++)n.push(fA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(zd(r.year+i*t.step,1,1));else{let i=Kl(t.start);for(let o=0;o<t.rowCount;o++)n.push(pA(i+o*t.step))}}return{...t,values:n}}function Je(e){mA(e),Wd(e),$d(e),Jd(e)}function mA(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;ra(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var RA=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function aa(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=hA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=RA.exec(l);if(c){i=!0;let d=c[2],u=d.toLowerCase(),p=c[3],f=p.indexOf("#"),m=f<0?p:p.slice(0,f),E=m.match(/^\s*/)?.[0].length??0,R=m.trim(),g=o+c.index+c[0].length-p.length+E;gA(u)?r.has(u)?n.push(Be(e,g,{severity:"warning",code:ue.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),yA(t,u,R,e,g,n)):n.push(Be(e,g,{severity:"warning",code:ue.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function gA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function yA(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(Be(r,i,{severity:"error",code:ue.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(Be(r,i,{severity:"error",code:ue.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(Be(r,i,{severity:"error",code:ue.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(Be(r,i,{severity:"error",code:ue.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function hA(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
6
+ `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new Fe("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function ll(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Cy(t)}function qp(e){let t=e.codePointAt(0);return ll(e)||t>=48&&t<=57}function Qn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Cy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Py=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Oy(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Ce(e){let t=Py.exec(e.trim());if(t===null)return null;let n=Oy(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function cl(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function Jp(e){let t=Ce(e);return t===null?null:cl(t)}function Ly(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function Lo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Ly(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function _o(e,t){let n=Ce(e),r=Ce(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Lo(n,r)}var Le="__NO_FROM__";function pl(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function vo(e){return e.windowKind==="AGGREGATE"}function dl(e){return e.windowKind==="VALUE"}function Pe(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Jp(t)??t}function Xp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function _y(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=_y(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function Qp(e){return ee(e).type!=="NONE"}function Zp(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}var xo=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],ml="\0as-of:";function kr(e){return`${ml}${e}`}function Zn(e){if(!e.startsWith(ml))return null;let t=e.slice(ml.length);return Fr(t)?t:null}function Fr(e){return xo.includes(e)}function Rl(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=fl(r,"year"),o=fl(r,"month"),a=fl(r,"day"),s=`${El(i)}-${Do(o)}-${Do(a)}`,l=`${El(i)}-${Do(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${El(c)}-${Do(d)}-01`}}}function fl(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function Do(e){return String(e).padStart(2,"0")}function El(e){return String(e).padStart(4,"0")}function Uo(e){return`'${e.replace(/'/g,"''")}'`}function er(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return yl(e);let n=`${er(e.left)}${e.op}${er(e.right)}`;return t?n:`(${n})`}function ed(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return yl(e.expr);if(e.type==="AGG_FIELD")return It(e.expr);if(e.type==="ARITH_FIELD")return er(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return gl(e.expr)}function nd(e){switch(e.type){case"STRING":return Uo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>Uo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(nd).join(",")})`;case"ARITH_VALUE":return er(e.expr);case"CASE_VALUE":return gl(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Kr(e){switch(e.type){case"BINARY":return`${ed(e.left)} ${e.op.replace("_"," ")} ${nd(e.right)}`;case"NULL_CHECK":return`${ed(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Kr(e.left)} ${e.op} ${Kr(e.right)})`;case"NOT":return`NOT (${Kr(e.expr)})`;case"GROUP":return`(${Kr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function td(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Uo(t.value)).join(",")}]`:e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?It(e):e.type==="FIELD_REF"||e.type==="ARITH"?er(e):Sn(e)}function gl(e){let t=e.branches.map(r=>`WHEN ${Kr(r.condition)} THEN ${td(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${td(e.elseResult)}`;return`CASE ${t}${n} END`}function vy(e){return e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?It(e):Sn(e)}function yl(e){return`${e.func}(${e.args.map(vy).join(",")})`}function Sn(e){switch(e.type){case"STRING":return Uo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return yl(e);case"CASE_WHEN":return gl(e);case"SCALAR_ARITH":return`(${Sn(e.left)}${e.op}${Sn(e.right)})`;case"CONCAT_OP":return`(${Sn(e.left)}||${Sn(e.right)})`}}function Dy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?er(e,!0):Sn(e)}function fe(e,t,n){let r=Dy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function It(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${It(e.left)}${e.op}${It(e.right)}`}var rd=20,Al=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"}),od=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Gr=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"}),vC=Object.freeze(Object.values(Gr).filter(e=>e!==void 0)),xy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Uy=new Set(xy);function My(e){return Uy.has(e)}var ad=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),$r=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function id(e){return $r[e]!==void 0}var ky=Object.freeze([...No]),Fy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Ky=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Gy(e){return Fy.has(e)}function $y(e){return Ky.has(e)}function By(e){return Number.isInteger(e)&&e>=1&&e<=31}var DC=Object.freeze(Array.from(new Set([...Object.keys(Al),...od,...Object.keys(Gr),...Object.keys(ad),...Object.keys($r),...ky,"IF"]))),Vy=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function Wy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Vy.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},hl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
7
+ `),en=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!Fr(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${xo.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>rd)throw new T(`batch exceeds ${rd} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new T("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new 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 / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new 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}}parseRelativeDateVariableToken(){let t=this.peek(),n=$r[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=$r[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=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 t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){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");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))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)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new T(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let U of["ID","SOURCE"]){if(!this.isSoftKeyword(U))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}C=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:v,...C?{rowIdSourceHeader:C}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});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 c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="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(),u=!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(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Le||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(N=>N.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 m="POSITION",E=!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(),!u)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(m="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(),E=!0}}let R,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(R=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(N=>N.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(N=>N.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(m!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(y);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of N)if(!S.some(C=>C.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(y)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(m!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(R)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:m,ignoreUnknownColumns:E,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...R?{keyFields:R}:{},...h,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}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(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.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",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!Fr(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${xo.map(i=>`@${i}`).join("/")} \u3067\u3059`,t);return this.advance(),this.expect(")",`@${r} \u306F\u5F15\u6570\u306A\u3057\u306E () \u3067\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044`),{type:"VARIABLE",name:kr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Wy(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:Le},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=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()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,m=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(g=>g.type==="WINDOW_COL"),R=r.some(g=>this.selectColumnHasAggregate(g));if(E&&(l.length>0||c!==void 0||R))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(c&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:m}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new T("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new T("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new T("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new T("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new T("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new T("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new T("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(Pe(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(hl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=Zn(a.name),l=null;if(s===null){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());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new 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 a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return ad[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(Gr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(hl,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(hl,this.peek());if(!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 a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Pe(`-${z(n)}`):{type:"AGG_ARITH",left:Pe("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Pe(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),Gr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Pe(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Pe("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Pe(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Pe(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Pe(`-${z(n)}`):{type:"ARITH",left:Pe("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Pe(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Al[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Al[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(od.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=Hy(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Gr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!My(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=wt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new 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(),this.finishVariableReference(t);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.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:fe(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Pe(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!Gy(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 c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!$y(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!By(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(id(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:$r[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=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");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Pe(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Pe(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Xp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new 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 i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),m=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...m}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),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 c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}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}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(i)throw new T("MERGE \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("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new T("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new T(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,m=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),m=this.parseMergeValueList(),this.expect(")"),f.length!==m.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||m===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let E=new Map;f.forEach((I,N)=>E.set(I.toLowerCase(),m[N]));for(let I of p){let N=I.field.toLowerCase(),v=E.get(N);if(v!==void 0&&!this.mergeExpressionsEqual(v,I.value,c))throw new T(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);v===void 0&&(f.push(I.field),m.push(I.value),E.set(N,I.value))}let R=m.map(I=>this.mergeValueToSelectColumn(I,c,t)),g=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},y={type:"SELECT",distinct:!1,columns:R,from:g,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},S=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:y,keyFields:[d.field],...S,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(Pe(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(Pe(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";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${o}`,i)}}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}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&Fr(t.value.slice(1).toUpperCase())&&this.peek().kind==="("&&this.peekAt(1).kind===")"}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.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 u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(id(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;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;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new 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"||Oo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function Hy(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function wt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Br(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Yy(e.op);if(t===null)throw new Ee(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Br(e.left),right:Br(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Br(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Yy(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 sd(e){return e.includes("%")||e.includes("_")}function Vr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function nn(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function tn(e){if(e===null)return!1;if(Vr(e))return!0;switch(e.type){case"LOGICAL":return tn(e.left)||tn(e.right);case"NOT":case"GROUP":return tn(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function _e(e){if(e===null)return!1;if(nn(e))return!0;switch(e.type){case"LOGICAL":return _e(e.left)||_e(e.right);case"NOT":case"GROUP":return _e(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return jy(e);case"NULL_CHECK":return qy(e);case"LOGICAL":return Jy(e);case"NOT":return Xy(e);case"GROUP":return Qy(e);case"EXISTS":throw new Ee("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new Ee("internal error: BOOLEAN predicate reached kintone query conversion")}}function jy(e){if(Vr(e))throw new Ee("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=ud(e.left),n=zy(e.op),r=Zy(e.right,e.op);return`${t} ${n} ${r}`}function zy(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 qy(e){let t=ud(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Jy(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=ld(e.left)?`(${t})`:t,o=ld(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Xy(e){return j(Br(e.expr))}function Qy(e){return`(${j(e.expr)})`}function ud(e){if(e.type==="FUNC_FIELD")throw new Ee(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new Ee("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new Ee("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new Ee("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new Ee("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return sh(e.field)}function Zy(e,t){switch(e.type){case"VARIABLE":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return cd(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return pd(e);case"IN_LIST":return oh(e,t);case"ARITH_VALUE":throw new Ee("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new Ee("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new Ee("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Ee("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new Ee("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function cd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function pd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return eh(e)}function eh(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Wr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!rh(e.args.offset,e.args.offsetText)||!th.has(e.args.unit)?Wr():`${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&&!nh.has(e.args.weekday)?Wr():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"||!ih(e.args.day)?Wr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Wr()}var th=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),nh=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function rh(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ih(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Wr(){throw new Ee("internal error: invalid relative date function AST reached kintone query conversion")}function oh(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new Ee("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return ah(e.values),`(${e.values.map(r=>r.type==="STRING"?cd(r):r.type==="NUMBER"?z(r):pd(r)).join(",")})`}function ah(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function sh(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function ld(e){return e.type==="LOGICAL"}var Ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var dd=Symbol("ksql.groupingRowMeta"),fd=new WeakMap;function Sl(e,t){return Object.defineProperty(e,dd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Tl(e){return e[dd]}function lh(e){return Tl(e)?.includedCanonicalIds}function Ed(e,t){fd.set(e,t)}function tr(e,t){let n=lh(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=fd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Mo=["$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 ko(e){return e.startsWith("_")||e.startsWith("$")}var uh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function wl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(wl);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"?uh.test(t.field):Object.values(t).some(wl)}function ch(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 Ie(e)||wl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var ph=["_pid","_rid","_idx"];function Il(e){return[...new Set(e)]}function dh(e){switch(e.kind){case"APP":return Il([...e.fieldCodes,...Mo]);case"SUBTABLE":return Il([...e.childFieldCodes,...ph,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Il(e.columns)}}function md(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:dh(t(r,i))}))}function Rd(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 gd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function yd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Rd(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:gd(a,r.fieldCode)}}function fh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Eh(e,t,n){let r=Rd(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:gd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>fh(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=ch(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&fe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function hd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Eh(r.name,t,n):{kind:"EXPRESSION"})}}function ve(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var mh="B65_NON_GROUPED_DEPENDENCY",Nl=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function Fo(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field:e};let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Cl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Fo(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?Fo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Pl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Sd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Td(e){return e.type==="WINDOW_COL"}function Rh(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function rn(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>rn(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Pl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Nl.get(r):void 0;if(i!==void 0)return rn(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${Rh(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Cl(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=rn(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function gh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function yh(e){let t=new Map;for(let n of e){let r=gh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Ol(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var hh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ko(e){if(e&&typeof e=="object"){let t=e,n=Cl(t);if(n!==null)return Ol(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?Nl.get(t.type):void 0;if(i!==void 0){let a=Ko(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Ad(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Ol(n),o=Ko(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${mh})`)}function Tn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)Tn(a,t);return}let n=e;if(Pl(n)||Sd(n)||Td(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw Ad(t.clause,t.expression,"WILDCARD",t.policy);let r=Cl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&hh.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=ve(r.field,t.aliases.keys()),c=l===void 0?[]:t.aliases.get(l)??[];if(c.length===1&&l!==void 0&&!t.resolvingAliases.has(l)){let d=new Set(t.resolvingAliases);d.add(l),Tn(c[0],{...t,resolvingAliases:d});return}}let a=rn(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw Ad(t.clause,t.expression,r,t.policy);return}let i=rn(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Nl.get(n.type):void 0;if(o!==void 0){Tn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||Tn(n[a],t)}function Hr(e,t){let n=yh(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&Tn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&Tn(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?Fo(r.key.name):r.key;Tn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function bl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(bl);let t=e;return Pl(t)||Td(t)?!1:Sd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(bl)}function kt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&bl(t))}function Ah(e){return e.type==="FIELD_NAME"?Fo(e.name):e.expr}function Id(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let m=yd(f,n);if(m.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${m.name} is ambiguous across multiple sources.`);return m.kind==="UNKNOWN"?`unknown:${m.name}`:`source:${m.sourceIndex}:${m.fieldCode}`},a=new Set;t.items.forEach((f,m)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=rn(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=rn(Ah(i[m]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:Ko(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,m)=>f.type==="FIELD_NAME"&&t.items[m]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:d,migrationSourceSql:u,migrationGroupingFields:p}}function Go(e){if(ee(e).type!=="NONE"||!kt(e))return;let t={identities:new Set,resolveField:n=>`ast:${Ol(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};Hr(e,t)}function wd(e){return`FIELD:${e}`}var bd=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Ll(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Je(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>Je(r,t))}}function Vo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Vo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Je(n.arg,t);return}Object.values(n).forEach(r=>Vo(r,t))}}function Ie(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ie);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(Ie)}function Sh(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="ARITH_COL"||e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ie(e):!1}function Th(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Ll(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Ll(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Ed(e,r.canonicalId)}function _l(e){let t=ee(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Je(i,n);Je(e.having,n),Je(e.orderBy,n);let r=[];Je(e.where,r),Je(e.joins,r),Vo(e.columns,r),Vo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Je(i,r);if(r.length>0)throw new Error("ArgumentError: GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");Go(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Nd(e,t,n=()=>{}){_l(e);let r=ee(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&Je(c,i);if(Je(e.having,i),Je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Zp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${Ll(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Th(c,t,a);Hr(e,{identities:new Set([...a].map(wd)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!Sh(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Ih(e){return e.some(t=>t.type==="WINDOW_COL")}function Xe(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||Ih(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Ie(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ie(t.expr)||t.type==="STRFUNC_COL"&&_d(t.expr)||t.type==="SCALAR_VALUE_COL"&&jr(t.expr))||Ft(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Ft(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Cd(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Vr(e);case"NULL_CHECK":return Cd(e.field);case"LOGICAL":return Ft(e.left)||Ft(e.right);case"NOT":case"GROUP":return Ft(e.expr);case"EXISTS":return!0}}function Cd(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Ho(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(wh).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:bh(e.columns),totalCount:!1}}function Ld(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Ft(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function In(e,t,n){let i=Dd(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function wh(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 bh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&Ie(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Yo(r.field)):r.type==="ARITH_COL"?Yr(r.expr,n):r.type==="STRFUNC_COL"?vl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&nr(r.expr,n);return[...new Set(n)]}function Nh(e,t){Yr(e.left,t),Yr(e.right,t)}function Yr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Yo(e.field)):e.type==="ARITH"?Nh(e,t):e.type==="STRING_FUNC"&&vl(e,t)}function Yo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function vl(e,t){for(let n of e.args)Ch(n,t)}function Ch(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Wo(e,t);return}nr(e,t)}function nr(e,t){if(e.type==="FIELD"){t.push(Yo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){vl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){nr(e.left,t),nr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Pd(n.result,t);e.elseResult&&Pd(e.elseResult,t)}}function Pd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Wo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Yr(e,t);return}nr(e,t)}}function Wo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ph(e.arg,t);return}e.type==="AGG_ARITH"&&(Wo(e.left,t),Wo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Yo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Ph(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Yr(e,t):nr(e,t)}function _d(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:jr(t))}function jr(e){return e.type==="STRING_FUNC"?_d(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?jr(e.left)||jr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Od(t.result))||e.elseResult!==null&&Od(e.elseResult):!1}function Od(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:jr(e)}function vd(e,t){let n=new Set,r=Dd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Dd(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Oh(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},m=(A,w)=>{let M=a.get(A);if(!(!M||M.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let O=w.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}w&&M.fields.add(w)}},E=(A,w="select",M)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let W=c.get(F);if(W){u(W);return}return}if(w==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let F=r[M.sourceIndex];F&&(n||F.cteName===null)&&m(F,M.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&ve(A,d)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&Lh(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),W=A.slice(O+1);if(F==="_p"){l&&m(l,`_p.${W}`);return}let G=c.get(F);if(G){m(G,W);return}if(n)return}n?n.unqualified.add(A):s&&m(s,A)},R=(A,w,M="select")=>{if(w){if(w==="_p"){l&&m(l,`_p.${A}`);return}let O=c.get(w);if(O){m(O,A);return}if(n)return}E(A,M)},g=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){g(A.left,w),g(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},y=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(y(A.left,w),y(A.right,w)),A.type==="AGG_GROUP_KEY"&&R(A.field,A.tableAlias??null,w)},S=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){y(A,w);return}I(A,w)},h=(A,w="select")=>{for(let M of A.args)S(M,w)},I=(A,w="select")=>{if(A.type==="FIELD"){R(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&C(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)},v=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)}},C=(A,w="select")=>{for(let M of A.branches)P(M.condition,w),v(M.result,w);A.elseResult&&v(A.elseResult,w)},U=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){y(A.aggregateRef,w);return}R(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){y(A.expr,w);return}if(A.type==="ARITH_FIELD"){g(A.expr,w);return}A.type!=="GROUPING_FIELD"&&C(A.expr,w)},x=(A,w="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,w);return}if(A.type==="CASE_VALUE"){C(A.expr,w);return}},P=(A,w="where")=>{if(A)switch(A.type){case"BINARY":U(A.left,w),x(A.right,w);return;case"NULL_CHECK":U(A.field,w);return;case"LOGICAL":P(A.left,w),P(A.right,w);return;case"NOT":case"GROUP":P(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},D=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){g(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":C(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)R(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(R(A.on.left.field,A.on.left.tableAlias,"where"),R(A.on.right.field,A.on.right.tableAlias,"where"));P(e.where,"where");let _=ee(e);if(_.type==="PLAIN")_.allItems.forEach((A,w)=>D(A,t?.items[w]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)R(A.field,A.tableAlias,"select");P(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Oh(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(fe(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function Lh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function on(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Xe(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||Qp(n)||n.distinct?!1:!kt(n)}function an(e){let t=e.ctes[0].query,n=e.query,r=jo(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function jo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:xd(e.left,t)};case"NULL_CHECK":return{...e,field:xd(e.field,t)};case"LOGICAL":return{...e,left:jo(e.left,t),right:jo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:jo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function xd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var _h=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),vh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":vh.has(e.fieldType)?t="option":_h.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function rr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function zo(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var Qe=["=","!=",">","<",">=","<="],Dh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),xh=new Set(Qe),Uh=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),Mh=new Map([["TODAY",new Set(Qe)],["NOW",new Set(Qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),kh=["=","!=","in","not in"],Fh=new Map([["RECORD_NUMBER",new Set([...Qe,"in","not in"])],["__ID__",new Set([...Qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Qe)],["UPDATED_TIME",new Set(Qe)],["DATE",new Set(Qe)],["TIME",new Set(Qe)],["DATETIME",new Set(Qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Qe,"in","not in"])],["CALC",new Set([...Qe,"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(kh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Kh=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),xl=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"]),kd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Jo(e){return Fh.get(e)??new Set}function Fd(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&xl.has(o.fieldType)&&Jo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function we(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:qr(e,t)}function qr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Gh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Dl():Vh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Dl();case"GROUP":return qr(e.expr,t);case"NOT":{let n=qr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Gd(n.reasons)?Xr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=qr(e.left,t),r=qr(e.right,t);return Hh(e.op,n,r)}}}function Gh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return $h(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Ud(n))return Md(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Md(e,t,d[0],r):qo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Jr(e))}if(t.type!=="FIELD")return Dl();let i=r(t);if(!i)return ir("WHERE_FIELD_UNRESOLVED",t.field,void 0,Jr(e));let o=Jr(e);if(!Kd(i.fieldType,o))return ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Wh(i.fieldType,e))return ir("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Jo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Ud(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{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 Ud(e){return e.type==="KINTONE_FUNC"&&yn.has(e.name)}function Md(e,t,n,r){let i=Jr(e),o=n.name;if(!yn.has(o)||t.type!=="FIELD")return qo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Uh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?qo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Mh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:qo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function $h(e,t,n,r){let i=Jr(e),o=n.name;if(t.type!=="FIELD")return zr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Bh(n)?xh.has(i)?!Dh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?zr("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}]}:zr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Bh(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 Vh(e,t,n){let r=n(e);return r?Kd(r.fieldType,t)?!xl.has(r.fieldType)&&!kd.has(r.fieldType)?ir("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):ir("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Kd(e,t){let n=Kh.get(e);return n===void 0||n.has(t)}function Wh(e,t){return xl.has(e)?!0:kd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Jr(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 Hh(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Xr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Xr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Xr({capability:"LOCAL_ONLY",reasons:r})}function Dl(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function ir(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function qo(e,t,n,r,i){return Xr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zr(e,t,n,r,i){return $d({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Gd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Yh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&yn.has(t.functionName))}function $d(e){if(e.capability==="EXACT_PUSHDOWN"||!Gd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&ne(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function jh(e){if(e.capability==="EXACT_PUSHDOWN"||!Yh(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&yn.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Xr(e){return jh($d(e))}function Qr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Xo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Qo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Qr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Zo(e){let t=e.raw??String(e.value),n=Ce(t);if(n===null)return!1;if(n.sign===0)return z(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=cl(n);return z(e)===o}var zh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),qh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Jh=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Xh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function ea(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?Jh.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Zh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Qh(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&Zo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Zo(e.right)?"exact":"unsafe":qh.has(r)?Ul(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Ul(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Xh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Qr(e.right.value)?"exact":"unsafe":r==="TIME"?Xo(e.right.value)?"exact":"unsafe":Qo(e.right.value)?"exact":"unsafe":zh.has(r)?!Ul(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function Bd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function Ul(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function Qh(e){let t=n=>n.type==="NUMBER"&&Zo(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function Zh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Ml(e,t={}){return ia(e,t).condition}function ia(e,t={}){return ta(e,n=>eA(n,t))}function Zr(e,t={}){return na(e,n=>Bd(n,r=>ra(r,t)))}function ta(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=ta(e.left,t),r=ta(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return ta(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function na(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=na(e.left,t),r=na(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return na(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function eA(e,t){if(tA(e,t)||nA(e,t))return"exact";if(e.left.type!=="FIELD"||!ra(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||we(e,i=>{if(!ra(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":ea(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function tA(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ra(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function nA(e,t){return!rA(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function rA(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ra(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ei(e,t={}){let n=e!==null&&t.extractCondition!==!1?ia(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;or(r,o);let a=new Set;return or(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function wn(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=ei(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=ia(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())or(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function kl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function or(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":or(e.left,t),or(e.right,t);return;case"NOT":case"GROUP":or(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var iA=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})}),Gl=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})}),ti="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${ti} scope does not support ${e}`)}function oA(e,t){let n=ti;ti=e;try{return t()}finally{ti=n}}function aA(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 lr(e,t){return oA(e,()=>sA(t,iA[e]))}function sA(e,t){let n=aA(e);if(n===null)return;if(n.type==="UPSERT"){uA(n,t);return}let r=n.applyBlocks;if(Fl(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){cA(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),pA(i.where,t.multipleParents),Wd(r,t)}function Wd(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Hd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)oa(i,"APPEND targets");sr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Vd(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&q("parent or qualified PATCH targets in this phase")}sr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Vd(r.selector.where,t.idxSelectors)}}}}function Hd(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var lA=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Yd(e,t){if(Hd(e),e.targetKind==="MULTI_VALUE"){if(!lA.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 Fl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${ti} scope allows only one block for table ${n.field}`);t.add(n.field)}}function uA(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];Fl(n),Fl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),jd(n,"UPSERT ON INSERT"),Wd(r,{...t,idxSelectors:!1,expectRows:!1})}function jd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)oa(i,"APPEND targets");sr(r.values,"APPEND values")}}function cA(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),jd(t,"INSERT")}function Kt(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 ni(e,t){let n=Gl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&$l(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${ar(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Kt(t.where))throw new Error(`UnsupportedError: APPLY ${ar(e)} execution does not support multiple-parent APPLY`)}function $l(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function zd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Kt(t.where))&&!Gl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} public multiple-parent write is not connected`)}function ur(e){if(!Gl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} internal prepared write is not available`)}function ar(e){return`Phase ${e.slice(5)}`}function pA(e,t){Kt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Kl(e,t))}function Kl(e,t){if(Array.isArray(e)){for(let o of e)Kl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Kl(o,t)}function Vd(e,t){sr(e,"child row selectors",t)}function sr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)sr(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),oa(l,t,n)}if(i==="FIELD_REF"&&oa(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))sr(s,t,n)}function oa(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}var Te=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function qd(e){Jd(e)}function Vl(e){if(kl(e).length>0)throw new Te("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 Jd(e){switch(e.type){case"SELECT":cr(e);return;case"UNION":Hl(e);return;case"WITH":Xd(e);return;case"EXPLAIN":Jd(e.query);return;case"CREATE_TEMP_TABLE":Wl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":bn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Kt(e.where)&&_e(e.where)){Bl(e.where),bn(e);return}if(sn(e)&&e.subtableCode)throw new Te("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&&_e(e.where)&&!EA(e,e.where)){Bl(e.where),bn(e);return}if(sn(e))throw new Te("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(sn(e)&&e.subtableCode)throw new Te("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&&_e(e.where)){Bl(e.where),bn(e);return}if(sn(e))throw new Te("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(sn(e))throw new Te("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(sn(e))throw new Te("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(sn(e))throw new Te("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(sn(e))throw new Te("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 Bl(e){sa(e,t=>{if(!nn(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Te("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new Te("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 Wl(e){e.type==="SELECT"?cr(e):e.type==="UNION"?Hl(e):Xd(e)}function Hl(e){Wl(e.left),cr(e.right)}function Xd(e){if(on(e)){cr(an(e));return}for(let t of e.ctes)t.query.type==="SELECT"?cr(t.query):t.query.type==="UNION"&&Hl(t.query);Wl(e.query)}function cr(e){if(fA(e),_e(e.where)&&!(Xe(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=wn(e,{allowUnresolvedVariables:!0});if(kl(n).length===0){bn(e);return}if(dA(e)){bn(e);return}throw new Te("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")}bn(e)}function dA(e){return e.where!==null&&Se(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function fA(e){sa(e,t=>{if(!nn(t))return;if(!aa(e.where,t))throw new Te("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Te("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new Te("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 bn(e){la(e,t=>{t.type==="SELECT"&&cr(t)},!0)}function sn(e){let t=!1;return la(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function EA(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function aa(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return aa(e.left,t)||aa(e.right,t);case"NOT":case"GROUP":return aa(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function sa(e,t){if(Array.isArray(e)){for(let r of e)sa(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&mA(r)||sa(r,t)}function la(e,t,n=!1){if(Array.isArray(e)){for(let i of e)la(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))la(i,t)}function mA(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ri=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function Qd(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(RA(t))throw new ri;return;default:return}}function RA(e){let t=!1;return ua(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||gA(n.where)&&(t=!0)}),t}function gA(e){let t=!1;return ua(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function ua(e,t){if(Array.isArray(e)){for(let r of e)ua(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))ua(r,t)}function ln(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function ca(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return ln(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return ln(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return ln(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return ln(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return ln(e,t,3,3);case"REGEXP_REPLACE":return ln(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return ln(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return ln(e,t,0,0)}}var zl=1e4,Gt=zl,Z=e=>new Error(`ArgumentError: ${e}`),yA=e=>e.type==="VARIABLE",un=e=>e?.type==="STRING"&&e.fromVariable===!0;function hA(e){return e.type==="NUMBER"?Number(z(e)):e.value}function pr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function Yl(e){let t=pr(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function AA(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function Zd(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function ii(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function oi(e){let t=Ce(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function ef(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function pa(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function jl(e){return e.year*12+e.month-1}function tf(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function SA(e,t,n){let r=Yl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Yl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return pa(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=jl(t)+(n.coefficient<0&&t.day!==1?1:0);return pa(jl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return pa(e.year,a,n.coefficient)}function nf(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function TA(e){let t=Math.floor(e/12),n=e-t*12+1;return nf(t,n,1)}function rf(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(y=>hA(y));["start","stop","step"].forEach((y,S)=>{if(t[S]==="")throw Z(`GENERATE_SERIES \u306E ${y} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?pr(n):null,c=typeof r=="string"?pr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(ef))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(un(o)&&un(a)&&ii(n)!==null&&ii(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let y=i===void 0?{coefficient:1,unit:"DAY"}:Zd(i);return tf(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:SA(l,c,y)}}let p=o.type==="NUMBER"?oi(o):un(o)?ii(n):null,f=a.type==="NUMBER"?oi(a):un(a)?ii(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||un(o))&&(a.type==="NUMBER"||un(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let m=i===void 0?1:s?.type==="NUMBER"?oi(s):un(s)?ii(i):null;if(m===null)throw s?.type==="NUMBER"||un(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=p,R=f,g=m;if(g===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:R,step:g,rowCount:pa(E,R,g)}}function IA(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(yA)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&oi(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(ef(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&pr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=oi(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=Zd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=pr(i.value);o&&tf(o,r.unit)}}return null}let t=rf(e);if(t.rowCount>Gt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function of(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=IA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Gt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function da(e){let t=rf(e);if(t.rowCount>Gt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=pr(t.start);if(t.dateUnit==="MONTH"){let i=jl(r);for(let o=0;o<t.rowCount;o++)n.push(TA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(nf(r.year+i*t.step,1,1));else{let i=Yl(t.start);for(let o=0;o<t.rowCount;o++)n.push(AA(i+o*t.step))}}return{...t,values:n}}function Ze(e){wA(e),Qd(e),qd(e),of(e)}function wA(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;ca(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var bA=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function fa(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=PA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=bA.exec(l);if(c){i=!0;let d=c[2],u=d.toLowerCase(),p=c[3],f=p.indexOf("#"),m=f<0?p:p.slice(0,f),E=m.match(/^\s*/)?.[0].length??0,R=m.trim(),g=o+c.index+c[0].length-p.length+E;NA(u)?r.has(u)?n.push(Ye(e,g,{severity:"warning",code:ue.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),CA(t,u,R,e,g,n)):n.push(Ye(e,g,{severity:"warning",code:ue.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function NA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function CA(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(Ye(r,i,{severity:"error",code:ue.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(Ye(r,i,{severity:"error",code:ue.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(Ye(r,i,{severity:"error",code:ue.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(Ye(r,i,{severity:"error",code:ue.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function PA(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
8
8
  `;)n++;let r=n;return e[n]==="\r"&&e[n+1]===`
9
- `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function Qd(e,t={}){let n=aa(e),r=[...n.diagnostics],i=e,o=[],a=jn(e).filter(l=>l.source==="logical"),s=AA(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(Be(e,l.start,{severity:"error",code:ue.LOGICAL_APP_UNRESOLVED,message:t.apps===void 0?`Logical app LAPP_${l.logicalName} requires parseScript option apps.`:`Logical app LAPP_${l.logicalName} is not defined in parseScript option apps.`}));if(a.length>0&&!r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED)){let l=To(e,"flow",{resolveLogicalApp(c){return s.get(c)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new Jt(new Dt(i).tokenize(),{dialect1:n.meta.dialect===1,import:t.enableImport===!0}).parseStatementsWithRanges(),c=l.statementRanges.map(d=>({start:Bl(d.start,o,"start"),end:Bl(d.end,o,"end")}));return l.statements.forEach((d,u)=>{try{Je(d)}catch(p){r.push(Be(e,c[u]?.start??0,{severity:"error",code:ue.PARSE_ERROR,message:Xd(p),statementIndex:u}))}}),{meta:n.meta,statements:l.statements,statementRanges:c,diagnostics:r}}catch(l){let c=l instanceof T?l.token.pos:l instanceof xe?l.pos:0,d=Bl(c,o,"start");return r.push(Be(e,d,{severity:"error",code:l instanceof xe?ue.LEX_ERROR:l instanceof T&&l.rawMessage.includes("-- @ksql dialect: 1")?ue.DIALECT1_REQUIRED:ue.PARSE_ERROR,message:l instanceof T?l.rawMessage:Xd(l),statementIndex:SA(e,d)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function AA(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Yn(n),r)}catch{}return t}function Xd(e){return e instanceof Error?e.message:String(e)}function SA(e,t){try{let n=new Dt(e.slice(0,t)).tokenize(),r=0,i=!1;for(let o of n){if(o.kind==="EOF")break;o.kind===";"?(i&&r++,i=!1):i=!0}return r}catch{return 0}}function Bl(e,t,n){if(t.length===0)return e;for(let r of t){if(e<r.normalizedStart||e>r.normalizedEnd)continue;let i=r.normalizedEnd-r.normalizedStart,o=r.sourceEnd-r.sourceStart;return i===o?r.sourceStart+Math.min(e-r.normalizedStart,o):e===r.normalizedStart?r.sourceStart:e===r.normalizedEnd?r.sourceEnd:n==="start"?r.sourceStart:r.sourceEnd}return t[t.length-1].sourceEnd}function Zd(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function pr(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function TA(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function Vl(e){return pr(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function ef(e){return!Vl(e)&&(TA(e.type)||pr(e.type))}var tf=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Me(e,t){for(let n of t)e.add(n)}function sa(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&tf.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>sa(i,t)):sa(r,t))}function la(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&!tf.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>la(i,t)):la(r,t))}function an(e){let t=new Set;if(pr(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Me(t,cr(e));break;case"UNION":Me(t,rf(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Me(t,an(n.query));Me(t,an(e.query));break;case"CREATE_TEMP_TABLE":Me(t,an(e.query));break;default:break}return sa(e)&&t.add("STATISTICAL_AGGREGATE"),la(e)&&t.add("AGGREGATE"),t}function nf(e){return an(e).size>0}function rf(e){let t=e.left.type==="SELECT"?cr(e.left):rf(e.left);return Me(t,cr(e.right)),e.all||t.add("DISTINCT"),t}function cr(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=te(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Me(t,cr(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Me(t,ur(i.condition));return Me(t,ur(e.where)),Me(t,ur(e.having)),sa(e)&&t.add("STATISTICAL_AGGREGATE"),la(e)&&t.add("AGGREGATE"),t}function ur(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")&&Me(t,cr(e.right.query));break;case"LOGICAL":Me(t,ur(e.left)),Me(t,ur(e.right));break;case"NOT":case"GROUP":Me(t,ur(e.expr));break;case"EXISTS":Me(t,cr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function of(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function af(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var ua=16,sf=64,le=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ri(e,t,n){if(Array.isArray(e)){for(let r of e)ri(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))ri(a,t,n)}}var IA=new Set(["=","!=","<>",">","<",">=","<="]);function Wl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Wl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(qn(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&IA.has(String(r.op));Wl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function wA(e){let t=e.type==="EXPLAIN"?e.query:e;return pr(t.type)||t.type==="VALIDATE"}function Hl(e){if(Array.isArray(e)){for(let t of e)Hl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&wl(e);for(let n of Object.values(t))Hl(n)}}function ii(e){if(e.length===0)throw new le("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Hl(u)}catch(f){throw f instanceof Error?new le(f.message,p):f}try{or("phase15b",u),Je(u)}catch(f){throw f instanceof Te||f instanceof ei?new le(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new le(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new le(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new le(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new le(v,p)}let m=Zd(u),E=[],R=[],g=new Set,y=new Set,S=new Set,h=[];Wl(u,h);let I=new Set;for(let v of h){let P=o.get(v.name);if(P===void 0)throw new le(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&v.kind==="array-in-list")throw new le(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(P.kind==="array"&&v.kind!=="array-in-list")throw new le(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(P.relativeDate&&wA(u))throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!v.relativeDateAllowed)throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(P.referencedBy.push(p),I.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new le(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>sf)throw new le(`ParseError: batch exceeds ${sf} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?ri(u.query,g,y):u.type==="DROP_TEMP_TABLE"||ri(u,g,y);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,P=new Set;ri(u.select,v,P),N=v.size>0&&P.size===0}for(let v of g){let P=t.get(v);if(P===void 0)throw new le(`ParseError: temp table ${v} is not defined in this batch.`,p);S.add(P)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(x=>x.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(x=>x.field)]:"fields"in u?u.fields:[],P=JSON.stringify(v),M=t.get(f);if(M===void 0){if(t.set(f,p),n.set(f,P),r.push(f),E.push(f),t.size>ua)throw new le(`ParseError: batch exceeds ${ua} temp tables.`,p)}else{if(n.get(f)!==P)throw new le(`ParseError: validation error table ${f} has a different payload schema.`,p);S.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new le(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>ua)throw new le(`ParseError: batch exceeds ${ua} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new le(`ParseError: temp table ${u.name} is not defined in this batch.`,p);S.add(v),R.push(u.name),t.delete(u.name)}i.push({index:p,statementType:m,isDml:Vl(u),isReadOnly:ef(u),hasWhere:of(u),insertValuesCount:af(u),appIds:[...y].sort((v,P)=>v-P),tempTablesCreated:E,tempTablesReferenced:[...g],tempTablesDropped:R,dependsOn:[...S].sort((v,P)=>v-P),tempOnlySource:N,targetAppId:pr(m)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:nf(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}function sn(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function bA(e,t){return e<t?-1:e>t?1:0}function lf(e){if(e==="")return{band:0};let t=be(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function NA(e,t){let n=lf(e),r=lf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?wo(n.value,r.value):n.band===5&&r.band===5?sn(n.value,r.value):0}function uf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function CA(e,t,n){let r=uf(e,n),i=uf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=sn(r.normalizedId,i.normalizedId);return o!==0?o:sn(r.display,i.display)}function PA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function cf(e,t){let n=t.optionOrder??new Map,i=[...new Set(PA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(pf),i}function pf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:sn(e.label,t.label)}function OA(e,t,n){let r=cf(e,n),i=cf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=pf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function pt(e,t,n){switch(n.compareMode){case"string":return sn(e,t);case"number":return NA(e,t);case"recordNumber":return CA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return OA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function kt(e,t,n,r=B("string")){let i=pt(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function df(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=be(o),l=be(a),c=s!==null&&l!==null?wo(s,l):bA(Number(o),Number(a));if(c!==0)return c}return sn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ge(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Ke(t,e.field));if(e.type==="STRING_FUNC")return Number(ye(e,t,void 0,void 0,n));let r=ge(e.left,t,n),i=ge(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Oe(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ke(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 ye(e,t,n,r,i);case"CASE_WHEN":return Ve(e,t,n,r,i);case"CONCAT_OP":return ye({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Oe(e.left,t,n,r,i)),a=Number(Oe(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Ft(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return Rf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Oe(e,t,n,r,i)}}function ca(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function LA(e){return e>=55296&&e<=56319}function _A(e){return e>=56320&&e<=57343}function da(e,t){return t>0&&t<e.length&&LA(e.charCodeAt(t-1))&&_A(e.charCodeAt(t))}function ff(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function jl(e,t){let n=Math.min(Math.max(0,t),e.length);return da(e,n)&&(n-=1),e.slice(0,n)}function vA(e,t){let n=Math.max(0,e.length-t);return da(e,n)&&(n+=1),e.slice(n)}function DA(e,t,n){let r=ff(t,e.length),i=ff(n,e.length);return i<=r?"":(da(e,r)&&(r+=1),da(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function xA(e,t){let n=e.repeat(Math.ceil(t/e.length));return jl(n,t)}var UA=200,oi=new Map;function MA(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 Yl(e,t,n=!1){let r=MA(t)+(n?"g":""),i=`${e}\0${r}`,o=oi.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(oi.size>=UA){let s=oi.keys().next().value;s!==void 0&&oi.delete(s)}return oi.set(i,a),a}function kA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function FA(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 KA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function GA(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return KA(n,o,d,l?s:void 0)})}function ye(e,t,n,r,i={}){ra(e.func,e.args);let o=e.args.map(a=>zA(a,t,n,r,i));switch(e.func){case"UPPER":return(o[0]??"").toUpperCase();case"LOWER":return(o[0]??"").toLowerCase();case"TRIM":return(o[0]??"").trim();case"LTRIM":return(o[0]??"").trimStart();case"RTRIM":return(o[0]??"").trimEnd();case"LENGTH":return String((o[0]??"").length);case"LENGTH_CHAR":return String([...o[0]??""].length);case"SUBSTRING":{let a=o[0]??"",s=Math.max(0,Number(o[1]??"1")-1),l=o[2]!==void 0?Number(o[2]):void 0;return DA(a,s,l!==void 0?s+l:a.length)}case"LEFT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":jl(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":vA(a,s)}case"INSTR":return String(o[0].indexOf(o[1])+1);case"LPAD":case"RPAD":{let a=o[0],s=Math.trunc(Number(o[1]));if(Number.isNaN(s)||s<=0)return"";if(a.length>=s)return jl(a,s);let l=o[2]??" ";if(l==="")return a;let c=xA(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return df(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return Yl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{kA(o[2]);let a=FA(o[4]),s=Yl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):GA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Yl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return ca("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return ca("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return ca("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return ca("trunc",Number(o[0]),Number(o[1]??"0"));case"CAST":{let a=o[0]??"";if((o[1]??"TEXT")==="NUMBER"){let l=Number(a);return isNaN(l)?a:String(l)}return a}case"FORMAT":{let a=Number(o[0]??"0"),s=o[1]??"0";return YA(a,s)}case"YEAR":{let a=o[0]??"";return a.length>=4?String(parseInt(a.slice(0,4),10)):""}case"MONTH":{let a=o[0]??"";return a.length>=7?String(parseInt(a.slice(5,7),10)):""}case"DAY":{let a=o[0]??"";return a.length>=10?String(parseInt(a.slice(8,10),10)):""}case"DAYOFWEEK":return pa(o[0])?String(zl(o[0])+1):"";case"QUARTER":return pa(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return pa(o[0])?String(mf(o[0])):"";case"DATE_FORMAT":return BA(o[0]??"",o[1]??"");case"DATEDIFF":return VA(o[0]??"",o[1]??"");case"DATE_ADD":return WA(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return HA(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function ai(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 fa(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 pa(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=fa(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function zl(e){return fa(e).getUTCDay()}function Ef(e){let t=fa(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function $A(e){return Ef(e).getUTCFullYear()}function mf(e){let t=Ef(e),n=t.getUTCFullYear(),r=fa(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function BA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=ai(e),l=pa(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(zl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][zl(e)]:"";case"%v":return l?String(mf(e)).padStart(2,"0"):"";case"%G":return l?String($A(e)).padStart(4,"0"):"";default:return c}})}function VA(e,t){if(e.length<10||t.length<10)return"0";let n=ai(e),r=ai(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function WA(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=ai(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function HA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=ai(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function YA(e,t){if(/^-?\d+$/.test(t.trim()))return jA(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,m=p?`${f}.${p}`:f;return n?m+"%":m}function jA(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function zA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(si(e,t)):e.type==="NUMBER"?z(e):String(Oe(e,t,n,r,i))}function si(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[de(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ke(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(si(e.left,t)),r=Number(si(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Ke(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ce(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return qA(e,t,n,r,i,o);case"NULL_CHECK":return tS(e,t);case"LOGICAL":return nS(e,t,n,r,i,o);case"NOT":return!ce(e.expr,t,n,r,i,o);case"GROUP":return ce(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function qA(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=wf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=XA(e.left,s,i);return JA(e.op,a,e.right,t,s,n,l,i,o)}function JA(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(eS(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?z(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=ZA(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=ql(n,r,o,void 0,l);return If(t,d)}if(e==="NOT_LIKE"){let d=ql(n,r,o,void 0,l);return!If(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=ql(n,r,o,s,l);return kt(e,t,c,a)}var gf=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function XA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(gf.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(gf.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var yf=new Set(["CHECK_BOX","MULTI_SELECT"]),hf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),QA=new Set(["CREATOR","MODIFIER"]);function ZA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>kt("=",e,a,o))}let i;if(yf.has(n)||hf.has(n)||QA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return yf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):hf.has(n)?!Array.isArray(i)||!i.every(Af)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Af(i)?t.has(i.code):r()}function Af(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function eS(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${vt}`)}function tS(e,t){let n=wf(e.field,t);return e.not?n!=="":n===""}function nS(e,t,n,r,i,o={}){return e.op==="AND"?ce(e.left,t,n,r,i,o)&&ce(e.right,t,n,r,i,o):ce(e.left,t,n,r,i,o)||ce(e.right,t,n,r,i,o)}function wf(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return ye(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(si(e.expr,t));if(e.type==="ARITH_FIELD")return String(ge(e.expr,t,i));if(e.type==="CASE_FIELD")return Ve(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return Xn(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Ke(t,de(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ke(t,o)}function ql(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return z(e);case"KINTONE_FUNC":return rS(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"?Ke(t,e.expr.field):e.expr.type==="STRING_FUNC"?ye(e.expr,t,void 0,void 0,i):String(ge(e.expr,t,i));case"CASE_VALUE":return Ve(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function Ve(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Tf(o.result,t,n,r,i);return e.elseResult!==null?Tf(e.elseResult,t,n,r,i):""}function Rf(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Sf(o.result,t,n,r,i);return e.elseResult===null?null:Sf(e.elseResult,t,n,r,i)}function Sf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[de(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[At(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ge(e,t,i):Ft(e,t,n,r,i)}function Tf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[de(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[At(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ge(e,t,i)):String(Oe(e,t,n,r,i))}function bf(e,t={}){let n=t.statementInstant??new Date;switch(e){case"TODAY":{let r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return`${r}-${i}-${o}`}case"NOW":return n.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function rS(e){throw re(e)?new Error(`${e}: ${mn}`):Hn(e)?new Error(`${e}: ${vt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Ea=new Map,iS=200;function If(e,t){if(!Zp(t))return e.includes(t);let n=Ea.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),Ea.size>=iS&&Ea.clear(),Ea.set(t,n)}return n.test(e)}function dr(e){return Cf(e)}function Nf(e){return Cf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Cf(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw 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))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw Le("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function Le(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function ma(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ce(a.condition,t,n))continue;let s=Oe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Jl(e){if(Xt(e))throw new ae("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var oS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),aS=new Set(["CHECK_BOX","MULTI_SELECT"]);function ui(e,t=new Map,n={}){let r=e.values.map(i=>sS(e.fields,i,t,n));return di(r,100).map(i=>({app:e.appId,records:i}))}function sS(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Kt(s.expr,{},n.get(o),r)}:i[o]={value:Tt(s,n.get(o))}}),i}function ci(e){Jl(e.where);let t=Kf(e);return{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function pi(e,t,n=new Map){let r=lS(e.assignments,n);return di(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function lS(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:Tt(i,t.get(r))});return n}function _f(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 ya(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 Xl(e){Jl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?vf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?fr(n,t):n.type==="STRING_FUNC"?Ql(n,t):n.type==="CASE_VALUE"&&Df(n.expr,t);return Kf(e).forEach(n=>t.add(n)),{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function vf(e,t){li(e.left,t),li(e.right,t)}function li(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?vf(e,t):e.type==="STRING_FUNC"&&Ql(e,t)}function Ql(e,t){for(let n of e.args)uS(n,t)}function uS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ga(e,t);return}fr(e,t)}function fr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Ql(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){fr(e.left,t),fr(e.right,t);return}e.type==="CASE_WHEN"&&Df(e,t)}function ga(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&cS(e.arg,t);return}e.type==="AGG_ARITH"&&(ga(e.left,t),ga(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function cS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?li(e,t):fr(e,t)}function Pf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ga(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){li(e,t);return}fr(e,t)}}function Df(e,t){for(let n of e.branches)Ra(n.condition,t),Pf(n.result,t);e.elseResult!==null&&Pf(e.elseResult,t)}function Ra(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&li(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Ra(e.left,t),Ra(e.right,t);break;case"NOT":case"GROUP":Ra(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Zl(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=xf(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:eu(d,s,n.get(c),o,r)};return{id:a,record:l}});return di(i,100).map(o=>({app:e.appId,records:o}))}function eu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?nu(e,r):ge(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Oe(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return ye(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Kt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Tt(e,n)}function ha(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(ge(e,t,r));if(e.type==="CASE_VALUE")return Ve(e.expr,t,n,void 0,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 pS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function tu(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new ae("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=xf(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(pS.has(p??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:Tt({type:"STRING",value:f},p)}}else{if(u.type==="STRING_FUNC")throw new ae("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?c[d]={value:String(nu(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(Oe(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:Kt(u.expr,l,p,r)}:c[d]={value:Tt(u,p)}}}return{id:s,record:c}});return di(i,100).map(o=>({app:e.appId,records:o}))}function xf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function nu(e,t){let n=Of(e.left,t),r=Of(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Of(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return nu(e,t);if(e.type==="STRING_FUNC")throw new ae("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new ae(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function ru(e){return Jl(e.where),{app:e.appId,query:j(e.where),fields:["$id"],totalCount:!1}}function Uf(e,t){return di(t,100).map(n=>({app:e,ids:n}))}function Mf(e){return oS.has(e??"")}function dS(e){return aS.has(e??"")}function fS(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function ES(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function kf(e,t){return Mf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):dS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?fS(e):t==="DATE"?ES(e):e}function Ff(e,t){return Mf(t)?e.map(n=>({code:n})):e}function Lf(e,t,n,r){if(e.type==="ARRAY")return Ff(e.elements.map(i=>i.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?kf(e.value,n):e.type==="STRING_FUNC"?ye(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(ge(e,t,r)):String(Oe(e,t,void 0,void 0,r))}function Kf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(dr(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Kt(e,t,n,r={}){for(let i of e.branches)if(ce(i.condition,t,void 0,void 0,void 0,r))return Lf(i.result,t,n,r);return e.elseResult!==null?Lf(e.elseResult,t,n,r):""}function Tt(e,t){let n=iu(e,t);if(!n.ok)throw new ae(n.message);return n.value}function iu(e,t){try{return{ok:!0,value:mS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function mS(e,t){switch(e.type){case"VARIABLE":throw new ae(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ae(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return kf(e.value,t);case"NUMBER":return z(e);case"ARRAY":return Ff(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ae(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ae("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ae("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ae("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ae("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ae("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function di(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ae=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ou=new Set(["CHECK_BOX","MULTI_SELECT"]),RS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function fi(e){throw new Error(`ArgumentError: ${e}`)}function Gf(e,t,n){let r=gS(n.fieldType,e.field),i=yS(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let y=g.value;y!==""&&(g.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let g of s)l.has(g)&&fi(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let c=i.filter(g=>!l.has(g)),d=a.filter(g=>!o.has(g)),u=[...c,...d],p=new Set(i.filter(g=>l.has(g))).size,f=new Set,m=new Set,E=e.operations.map(g=>{let y=g.kind==="ADD"?f:m,S=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&S&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),R=ou.has(r)?u:u.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:E,postImageValue:R,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function gS(e,t){return ou.has(e)||RS.has(e)?e:fi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function yS(e,t,n){if(!Array.isArray(e))return fi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ou.has(t)?typeof i!="string"?fi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?fi(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function J(e){throw new Error(`ArgumentError: ${e}`)}function lu(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?J("APPLY parent selector must be a single positive $id."):t.right.value}function Gt(e,t){let n=e.applyBlocks;if(!n?.length)return J("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)au(s.field,null,r),hS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(Fd(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)au(p.field,s.field,r,d),su(p.value,s.field,r,d);u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),au(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function hS(e,t){Ei(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function au(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function su(e,t,n,r){Ei(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Aa(e,t){let n=Gt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)Ei(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Sa(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Yf(i?.value);return n}function Bf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Gt(t,r),o=pu(n.$id?.value,"APPLY snapshot $id"),a=lu(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Wf(t,n,i,o,e.evaluationContext)}function Vf(e,t,n,r=Gt(e,n),i={}){let o=new Set;return t.map(a=>{let s=pu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&J(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),Wf(e,a,r,s,i)})}function Wf(e,t,n,r,i={}){let o=pu(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let C=n.targetMultiValueFields.get(u.field);C||J(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(Gf(u,t[u.field]?.value,C));continue}let p=n.childrenByTable.get(u.field),f=bS(t,u.field),m=new Set;for(let C of f)C.id||J(`APPLY snapshot for ${u.field} contains a row without _rid.`),m.has(C.id)&&J(`APPLY snapshot for ${u.field} contains duplicate _rid ${C.id}.`),m.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":p.get(C.field)?.fieldType,R=[],g=[],y=[],S=new Set,h=new Set,I=new Set,N=u.operations.some(C=>C.kind==="REMOVE");for(let[C,D]of u.operations.entries()){if(D.kind==="APPEND"){let _=uu(D,p,u.field,i);y.push({kind:"APPEND",addedRows:_.length}),g.push(..._);continue}if(D.kind==="REMOVE"){let _=TS(D,f,E,u.field,i);D.expectRows&&$f(D.expectRows,_.length,r,u.field,C,D.kind),y.push({kind:"REMOVE",removedRows:_.length});for(let A of _){let w=f[A].id;h.has(A)&&J(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(A)&&J(`APPLY removes row ${w} more than once.`),I.add(A)}continue}if(D.kind!=="PATCH")continue;let b=SS(D,f,E,u.field,i);D.expectRows&&$f(D.expectRows,b.length,r,u.field,C,D.kind),y.push({kind:"PATCH",matchedRows:b.length,changedRows:b.length});for(let _ of b){let A=f[_];I.has(_)&&J(`APPLY row ${A.id} is selected by both PATCH and REMOVE.`),h.add(_);let w=Sa(A,_);for(let U of D.assignments){let O=`${A.id}\0${U.field}`;S.has(O)&&J(`APPLY patches cell ${A.id}.${U.field} more than once.`),S.add(O),R.push({rowIndex:_,field:U.field,value:ha(U.value,w,E,i)})}}}let v=new Map;for(let C of R){let D=v.get(C.rowIndex)??{};D[C.field]={value:C.value},v.set(C.rowIndex,D)}let M=[...f.flatMap((C,D)=>I.has(D)?[]:[{id:C.id,value:{...C.value,...v.get(D)??{}}}]),...g],x={table:u.field,operations:y,changedSubtableRows:v.size+I.size+g.length,deletedRows:I.size,snapshotRowIds:f.map(C=>C.id),postImageRows:M};N?a.push({...x,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((C,D)=>I.has(D)?[C.id]:[]),payloadRows:M.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):a.push({...x,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((C,D)=>{let b=v.get(D);return b?{id:C.id,value:b}:{id:C.id}}),...g.map(C=>({value:C.value}))]})}let l=NS(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:eu(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function $f(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Ta(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}:J(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function uu(e,t,n,r={}){return e.values.map(i=>({value:AS(e,i,t,n,r)}))}function AS(e,t,n,r,i){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?cu(s):l.type==="CASE_VALUE"?Kt(l.expr,{},s.fieldType,i):Tt(l,s.fieldType)}}return a}function cu(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 SS(e,t,n,r,i={}){return Hf(e.selector,t,n,r,i)}function TS(e,t,n,r,i={}){return Hf(e.selector,t,n,r,i)}function Hf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>ce(o,Sa(c,d),n,void 0,void 0,i)?[d]:[]),s=IS(o);s!==null&&a.length===0&&J(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=wS(o);return l!==null&&a.length===0&&J(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function IS(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 wS(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 bS(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function pu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function NS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Yf(r?.value);return t}function Yf(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 Ei(e,t){if(Array.isArray(e)){e.forEach(r=>Ei(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))Ei(r,t)}function Ee(e){throw new Error(`ArgumentError: ${e}`)}function wa(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Ee("APPLY snapshot $revision must be a positive integer."):t}function mi(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return Ee("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return Ee("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&Ee(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&Ee(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&Ee(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),CS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function jf(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 Ee("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function CS(e){let t=du(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&Ee(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(du(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&Ee(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");Ia(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&Ee(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");Ia(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&Ee(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||Ee(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=du(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Ee(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Ee(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&Ee(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));Ia(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");Ia(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&Ee(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&Ee(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!fu(d.value,e.postImageRows[u]?.value))&&Ee(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&Ee(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function du(e,t){let n=[...e],r=new Set;for(let i of n)i||Ee(`APPLY ${t} contains an empty row id.`),r.has(i)&&Ee(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Ia(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Ee(n)}function fu(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)=>fu(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&fu(n[a],r[a]))}function zf(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function qf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=zf(t.digits,"digits",1,30),r=zf(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function Jf(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 PS=new Set(["CHECK_BOX","MULTI_SELECT"]),OS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function We(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=LS(e);if(i!==""&&!_S(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=Ri(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:vS(t.fieldType),message:o}}if(t.required&&ba(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ba(r)&&t.fieldType==="NUMBER"){let i=String(r),o=be(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&&bo(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&&bo(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=Jf(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!ba(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Tn(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!ba(r)&&OS.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function LS(e){return e==null?"":Na(e)&&e.type==="NUMBER"?z(e):Na(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function _S(e,t){if(t==="DATE")return Tn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Tn(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Tn(n.slice(0,10),"DATE")&&Tn(n.slice(11),"TIME"):Tn(n,"DATETIME")}function Ri(e,t){if(Na(e)){let r=iu(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if(PS.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function Na(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function In(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Na(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ba(e){return e===""||Array.isArray(e)&&e.length===0}function vS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Tn(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Tn(l,"TIME")}var Er=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Eu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=Ri(a,s)}catch{}i.record[o]={value:l?a:c}}}}function mu(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(R=>[R.code,R])),p=[],f=new Set,m=[];d.validateUpdateBuiltIns===!1&&Eu(e,r,i);let E;for(let R of e){R.record??={};let g=c?[...R.preErrors]:[],y=[],S=[],h=R.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let P of r){if(!R.payload.has(P))continue;let M=R.payload.get(P),x=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(x)&&Array.isArray(M)&&M.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!h)continue;let D=We(M,u.get(P),a);D.ok?R.record[P]={value:C?M:D.value}:y.push({field:P,code:D.code,message:D.message})}if(l&&R.mode==="create")for(let P of i){if(P.inSubtable||R.payload.has(P.code))continue;if(In(P.defaultValue)){let x=We("",P,a);x.ok?P.required&&y.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:P.code,code:x.code,message:x.message})}else{let x=We(P.defaultValue,P,a);x.ok||y.push({field:P.code,code:x.code,message:`\u65E2\u5B9A\u5024: ${x.message}`})}}if(s.length>0){let P=R.evaluationRow??Object.fromEntries([...R.payload].map(([C,D])=>[C,Xe(D)])),M=R.evaluationFieldTypes,x=C=>{let D=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return M?.get(D)??M?.get(C.field)};try{for(let C of ma(s,P,x))S.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??=C}}let I=P=>P.map(M=>{let x={};for(let C of n)x[C]=Xe(R.payload.get(C));return x.$err_statement=String(o),x.$err_operation=t,x.$err_row=String(R.rowNumber),x.$err_field=M.field,x.$err_code=M.code,x.$err_message=M.message,x.$err_value="",x.$err_subtable="",x.$err_subrow="",x.$err_subrow_id="",x}),N={rowNumber:R.rowNumber,preErrors:I(g),builtInErrors:I(y),checkErrors:I(S)};m.push(N);let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];v.length>0&&f.add(R.rowNumber),p.push(...v)}if(E!==void 0)throw E;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:m}}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(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var Ru=["required","length","range","choice"];function gu(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function yu(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function DS(e){return gu(e).length>0}function xS(e){return e.fieldType==="NUMBER"||DS(e)}function Ca(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function hu(e,t){let{topByCode:n,childrenByTable:r}=yu(t),i=xS;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,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(m=>m.code===p);if(!f){let m=[...r.entries()].some(([E,R])=>E!==l.subtableCode&&R.some(g=>g.code===p));throw new Error(m?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function gi(e,t){return In(e)?"":Xe(Ri(e,t))}var US=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),yi=Er;function It(e,t=["$id"]){let n=yu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!US.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function wn(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function bn(e,t,n,r,i=1,o="UPDATE"){let a=MS(e),s=[],l=new Set,c=[...t.payloadFields,...yi],d=Xe(e.$id?.value),u=(p,f,m,E)=>{l.add(i);let R={};for(let g of t.payloadFields)R[g]=g==="$id"?d:Xe(e[g]?.value);R.$err_statement=String(r),R.$err_operation=o,R.$err_row=String(i),R.$err_field=p.code,R.$err_code=m.code,R.$err_message=m.message,R.$err_value=gi(f,p.fieldType),R.$err_subtable=E?.subtable??"",R.$err_subrow=E?String(E.subrow):"",R.$err_subrow_id=E?.subrowId??"",s.push(R)};for(let p of t.topLevel){let f=e[p.code]?.value,m=We(f,p,n);m.ok?a[p.code]={value:Xf(f,p.fieldType,m.value)}:u(p,f,m)}for(let[p,f]of t.subtables){let m=e[p]?.value;if(!Array.isArray(m))continue;let E=a[p]?.value;for(let R=0;R<m.length;R++){let g=m[R],y=E[R];for(let S of f){let h=g.value?.[S.code]?.value,I=We(h,S,n);I.ok?(y.value??={},y.value[S.code]={value:Xf(h,S.fieldType,I.value)}):u(S,h,I,Ca(p,R,g))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Xf(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function MS(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function Pa(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Qf(o,"dmlMaxRows"),Qf(a,"dmlMaxSubtableRows");for(let S of n)wa(S);let l=Vf(t,n,r,i),c=It(r,t.assignments.map(S=>S.field)),d=l.some(S=>wn(S.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((S,h)=>bn(S.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let S=p.flatMap(h=>h.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=l.length,m=l.reduce((S,h)=>S+h.changedSubtableRows,0),E=f>o||m>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&m>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${a}).`);let R=l.map((S,h)=>Ta(S,p[h].normalizedRecord)),g=R.flatMap(S=>mi(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Zf({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:m,dmlMaxSubtableRows:a,wouldExceed:E}})}function Qf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Zf(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Zf(n,t);return Object.freeze(e)}var Au=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Oa(e,t){if(new Set(e.fields).size!==e.fields.length)return wt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)eE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return wt(`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 wt(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return wt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return wt(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),eE(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return wt(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function kS(e,t,n=Oa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ui(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>uu(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Au.has(u.fieldType)||(c[u.code]=s[u.code]??{value:cu(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function hi(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;tE(r,"dmlMaxRows"),tE(i,"dmlMaxSubtableRows");let a=e.metadata??Oa(t,n),s=kS(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!Au.has(h.fieldType)),c=It(l,t.fields),d=s.some(h=>wn(h.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(h=>bn(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,m=s.reduce((h,I)=>h+I.tables.reduce((N,v)=>N+v.addedRows,0),0),E=f>r||m>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&m>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${i}).`);let R=s.map((h,I)=>{let N=p[I].normalizedRecord,v={};for(let P of t.fields)v[P]=N[P];for(let P of h.tables){let M=N[P.table]?.value;v[P.table]={value:P.rows.map((x,C)=>({value:Object.fromEntries(Object.keys(x.value).map(D=>[D,M[C]?.value?.[D]??x.value[D]]))}))}}return{...h,postImage:N,record:v}}),g=R.map(h=>h.record),y=[];for(let h=0;h<g.length;h+=100)y.push({app:t.appId,records:g.slice(h,h+100)});let S=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return nE({applyBlocks:t.applyBlocks??[],candidates:R,records:g,batches:y,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:m,dmlMaxSubtableRows:i,wouldExceed:E}})}function eE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return wt(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?wt(`APPLY child ${e} does not belong to subtable ${t}.`):wt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Au.has(i.fieldType))return wt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function tE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function wt(e){throw new Error(`ArgumentError: ${e}`)}function nE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))nE(n,t);return Object.freeze(e)}async function iE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;rE(i,"dmlMaxRows"),rE(o,"dmlMaxSubtableRows"),BS(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),c=FS(t,s.map(g=>g.sourceRowIndex)),d=await hi({statement:c,fieldInfos:r,metadata:Oa(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let g of l){let y=g.targetId;p.has(y)&&Su(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||Su(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(g.snapshot.$id?.value);S!==y&&Su(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let h=KS(t,g.sourceRowIndex,y),I=h.applyBlocks?.length?Gt(h,r):GS(r);u.push(await Pa({statement:h,snapshots:[g.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=$S(u,i,o),m=d.guards.parentRows+f.guards.parentRows,E=d.guards.subtableRows+f.guards.subtableRows,R=m>i||E>o;if(!t.validateOnly){let g=[...d.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&m>i)throw new Error(`ArgumentError: APPLY parent rows (${m}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return Tu({create:d,update:f,createBatches:d.batches,updateBatches:VS(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:m,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:R,create:d.guards,update:f.guards}})}function FS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function KS(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function GS(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function $S(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return Tu({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function BS(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function VS(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function rE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Su(e){throw new Error(`ArgumentError: ${e}`)}function Tu(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Tu(n,t);return Object.freeze(e)}function Si(e){return mr("UPDATE",[sE(e)])}function Iu(e){return mr("INSERT",[aE(e)])}function wu(e){return mr("UPSERT",[aE(e.create),sE(e.update)])}function Qe(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function _a(e,t,n){return e.type==="UPDATE"?mr("UPDATE",[La("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?mr("INSERT",[La("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):mr("UPSERT",[La("insert",e.onInsertApplyBlocks??[],null,!1,t,n),La("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function mr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function aE(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function sE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:oE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:oE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function oE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:Ai(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ai(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ai(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ai(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ai(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ai(e,t){return e==null||t===null?null:e+t}function La(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>WS(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,m)=>f+m.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function WS(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var bt=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function lE(e,t,n){ar("phase10c");let r=jf(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function uE(e,t,n){ar("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function cE(e,t,n){ar("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var HS=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function YS(e){if(!HS.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function jS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=YS(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function bu(e,t){let n=jS(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function zS(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function pE(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return zS(i)?!0:Object.values(i).some(n)};return n(e)}function dE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function $t(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var Ti=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},va=class{constructor(t,n=$t({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new Ti("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new Ti("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new Ti("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Da=50;function Cu(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=Da){let o=e.values.slice(i,i+Da);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Nu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),qS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function JS(e,t){return e==="DATE"?qr(t):e==="TIME"?Wo(t):Nu.has(e)?Ho(t):!1}function XS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Nu.has(e)?Nu.has(t.fieldType):!1}function Pu(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Vo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!qS.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!XS(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!JS(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];pt(s,i,n)<0&&(i=s),pt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Ou=$l;function Ii(e,t,n=Ou){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function fE(e,t){let n=te(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Nt(e){if(e===null)return!1;switch(e.type){case"BINARY":return xa(e.left);case"NULL_CHECK":return xa(e.field);case"LOGICAL":return Nt(e.left)||Nt(e.right);case"NOT":case"GROUP":return Nt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function xa(e){if(Array.isArray(e))return e.some(xa);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(xa)}async function Ge(e,t,n,r,i={}){let o=i.pageSize??QS,a=Math.max(1,i.parallel??ZS),s=i.maxRecords??eT,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,m=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,E=0,R=0,g=RE(n,E),y=await mE(e,t,g,u,o,R);if(EE(y,i),p.push(...y.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new dt(m)}if(y.records.length<o)return p;for(R+=o,R>=_u&&(E=gE(y.records),R=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new dt(m)}let S=d-p.length,h=Math.ceil(S/o),I=Math.max(1,Math.min(a,h)),N=[];for(let x=0;x<I;x++){let C=R+x*o;if(C>=_u)break;N.push(C)}let v=RE(n,E),P=await Promise.all(N.map(x=>mE(e,t,v,u,o,x)));for(let x of P)EE(x,i);let M=!1;for(let x of P){if(p.push(...x.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new dt(m)}if(x.records.length<o){M=!0;break}}if(M)break;if(R+=o*N.length,R>=_u){let x=P[P.length-1];E=gE(x.records),R=0}}return p}function EE(e,t){e.searchAborted&&t.onSearchAborted?.()}function yE(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var QS=500,ZS=1,eT=1e4,_u=1e4;async function mE(e,t,n,r,i,o){let a=tT(n,i,o);return e({app:t,query:a,fields:r})}function RE(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function tT(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function gE(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var dt=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function ft(e,t,n,r,i){let o=await Ge(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function wi(e,t,n,r){let{records:i,metrics:o}=await ft(e,t,n,["$id"],r);return{ids:yE(i),metrics:o}}function gr(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?AE(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):AE(n[0],e.field)}function Du(e,t){if(e.left.type!=="FIELD")return bi();let n=gr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return bi();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ie(e,a=>{let s=gr(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:ne({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return bi();let o=jo(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?bi():Object.freeze({relation:o,owner:n})}function SE(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=gr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ie(e,o=>{let a=gr(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:ne({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function TE(e,t){let n=new Set;Nn(e,n);let i=(e===null?[]:bE(Rr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=nT(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)Nn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(oT(e,t)),fetchQueriesByAlias:new Map,...o})}function IE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Cn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,yr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=yr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Cn(Ga(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function hr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Cn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!Cn(Ga(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||wE(iT(e))!==e.allKlikes.length))}function nT(e,t){if(e===null)return hE(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return hE(e);let r=rT(e,t,n);if(r!==null)return r;let i=ka(e),o=[],a=new Set;for(let u of i){let p=SE(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},m;try{m=yr(f,t)}catch{continue}let E=Ga(m);Cn(E,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:m,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Fa(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=Cn(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function rT(e,t,n){let r=Ua(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=yr(i,t)}catch{return null}if(!Cn(Ga(o),n))return null;let a=new Set;if(Nn(e,a),wE(o)!==a.size)return null;let s=Object.freeze(Ma(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function Ua(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=SE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Du(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Ua(e.left,t),r=Ua(e.right,t);return n!==null&&r!==null&&$a(n,r)?n:null}case"GROUP":case"NOT":return Ua(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ma(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...Ma(e.left),...Ma(e.right)];case"GROUP":case"NOT":return Ma(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function hE(e){let t=e===null?[]:Se(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function ka(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...ka(e.left),...ka(e.right)]:[];case"GROUP":return ka(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Fa(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Fa(e.left,t),r=Fa(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=Fa(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Ga(e){let t=[];for(let n of Dr){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function Cn(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function wE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function iT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function oT(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=gr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ka(i.right)){n.add("CROSS_TABLE_BINARY");return}Du(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(CE(i)){n.add("KLIKE_OR");return}let o=Rr(i.left,t),a=Rr(i.right,t);if(o.length!==1||a.length!==1||!$a(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function yr(e,t){return Ni(e.predicate,e,t),j(e.predicate)}function Ni(e,t,n){switch(e.type){case"LOGICAL":Ni(e.left,t,n),Ni(e.right,t,n);return;case"GROUP":Ni(e.expr,t,n);return;case"NOT":Ni(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ka(e.right))throw vu(t,"predicate contains a non-target or RHS field reference");let r=gr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw vu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw vu(t,"predicate shape is outside the Phase A serializer contract")}}function vu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Rr(e,t){switch(e.type){case"BINARY":{let n=Du(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Rr(e.left,t),r=Rr(e.right,t);if(e.op==="AND")return bE([...n,...r]);if(CE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return $a(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:NE(i.relation,o.relation)}]:[]}case"GROUP":return Rr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function bE(e){let t=[];for(let n of e){let r=t.findIndex(o=>$a(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:NE(i.relation,n.relation)}}return t}function AE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function bi(){return Object.freeze({relation:"unsafe"})}function $a(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function NE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Nn(e,t){if(e!==null){if(Qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Nn(e.left,t),Nn(e.right,t);return;case"NOT":case"GROUP":Nn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function CE(e){let t=new Set;return Nn(e,t),t.size>0}function Ka(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ka);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ka)}function xu(e,t){let n=Xr(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function aT(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function sT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Ci(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=aT(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!sT(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var lT=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 uT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Pi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(uT(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}lT.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var Ba=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},Va=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}},Wa=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function PE(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new Wa(a).message}}return{records:n,cleanupWarning:o}}function Uu(e){let t=[];e.where&&t.push(j(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var cT={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function OE(e,t){let n=cT[e];if(n===void 0)throw new Error(`ArgumentError: getFields returned unknown fieldType "${e}" for field "${t}". getFields must return only the fields from /k/v1/app/form/fields.json; $id and $revision are synthesized by the engine and must not be added.`);return n}async function LE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>OE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=OE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Ar=new WeakMap,ku=new WeakMap,pT="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function $u(e){if(ku.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):Ce(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ce(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ce(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),ku.set(t,e),t}function Et(e){return ku.get(e)??e}function $E(e){let t=Ar.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Ar.set(e,t)),t}function Ct(e,t,n,r=[]){let i=$E(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ze(e,t){return Ar.get(e)?.byColumn.get(t)}function Ce(e,t){return Ar.get(e)?.byLookupKey.get(t)}function Bt(e,t){return Ar.has(e)?void 0:e[t]}function _E(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(de(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>Ce(a,o)===void 0&&a[o]===void 0))&&n.add(pT)}function dT(e){let t=Ar.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=El(e);return r&&fl(n,r.includedCanonicalIds),n}function Vt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function fT(e,t,n,r={}){if(n.type==="CROSS"){let p=Ii(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let m of e)for(let E of t)f.push({...m,...E});return f}let{on:i,type:o}=n,a=ET(i,e,t,r.leftColumns,r.rightColumns),s=Fu(a.left),l=Fu(a.right);if(DE(e,s,r.leftColumns),DE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let E of e){let R=E[s]??"",g=p.get(R);g?g.push(E):p.set(R,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let m=[];for(let E of t){let R=E[l]??"",g=p.get(R)??[];if(g.length>0)for(let y of g)m.push({...y,...E});else m.push({...f,...E})}return m}let c=new Map;for(let p of t){let f=p[l]??"",m=c.get(f);m?m.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",m=c.get(f)??[];if(m.length>0)for(let E of m)d.push({...p,...E});else o==="LEFT"&&d.push({...p,...u})}return d}function Fu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function ET(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=vE(o),l=vE(a),c=p=>{if(p.tableAlias){let R=s.has(p.tableAlias),g=l.has(p.tableAlias);if(R!==g)return R?"LEFT":"RIGHT"}let f=Fu(p),m=o.includes(f),E=a.includes(f);return m!==E?m?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function vE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function DE(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function mT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ce(t,a,n,r,i,o))}function BE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&xi(t.expr)||t.type==="SCALAR_VALUE_COL"&&ln(t.expr))}function RT(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>yT(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&BE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=$u({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[Hu(d.expr)]=String(ge(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[un(d.expr)]=ye(d.expr,l[0],void 0,void 0,o.evaluationContext));VE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function gT(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let m of l.items){let E=xE(m,p),R=f.children.get(E);R||(R={children:new Map},f.children.set(E,R)),f=R}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=$u({...p[0]}),m=new Map;for(let E of l.items)m.has(E.canonicalId)||m.set(E.canonicalId,xE(E,p[0]));for(let E of t.allItems){let R=m.get(E.canonicalId)??"";f[E.directKey]=R,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=R)}VE(f,p,n,r,i.evaluationContext),fl(f,u),o.push(f)}}return o}function xE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function VE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=de(a.func,a.distinct,a.arg),l=String(_i(a.func,a.distinct,a.arg,a.separator,t,r,i));Ct(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){Ha(e,t,a.expr,r,i);let s=a.alias??vi(a.expr);Ct(e,o,String(Oi(a.expr,t,r,i)),[s])}else if(a.type==="STRFUNC_COL"&&xi(a.expr)){Ha(e,t,a.expr,r,i);let s=a.alias??un(a.expr),l=Yu(a.expr,t,r);Ct(e,o,ye(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&ln(a.expr)){Ha(e,t,a.expr,r,i);let s=a.alias??Pt(a.expr),l=Li(a.expr,t,r);Ct(e,o,String(Oe(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Ye(a.expr)){Ha(e,t,a.expr,r,i);let s=qE(a.expr,t,r),c=Ve(s,e,void 0,d=>d.aggregateRef?HE(d.aggregateRef,r):void 0,i);Ct(e,o,c,[Ku(a.alias,o)])}}function Ku(e,t){return e??`__ksql_case_column_${t}`}function Gu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Gu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>Gu(r,t))}function Ha(e,t,n,r,i={}){let o=[];Gu(n,o);for(let a of o){let s=de(a.func,a.distinct,a.arg);if(Ce(e,s)!==void 0)continue;let l=String(_i(a.func,a.distinct,a.arg,a.separator,t,r,i));$E(e).byLookupKey.set(s,l)}}function yT(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Ya(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?ye(e.expr,t,void 0,void 0,i.evaluationContext):String(ge(e.expr,t,i.evaluationContext))}function _i(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=WE(e,n,i,a).filter(m=>m!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(m=>{let E=Number(m);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: ${m}`);return E}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Di(n,o):void 0,p=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(s.length===0)return"";let m=new Map;for(let g of s)m.set(g,(m.get(g)??0)+1);let E="",R=0;for(let[g,y]of m){if(y>R){E=g,R=y;continue}if(y!==R)continue;let S=pt(g,E,p);(S<0||S===0&&sn(g,E)<0)&&(E=g)}return E}if(e==="MIN"||e==="MAX"){let m=d;if(m.length===0)return"";let E=m[0];for(let R of m.slice(1)){let g=pt(R,E,p);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(E=R)}return E}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((m,E)=>m+E,0);case"AVG":return f.length===0?0:f.reduce((m,E)=>m+E,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let m=[...f].sort((R,g)=>R-g),E=Math.floor(m.length/2);return m.length%2===1?m[E]:(m[E-1]+m[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let m=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||m&&f.length<2)return"";let E=f[0],R=0,g=0,y=0;for(let h of f){let I=h-E;R++;let N=I-g;g+=N/R,y+=N*(I-g)}let S=Math.max(0,y/(m?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(S):S}}}function WE(e,t,n,r={}){return n.map(i=>{let o=Et(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=ge(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Ft(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function hT(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 Oi(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(_i(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ke(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=Oi(e.left,t,n,r),o=Oi(e.right,t,n,r);switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}function vi(e){return At(e)}function Di(e,t){if(e.type==="FIELD_REF")return t?.(hT(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Di(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function HE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":Di(e.arg,t)??"string";return typeof n=="string"?B(n):n}function AT(e,t,n,r,i={}){return t===null?e:e.filter(o=>ce(t,dT(o),n,void 0,r,i))}function ST(e,t,n,r,i,o={}){if(e.length===0)return e;let a=TT(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function TT(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(LT(t,a,o))}function Bu(e,t,n,r,i,o,a={}){return t.length===0?e:YE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function YE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(jE.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:bT(u,d,o,a)}))})),c=(d,u)=>IT(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function IT(e,t,n,r){for(let i=0;i<n.length;i++){let o=wT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function wT(e,t,n){return pt(e.s,t.s,n.semantics)}var jE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function bT(e,t,n,r={}){let i=Et(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ce(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(ge(e.expr,i,r));case"FUNC_KEY":return ye(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return Xn(e.ref,t)}}function Vu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>Ke(Et(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>Ze(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>Ze(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>Ze(c,a)??"");break;case"ARITH_COL":o.set(l,c=>String(ge(s.expr,Et(c),i)));break;case"STRFUNC_COL":{let c=un(s.expr);o.set(l,d=>xi(s.expr)?Ze(d,a)??Ce(d,c)??ye(s.expr,Et(d),n,r,i):ye(s.expr,Et(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Ye(s.expr)?Ze(c,a)??"":Ve(s.expr,Et(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=Pt(s.expr);o.set(l,d=>ln(s.expr)?Ze(d,a)??Ce(d,c)??"":String(Oe(s.expr,Et(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>Xn(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>o.get(a)?.(s)}function Wu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=$u(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(m=>OT(u,m))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=YE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(No(l)){PT(l,c,p,o,a);continue}if(il(l)){CT(l,c,f,a);continue}if(!rl(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let m=1,E=1;for(let R=0;R<f.length;R++){R>0&&p.compare(f[R-1],f[R])!==0&&(m=R+1,E++);let g=l.func==="ROW_NUMBER"?R+1:l.func==="RANK"?m:E;Ct(f[R].row,c,String(g),[l.alias])}}}return e}function NT(e,t,n={}){let r=Ft(e,Et(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function CT(e,t,n,r={}){let i=n.map(a=>NT(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;Ct(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function PT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:WE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Di(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let m=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(m!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(m),d++;else if(p===void 0)p=m;else{let R=pt(m,p,l);(e.aggFunc==="MAX"&&R>0||e.aggFunc==="MIN"&&R<0)&&(p=m)}let E=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(E))}if(e.frame===null){let f=c[c.length-1];for(let m of o)Ct(m.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let m=f;for(;m+1<o.length&&n.compare(o[m],o[m+1])===0;)m++;for(let E=f;E<=m;E++)Ct(o[E].row,t,c[m],[e.alias]);f=m+1}return}for(let f=0;f<o.length;f++)Ct(o[f].row,t,c[f],[e.alias])}function OT(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ke(Et(e),n)}function ja(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Ya(e,t,n,r={}){let i=Et(t);switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return Ke(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=de(e.func,e.distinct,e.arg);return Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Bt(t,e.alias??o)??Bt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??vi(e.expr);return Ze(t,n)??Ce(t,o)??Bt(t,o)??"0"}case"ARITH_COL":return String(ge(e.expr,i,r.evaluationContext));case"CASE_COL":return Ye(e.expr)?Ze(t,n)??Ce(t,Ku(e.alias,n))??Bt(t,Ku(e.alias,n))??"":Ve(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return Xn(e.ref,t);case"STRFUNC_COL":{let o=un(e.expr);return xi(e.expr)?Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Bt(t,e.alias??o)??Bt(t,o)??ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=Pt(e.expr);return ln(e.expr)?Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Bt(t,e.alias??o)??Bt(t,o)??"":String(Oe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ze(t,n)??Ce(t,e.alias)??Bt(t,e.alias)??""}}function LT(e,t,n={}){return e.map((r,i)=>{let o=Ya(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Pn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let m=e.map(R=>{let g=KE(ME(R),a),y=Ya(t[0],R,0,{wildcardKeys:Object.keys(g)}),S={};if(typeof y!="string")for(let[h,I]of y.entries)I!==null&&(S[h]=I);return S}),E=m.length>0?Object.keys(m[0]):[...i??[]];return{rows:m,columns:E}}let l=xT(t),c=DT(t),d=t.some(m=>m.type==="WILDCARD"||m.type==="PARENT_WILDCARD"),u=d?null:_T(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:vT(t,l,c)}:{rows:e.map((m,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(KE(ME(m),a)),parentWildcardKeys:Object.keys(m).filter(y=>y.startsWith("_p.")).sort()};for(let[y,S]of t.entries()){let h=Ya(S,m,y,g);switch(S.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(R[I]=N);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(R[I]=N),E===0&&p.push(I);break}case"FIELD":{let I=u?.[y]??S.alias??l.get(y)??S.field;R[I]=h,u===null&&E===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[y]??S.alias??`'${S.value}'`;R[I]=h,u===null&&E===0&&p.push(I);break}case"AGGREGATE":{let I=de(S.func,S.distinct,S.arg),N=u?.[y]??S.alias??I;R[N]=h,u===null&&E===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[y]??S.alias??vi(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[y]??S.alias??Hu(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"CASE_COL":{let I=u?.[y]??S.alias??c.get(y)??"case";R[I]=h,u===null&&E===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[y]??S.alias??`GROUPING(${S.ref.field.tableAlias?`${S.ref.field.tableAlias}.`:""}${S.ref.field.field})`;R[I]=h,u===null&&E===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[y]??S.alias??un(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[y]??S.alias??Pt(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[y]??S.alias??"(subquery)";R[I]=h,u===null&&E===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[y]??S.alias;R[I]=h,u===null&&E===0&&p.push(I);break}}}return R}),columns:p}}function _T(e,t,n){return e.map((r,i)=>zE(r,i,t,n))}function vT(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=zE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function zE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??de(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??vi(e.expr);case"ARITH_COL":return e.alias??Hu(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??un(e.expr);case"SCALAR_VALUE_COL":return e.alias??Pt(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 DT(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function xT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=UE(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=UE(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function UE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ME(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Hu(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?z(n):n.type==="STRING_FUNC"?un(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function un(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?vi(n):n.type==="VARIABLE"?`@${n.name}`:Pt(n));return`${e.func}(${t.join(",")})`}function Pt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return un(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Pt(e.left)}${e.op}${Pt(e.right)}`;case"CONCAT_OP":return`${Pt(e.left)}||${Pt(e.right)}`}}function UT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:ln(e)}function ln(e){return e.type==="STRING_FUNC"?xi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?ln(e.left)||ln(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>kE(t.result))||e.elseResult!==null&&kE(e.elseResult):!1}function kE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:ln(e)}function xi(e){return e.args.some(t=>UT(t))}function MT(e,t,n){if(e.type==="AGG_REF"){let r=_i(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Oi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Ke(t[0]??{},r)),raw:Ke(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Yu(e,t,n):Li(e,t,n)}function Li(e,t,n){return e.type==="STRING_FUNC"?Yu(e,t,n):e.type==="CASE_WHEN"?qE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Li(e.left,t,n),right:Li(e.right,t,n)}:e}function FE(e,t,n){if(e.type==="AGG_REF"){let r=_i(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Oi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Li(e,t,n)}function qE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:FE(r.result,t,n)})),elseResult:e.elseResult===null?null:FE(e.elseResult,t,n)}}function Yu(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>MT(r,t,n))}}function KE(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function GE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Mu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function kT(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,B("number"));else if(r.type==="WINDOW_COL"){if(rl(r)||No(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((No(r)||il(r))&&r.arg.type!=="WILDCARD"){let i=Di(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?B(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,B("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,B("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,B("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,B(jE.has(r.expr.func)?"number":"string"));return n}function ju(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:m,hiddenQualifiedAliases:E,resolvedGroupingSpec:R,plainGroupByPlan:g,warnings:y,evaluationContext:S}=e,h=kT(t.columns,u);for(let[D,b]of a??[])h.set(D,b);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(D=>Vt(D,N));let P=Mu(GE(m?.get(N),N),void 0,I);for(let D of t.joins){let b=D.table.alias,A=(n.get(b)??[]).map(U=>Vt(U,b)),w=Mu(GE(m?.get(b),b),void 0,A);I=fT(I,A,D,{leftColumns:P,rightColumns:w}),P=Mu(P,w,I)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;I=mT(I,M,s,p,l,S);let x=te(t);if(x.type==="GROUPING_SETS"){if(!R)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=gT(I,R,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:S})}else(x.type==="PLAIN"||BE(t.columns))&&(I=RT(I,x.type==="PLAIN"?x.allItems:[],t.columns,u,x.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S}));_E(t.columns,I,y);let C=D=>D.aggregateRef?HE(D.aggregateRef,u):d?.(D);return _E(t.having,I,y),I=AT(I,t.having,c,C,S),I=Wu(I,t.columns,i,o,h,u,S),t.distinct&&(I=ST(I,t.columns,r,s,l,S)),I=Bu(I,t.orderBy,i,o,h,Vu(t.columns,r,s,l,S),S),I=ja(I,t.limit,t.offset),Pn(I,t.columns,r,s,f,l,E,S)}function JE(e,t){let n=[];for(let r of e){let i=zu(r.$id?.value),o=FT(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=zu(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:zu(d?.value)};n.push(l)}}return n}function FT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function zu(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 KT(e,t={}){let n=new Dt(e).tokenize(),r=new Jt(n,t).parseStatements();return r.forEach(Je),r}function XE(e,t={}){let n=aa(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:KT(i,o),meta:n.meta}}function QE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function ZE(e,t){let n=Ui(e);for(let[r,i]of Object.entries(t))n[r]=Ui(i);return n}function em(e){let t=[...e.preErrors.map(i=>qu(i)),...e.postImageErrors.map(i=>qu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>qu(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=Ui(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function qu(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 Ui(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(Ui(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Ui(a,t);return i}function nm(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&ct(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function Xu(e){return nm(e,!0)}function za(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function mt(e,t,n,r,i=!0,o=!0,a=r){let s=Xu(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Se(e.where)}),za(e,e).forEach((l,c)=>mt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function Mi(e,t,n,r,i=!0){e.left.type==="UNION"?Mi(e.left,`${t}.left`,n,r,i):mt(e.left,`${t}.left`,n,r,!0,i),mt(e.right,`${t}.right`,n,r,!0,i)}function tm(e,t,n,r){if(!r&&en(e)){mt(tn(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?mt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Mi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?mt(e.query,`${t}.main`,n,r,!1,!r,!0):Mi(e.query,`${t}.main`,n,!0,!1)}function rm(e,t,n,r=!1){switch(e.type){case"SELECT":mt(e,t,n,r);return;case"UNION":Mi(e,t,n,r);return;case"WITH":tm(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?tm(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Mi(e.query,`${t}.query`,n,!0,!1):mt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":rm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Xu(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)}),za(e,e).forEach((o,a)=>mt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Xu(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=nm(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}za(e,e).forEach((o,a)=>mt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:za(e,e).forEach((i,o)=>mt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function qa(e,t){let n=new Map;for(let r of t){if(!ct(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Qu(e,t){return t.eligible===!0&&ze(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function GT(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&hr(t)}function $T(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function BT(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return Hn(e)?(n.some(r=>r!==vt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(vt)||n.push(vt)):n.includes(mn)||n.push(mn),[...new Set(n)]}function Ju(e,t){let n=e.functionNames[0],r=Hn(n)?vt:mn,i=BT(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function im(e,t){let n=[];rm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=$T(i);return r.push(d),{hasRelativeDate:i.functionNames.some(re),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ju(i)}}if(i.kind==="SELECT"){let d=i.source,u=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=ze(d),f=await t.select(d),m="";try{m=i.where===null?"":j(i.where)}catch{m=""}let E=u&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&qa(m,i.relativeFunctionOccurrences),R,g;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&Qu(d,I)&&(R=I.plan,g=!0,E=!0)}let y;!E&&f.capability==="EXACT_PUSHDOWN"&&(y=So({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:m||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(R=y.prefilterPlan,E=!0));let S;if(!E&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&GT(d,I)&&(S=I,E=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:m,...R?{prefilterPlan:R,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(h),!E)return{hasRelativeDate:n.some(I=>I.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ju(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":j(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&qa(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Ju(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(re)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Zu(e){if(!e.allowed&&e.rejection){let t=Hn(e.rejection.functionName)?vt:mn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function ec(e,t,n={}){let r=Ie(e.where,t),i=(S,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Fi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=VT(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!WT(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=YT(e.where,t),l=Xr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??j,d=n.containsFunctions??qa,u=[];for(let S of a.leaves){let h=Za(S);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let p=HT(l.condition),f=new Set(u),m=Xa(e.where,f,p);if(m===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(m)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let R=u.map(S=>Za(S));if(!d(E,[...new Set(R)])||!jT(E,R))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):Qa(e.where,f);if(g!==null&&Fi(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let S of R)y.add(S);return{eligible:!0,plan:{prefilterWhere:m,residualWhere:g,exactRelativeLeaves:u,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function VT(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Fi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Fi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Za(o)===null)return;if(Ie(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Fi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function Za(e){return e.right.type==="KINTONE_FUNC"&&ct(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&ct(e.right.values[0].name)?e.right.values[0].name:null}function Fi(e){let t=[],n=r=>{if(r.type==="BINARY"&&Za(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function WT(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function HT(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function Xa(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=Xa(e.left,t,n),i=Xa(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Xa(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var ki={type:"BOOLEAN",value:!0};function Qa(e,t){if(e.type==="BINARY"&&t.has(e))return ki;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Qa(e.left,t)??ki,r=Qa(e.right,t)??ki;return Ja(n)?Ja(r)?null:r:Ja(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Qa(e.expr,t)??ki;return Ja(n)?ki:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ja(e){return e.type==="BOOLEAN"&&e.value}function YT(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function jT(e,t){let n=new Map;for(let r of t){if(!Dr.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var H=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},et=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function om(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new et(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function zT(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function am(e,t){if(!t)throw new et("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new et("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new et("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof et?n:om(n)??new et("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function es(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw om(r)??new et("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!zT(r.bytes))throw new et("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new et("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new et("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function qT(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new H(`invalid ${t.toUpperCase()} byte sequence.`)}}function JT(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
9
+ `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function sf(e,t={}){let n=fa(e),r=[...n.diagnostics],i=e,o=[],a=Xn(e).filter(l=>l.source==="logical"),s=OA(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(Ye(e,l.start,{severity:"error",code:ue.LOGICAL_APP_UNRESOLVED,message:t.apps===void 0?`Logical app LAPP_${l.logicalName} requires parseScript option apps.`:`Logical app LAPP_${l.logicalName} is not defined in parseScript option apps.`}));if(a.length>0&&!r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED)){let l=Po(e,"flow",{resolveLogicalApp(c){return s.get(c)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new en(new Mt(i).tokenize(),{dialect1:n.meta.dialect===1,import:t.enableImport===!0}).parseStatementsWithRanges(),c=l.statementRanges.map(d=>({start:ql(d.start,o,"start"),end:ql(d.end,o,"end")}));return l.statements.forEach((d,u)=>{try{Ze(d)}catch(p){r.push(Ye(e,c[u]?.start??0,{severity:"error",code:ue.PARSE_ERROR,message:af(p),statementIndex:u}))}}),{meta:n.meta,statements:l.statements,statementRanges:c,diagnostics:r}}catch(l){let c=l instanceof T?l.token.pos:l instanceof Fe?l.pos:0,d=ql(c,o,"start");return r.push(Ye(e,d,{severity:"error",code:l instanceof Fe?ue.LEX_ERROR:l instanceof T&&l.rawMessage.includes("-- @ksql dialect: 1")?ue.DIALECT1_REQUIRED:ue.PARSE_ERROR,message:l instanceof T?l.rawMessage:af(l),statementIndex:LA(e,d)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function OA(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Jn(n),r)}catch{}return t}function af(e){return e instanceof Error?e.message:String(e)}function LA(e,t){try{let n=new Mt(e.slice(0,t)).tokenize(),r=0,i=!1;for(let o of n){if(o.kind==="EOF")break;o.kind===";"?(i&&r++,i=!1):i=!0}return r}catch{return 0}}function ql(e,t,n){if(t.length===0)return e;for(let r of t){if(e<r.normalizedStart||e>r.normalizedEnd)continue;let i=r.normalizedEnd-r.normalizedStart,o=r.sourceEnd-r.sourceStart;return i===o?r.sourceStart+Math.min(e-r.normalizedStart,o):e===r.normalizedStart?r.sourceStart:e===r.normalizedEnd?r.sourceEnd:n==="start"?r.sourceStart:r.sourceEnd}return t[t.length-1].sourceEnd}function lf(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Er(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function _A(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function Jl(e){return Er(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function uf(e){return!Jl(e)&&(_A(e.type)||Er(e.type))}var cf=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ke(e,t){for(let n of t)e.add(n)}function Ea(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&cf.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>Ea(i,t)):Ea(r,t))}function ma(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&!cf.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>ma(i,t)):ma(r,t))}function cn(e){let t=new Set;if(Er(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ke(t,fr(e));break;case"UNION":Ke(t,df(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ke(t,cn(n.query));Ke(t,cn(e.query));break;case"CREATE_TEMP_TABLE":Ke(t,cn(e.query));break;default:break}return Ea(e)&&t.add("STATISTICAL_AGGREGATE"),ma(e)&&t.add("AGGREGATE"),t}function pf(e){return cn(e).size>0}function df(e){let t=e.left.type==="SELECT"?fr(e.left):df(e.left);return Ke(t,fr(e.right)),e.all||t.add("DISTINCT"),t}function fr(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ke(t,fr(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ke(t,dr(i.condition));return Ke(t,dr(e.where)),Ke(t,dr(e.having)),Ea(e)&&t.add("STATISTICAL_AGGREGATE"),ma(e)&&t.add("AGGREGATE"),t}function dr(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")&&Ke(t,fr(e.right.query));break;case"LOGICAL":Ke(t,dr(e.left)),Ke(t,dr(e.right));break;case"NOT":case"GROUP":Ke(t,dr(e.expr));break;case"EXISTS":Ke(t,fr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function ff(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Ef(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var Ra=16,mf=64,le=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ai(e,t,n){if(Array.isArray(e)){for(let r of e)ai(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))ai(a,t,n)}}var vA=new Set(["=","!=","<>",">","<",">=","<="]);function Xl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Xl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(Zn(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&vA.has(String(r.op));Xl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function DA(e){let t=e.type==="EXPLAIN"?e.query:e;return Er(t.type)||t.type==="VALIDATE"}function Ql(e){if(Array.isArray(e)){for(let t of e)Ql(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&_l(e);for(let n of Object.values(t))Ql(n)}}function si(e){if(e.length===0)throw new le("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Ql(u)}catch(f){throw f instanceof Error?new le(f.message,p):f}try{lr("phase15b",u),Ze(u)}catch(f){throw f instanceof Te||f instanceof ri?new le(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new le(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new le(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new le(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new le(v,p)}let m=lf(u),E=[],R=[],g=new Set,y=new Set,S=new Set,h=[];Xl(u,h);let I=new Set;for(let v of h){let C=o.get(v.name);if(C===void 0)throw new le(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(C.kind==="scalar"&&v.kind==="array-in-list")throw new le(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(C.kind==="array"&&v.kind!=="array-in-list")throw new le(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(C.relativeDate&&DA(u))throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(C.relativeDate&&!v.relativeDateAllowed)throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(C.referencedBy.push(p),I.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new le(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>mf)throw new le(`ParseError: batch exceeds ${mf} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?ai(u.query,g,y):u.type==="DROP_TEMP_TABLE"||ai(u,g,y);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,C=new Set;ai(u.select,v,C),N=v.size>0&&C.size===0}for(let v of g){let C=t.get(v);if(C===void 0)throw new le(`ParseError: temp table ${v} is not defined in this batch.`,p);S.add(C)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(x=>x.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(x=>x.field)]:"fields"in u?u.fields:[],C=JSON.stringify(v),U=t.get(f);if(U===void 0){if(t.set(f,p),n.set(f,C),r.push(f),E.push(f),t.size>Ra)throw new le(`ParseError: batch exceeds ${Ra} temp tables.`,p)}else{if(n.get(f)!==C)throw new le(`ParseError: validation error table ${f} has a different payload schema.`,p);S.add(U)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new le(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>Ra)throw new le(`ParseError: batch exceeds ${Ra} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new le(`ParseError: temp table ${u.name} is not defined in this batch.`,p);S.add(v),R.push(u.name),t.delete(u.name)}i.push({index:p,statementType:m,isDml:Jl(u),isReadOnly:uf(u),hasWhere:ff(u),insertValuesCount:Ef(u),appIds:[...y].sort((v,C)=>v-C),tempTablesCreated:E,tempTablesReferenced:[...g],tempTablesDropped:R,dependsOn:[...S].sort((v,C)=>v-C),tempOnlySource:N,targetAppId:Er(m)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:pf(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}function pn(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function xA(e,t){return e<t?-1:e>t?1:0}function Rf(e){if(e==="")return{band:0};let t=Ce(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function UA(e,t){let n=Rf(e),r=Rf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Lo(n.value,r.value):n.band===5&&r.band===5?pn(n.value,r.value):0}function gf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function MA(e,t,n){let r=gf(e,n),i=gf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=pn(r.normalizedId,i.normalizedId);return o!==0?o:pn(r.display,i.display)}function kA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function yf(e,t){let n=t.optionOrder??new Map,i=[...new Set(kA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(hf),i}function hf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:pn(e.label,t.label)}function FA(e,t,n){let r=yf(e,n),i=yf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=hf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ft(e,t,n){switch(n.compareMode){case"string":return pn(e,t);case"number":return UA(e,t);case"recordNumber":return MA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return FA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function $t(e,t,n,r=B("string")){let i=ft(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function Af(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Ce(o),l=Ce(a),c=s!==null&&l!==null?Lo(s,l):xA(Number(o),Number(a));if(c!==0)return c}return pn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function me(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Be(t,e.field));if(e.type==="STRING_FUNC")return Number(ye(e,t,void 0,void 0,n));let r=me(e.left,t,n),i=me(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function De(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Be(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 ye(e,t,n,r,i);case"CASE_WHEN":return je(e,t,n,r,i);case"CONCAT_OP":return ye({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(De(e.left,t,n,r,i)),a=Number(De(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Bt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return wf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Bt(e.left,t,n,r,i),a=Bt(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=Bt(e.left,t,n,r,i),a=Bt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return De(e,t,n,r,i)}}function ga(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function KA(e){return e>=55296&&e<=56319}function GA(e){return e>=56320&&e<=57343}function ha(e,t){return t>0&&t<e.length&&KA(e.charCodeAt(t-1))&&GA(e.charCodeAt(t))}function Sf(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function eu(e,t){let n=Math.min(Math.max(0,t),e.length);return ha(e,n)&&(n-=1),e.slice(0,n)}function $A(e,t){let n=Math.max(0,e.length-t);return ha(e,n)&&(n+=1),e.slice(n)}function BA(e,t,n){let r=Sf(t,e.length),i=Sf(n,e.length);return i<=r?"":(ha(e,r)&&(r+=1),ha(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function VA(e,t){let n=e.repeat(Math.ceil(t/e.length));return eu(n,t)}var WA=200,li=new Map;function HA(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 Zl(e,t,n=!1){let r=HA(t)+(n?"g":""),i=`${e}\0${r}`,o=li.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(li.size>=WA){let s=li.keys().next().value;s!==void 0&&li.delete(s)}return li.set(i,a),a}function YA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function jA(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 zA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function qA(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return zA(n,o,d,l?s:void 0)})}function ye(e,t,n,r,i={}){ca(e.func,e.args);let o=e.args.map(a=>rS(a,t,n,r,i));switch(e.func){case"UPPER":return(o[0]??"").toUpperCase();case"LOWER":return(o[0]??"").toLowerCase();case"TRIM":return(o[0]??"").trim();case"LTRIM":return(o[0]??"").trimStart();case"RTRIM":return(o[0]??"").trimEnd();case"LENGTH":return String((o[0]??"").length);case"LENGTH_CHAR":return String([...o[0]??""].length);case"SUBSTRING":{let a=o[0]??"",s=Math.max(0,Number(o[1]??"1")-1),l=o[2]!==void 0?Number(o[2]):void 0;return BA(a,s,l!==void 0?s+l:a.length)}case"LEFT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":eu(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":$A(a,s)}case"INSTR":return String(o[0].indexOf(o[1])+1);case"LPAD":case"RPAD":{let a=o[0],s=Math.trunc(Number(o[1]));if(Number.isNaN(s)||s<=0)return"";if(a.length>=s)return eu(a,s);let l=o[2]??" ";if(l==="")return a;let c=VA(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return Af(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return Zl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{YA(o[2]);let a=jA(o[4]),s=Zl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):qA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Zl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return ga("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return ga("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return ga("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return ga("trunc",Number(o[0]),Number(o[1]??"0"));case"CAST":{let a=o[0]??"";if((o[1]??"TEXT")==="NUMBER"){let l=Number(a);return isNaN(l)?a:String(l)}return a}case"FORMAT":{let a=Number(o[0]??"0"),s=o[1]??"0";return tS(a,s)}case"YEAR":{let a=o[0]??"";return a.length>=4?String(parseInt(a.slice(0,4),10)):""}case"MONTH":{let a=o[0]??"";return a.length>=7?String(parseInt(a.slice(5,7),10)):""}case"DAY":{let a=o[0]??"";return a.length>=10?String(parseInt(a.slice(8,10),10)):""}case"DAYOFWEEK":return ya(o[0])?String(tu(o[0])+1):"";case"QUARTER":return ya(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return ya(o[0])?String(If(o[0])):"";case"DATE_FORMAT":return XA(o[0]??"",o[1]??"");case"DATEDIFF":return QA(o[0]??"",o[1]??"");case"DATE_ADD":return ZA(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return eS(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function ui(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 Aa(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 ya(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Aa(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function tu(e){return Aa(e).getUTCDay()}function Tf(e){let t=Aa(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function JA(e){return Tf(e).getUTCFullYear()}function If(e){let t=Tf(e),n=t.getUTCFullYear(),r=Aa(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function XA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=ui(e),l=ya(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(tu(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][tu(e)]:"";case"%v":return l?String(If(e)).padStart(2,"0"):"";case"%G":return l?String(JA(e)).padStart(4,"0"):"";default:return c}})}function QA(e,t){if(e.length<10||t.length<10)return"0";let n=ui(e),r=ui(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function ZA(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=ui(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function eS(e){if(!e||e.length<10)return e;let{y:t,mo:n}=ui(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function tS(e,t){if(/^-?\d+$/.test(t.trim()))return nS(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,m=p?`${f}.${p}`:f;return n?m+"%":m}function nS(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function rS(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(ci(e,t)):e.type==="NUMBER"?z(e):String(De(e,t,n,r,i))}function ci(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[fe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Be(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(ci(e.left,t)),r=Number(ci(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function Be(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}var iS=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),oS=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function nu(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function aS(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 sS(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?"number":e.func==="GROUP_CONCAT"||e.arg.type==="WILDCARD"?"string":ru(e.arg,t)}function bt(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return iS.has(e.func)||oS.has(e.func)&&e.args.length>0&&e.args.every(n=>ru(n,t)==="number")?"number":"string"}function ru(e,t){if(e===null||typeof e!="object")return"string";let n=e;switch(n.type){case"NUMBER":case"ARITH":case"SCALAR_ARITH":case"AGG_ARITH":return"number";case"STRING_FUNC":return bt(e,t);case"AGG_REF":return sS(e,t);case"FIELD":return nu(t?.(e));case"FIELD_REF":return nu(t?.(aS(n.field)));case"AGG_GROUP_KEY":return nu(t?.({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field}));case"CASE_WHEN":{let r=n.branches,i=n.elseResult,o=[...r.map(a=>a.result),...i==null?[]:[i]];return o.length>0&&o.every(a=>ru(a,t)==="number")?"number":"string"}default:return"string"}}function ce(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return lS(e,t,n,r,i,o);case"NULL_CHECK":return ES(e,t);case"LOGICAL":return mS(e,t,n,r,i,o);case"NOT":return!ce(e.expr,t,n,r,i,o);case"GROUP":return ce(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function lS(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=_f(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=cS(e.left,s,i);return uS(e.op,a,e.right,t,s,n,l,i,o)}function uS(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(fS(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?z(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=dS(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=iu(n,r,o,void 0,l);return Lf(t,d)}if(e==="NOT_LIKE"){let d=iu(n,r,o,void 0,l);return!Lf(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=iu(n,r,o,s,l);return $t(e,t,c,a)}function cS(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(bt(e.expr,r=>n?.(r)));if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(bt(o,a=>n?.(a)));if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var bf=new Set(["CHECK_BOX","MULTI_SELECT"]),Nf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),pS=new Set(["CREATOR","MODIFIER"]);function dS(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>$t("=",e,a,o))}let i;if(bf.has(n)||Nf.has(n)||pS.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return bf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Nf.has(n)?!Array.isArray(i)||!i.every(Cf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Cf(i)?t.has(i.code):r()}function Cf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function fS(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${Ut}`)}function ES(e,t){let n=_f(e.field,t);return e.not?n!=="":n===""}function mS(e,t,n,r,i,o={}){return e.op==="AND"?ce(e.left,t,n,r,i,o)&&ce(e.right,t,n,r,i,o):ce(e.left,t,n,r,i,o)||ce(e.right,t,n,r,i,o)}function _f(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return ye(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(ci(e.expr,t));if(e.type==="ARITH_FIELD")return String(me(e.expr,t,i));if(e.type==="CASE_FIELD")return je(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return tr(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Be(t,fe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Be(t,o)}function iu(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return z(e);case"KINTONE_FUNC":return RS(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"?Be(t,e.expr.field):e.expr.type==="STRING_FUNC"?ye(e.expr,t,void 0,void 0,i):String(me(e.expr,t,i));case"CASE_VALUE":return je(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function je(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Of(o.result,t,n,r,i);return e.elseResult!==null?Of(e.elseResult,t,n,r,i):""}function wf(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Pf(o.result,t,n,r,i);return e.elseResult===null?null:Pf(e.elseResult,t,n,r,i)}function Pf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[It(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?me(e,t,i):Bt(e,t,n,r,i)}function Of(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[It(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(me(e,t,i)):String(De(e,t,n,r,i))}function vf(e,t={}){let n=t.statementInstant??new Date;switch(e){case"TODAY":{let r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return`${r}-${i}-${o}`}case"NOW":return n.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function RS(e){throw ne(e)?new Error(`${e}: ${hn}`):qn(e)?new Error(`${e}: ${Ut}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Sa=new Map,gS=200;function Lf(e,t){if(!sd(t))return e.includes(t);let n=Sa.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),Sa.size>=gS&&Sa.clear(),Sa.set(t,n)}return n.test(e)}function mr(e){return xf(e)}function Df(e){return xf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function xf(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw xe("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw xe("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function xe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Ta(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ce(a.condition,t,n))continue;let s=De(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function ou(e){if(tn(e))throw new ae("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var yS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),hS=new Set(["CHECK_BOX","MULTI_SELECT"]);function di(e,t=new Map,n={}){let r=e.values.map(i=>AS(e.fields,i,t,n));return mi(r,100).map(i=>({app:e.appId,records:i}))}function AS(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Vt(s.expr,{},n.get(o),r)}:i[o]={value:Nt(s,n.get(o))}}),i}function fi(e){ou(e.where);let t=Yf(e);return{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function Ei(e,t,n=new Map){let r=SS(e.assignments,n);return mi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function SS(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:Nt(i,t.get(r))});return n}function Ff(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 ba(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 au(e){ou(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Kf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Rr(n,t):n.type==="STRING_FUNC"?su(n,t):n.type==="CASE_VALUE"&&Gf(n.expr,t);return Yf(e).forEach(n=>t.add(n)),{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function Kf(e,t){pi(e.left,t),pi(e.right,t)}function pi(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Kf(e,t):e.type==="STRING_FUNC"&&su(e,t)}function su(e,t){for(let n of e.args)TS(n,t)}function TS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){wa(e,t);return}Rr(e,t)}function Rr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){su(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Rr(e.left,t),Rr(e.right,t);return}e.type==="CASE_WHEN"&&Gf(e,t)}function wa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&IS(e.arg,t);return}e.type==="AGG_ARITH"&&(wa(e.left,t),wa(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function IS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?pi(e,t):Rr(e,t)}function Uf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){wa(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){pi(e,t);return}Rr(e,t)}}function Gf(e,t){for(let n of e.branches)Ia(n.condition,t),Uf(n.result,t);e.elseResult!==null&&Uf(e.elseResult,t)}function Ia(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&pi(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Ia(e.left,t),Ia(e.right,t);break;case"NOT":case"GROUP":Ia(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function lu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=$f(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:uu(d,s,n.get(c),o,r)};return{id:a,record:l}});return mi(i,100).map(o=>({app:e.appId,records:o}))}function uu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?pu(e,r):me(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(De(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return ye(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Vt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Nt(e,n)}function Na(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(me(e,t,r));if(e.type==="CASE_VALUE")return je(e.expr,t,n,void 0,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 wS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function cu(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new ae("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=$f(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(wS.has(p??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:Nt({type:"STRING",value:f},p)}}else{if(u.type==="STRING_FUNC")throw new ae("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?c[d]={value:String(pu(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(De(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:Vt(u.expr,l,p,r)}:c[d]={value:Nt(u,p)}}}return{id:s,record:c}});return mi(i,100).map(o=>({app:e.appId,records:o}))}function $f(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function pu(e,t){let n=Mf(e.left,t),r=Mf(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Mf(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return pu(e,t);if(e.type==="STRING_FUNC")throw new ae("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new ae(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function du(e){return ou(e.where),{app:e.appId,query:j(e.where),fields:["$id"],totalCount:!1}}function Bf(e,t){return mi(t,100).map(n=>({app:e,ids:n}))}function Vf(e){return yS.has(e??"")}function bS(e){return hS.has(e??"")}function NS(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function CS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Wf(e,t){return Vf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):bS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?NS(e):t==="DATE"?CS(e):e}function Hf(e,t){return Vf(t)?e.map(n=>({code:n})):e}function kf(e,t,n,r){if(e.type==="ARRAY")return Hf(e.elements.map(i=>i.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Wf(e.value,n):e.type==="STRING_FUNC"?ye(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(me(e,t,r)):String(De(e,t,void 0,void 0,r))}function Yf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(mr(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Vt(e,t,n,r={}){for(let i of e.branches)if(ce(i.condition,t,void 0,void 0,void 0,r))return kf(i.result,t,n,r);return e.elseResult!==null?kf(e.elseResult,t,n,r):""}function Nt(e,t){let n=fu(e,t);if(!n.ok)throw new ae(n.message);return n.value}function fu(e,t){try{return{ok:!0,value:PS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function PS(e,t){switch(e.type){case"VARIABLE":throw new ae(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ae(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Wf(e.value,t);case"NUMBER":return z(e);case"ARRAY":return Hf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ae(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ae("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ae("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ae("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ae("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ae("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function mi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ae=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Eu=new Set(["CHECK_BOX","MULTI_SELECT"]),OS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ri(e){throw new Error(`ArgumentError: ${e}`)}function jf(e,t,n){let r=LS(n.fieldType,e.field),i=_S(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let y=g.value;y!==""&&(g.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let g of s)l.has(g)&&Ri(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let c=i.filter(g=>!l.has(g)),d=a.filter(g=>!o.has(g)),u=[...c,...d],p=new Set(i.filter(g=>l.has(g))).size,f=new Set,m=new Set,E=e.operations.map(g=>{let y=g.kind==="ADD"?f:m,S=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&S&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),R=Eu.has(r)?u:u.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:E,postImageValue:R,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function LS(e,t){return Eu.has(e)||OS.has(e)?e:Ri(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function _S(e,t,n){if(!Array.isArray(e))return Ri(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Eu.has(t)?typeof i!="string"?Ri(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Ri(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function J(e){throw new Error(`ArgumentError: ${e}`)}function gu(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?J("APPLY parent selector must be a single positive $id."):t.right.value}function Wt(e,t){let n=e.applyBlocks;if(!n?.length)return J("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)mu(s.field,null,r),vS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(Yd(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)mu(p.field,s.field,r,d),Ru(p.value,s.field,r,d);u.selector.kind==="WHERE"&&Ru(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),mu(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Ru(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function vS(e,t){gi(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function mu(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Ru(e,t,n,r){gi(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Ca(e,t){let n=Wt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)gi(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Pa(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Zf(i?.value);return n}function qf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Wt(t,r),o=Au(n.$id?.value,"APPLY snapshot $id"),a=gu(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Xf(t,n,i,o,e.evaluationContext)}function Jf(e,t,n,r=Wt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Au(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&J(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),Xf(e,a,r,s,i)})}function Xf(e,t,n,r,i={}){let o=Au(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let P=n.targetMultiValueFields.get(u.field);P||J(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(jf(u,t[u.field]?.value,P));continue}let p=n.childrenByTable.get(u.field),f=FS(t,u.field),m=new Set;for(let P of f)P.id||J(`APPLY snapshot for ${u.field} contains a row without _rid.`),m.has(P.id)&&J(`APPLY snapshot for ${u.field} contains duplicate _rid ${P.id}.`),m.add(P.id);let E=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":p.get(P.field)?.fieldType,R=[],g=[],y=[],S=new Set,h=new Set,I=new Set,N=u.operations.some(P=>P.kind==="REMOVE");for(let[P,D]of u.operations.entries()){if(D.kind==="APPEND"){let _=yu(D,p,u.field,i);y.push({kind:"APPEND",addedRows:_.length}),g.push(..._);continue}if(D.kind==="REMOVE"){let _=US(D,f,E,u.field,i);D.expectRows&&zf(D.expectRows,_.length,r,u.field,P,D.kind),y.push({kind:"REMOVE",removedRows:_.length});for(let A of _){let w=f[A].id;h.has(A)&&J(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(A)&&J(`APPLY removes row ${w} more than once.`),I.add(A)}continue}if(D.kind!=="PATCH")continue;let b=xS(D,f,E,u.field,i);D.expectRows&&zf(D.expectRows,b.length,r,u.field,P,D.kind),y.push({kind:"PATCH",matchedRows:b.length,changedRows:b.length});for(let _ of b){let A=f[_];I.has(_)&&J(`APPLY row ${A.id} is selected by both PATCH and REMOVE.`),h.add(_);let w=Pa(A,_);for(let M of D.assignments){let O=`${A.id}\0${M.field}`;S.has(O)&&J(`APPLY patches cell ${A.id}.${M.field} more than once.`),S.add(O),R.push({rowIndex:_,field:M.field,value:Na(M.value,w,E,i)})}}}let v=new Map;for(let P of R){let D=v.get(P.rowIndex)??{};D[P.field]={value:P.value},v.set(P.rowIndex,D)}let U=[...f.flatMap((P,D)=>I.has(D)?[]:[{id:P.id,value:{...P.value,...v.get(D)??{}}}]),...g],x={table:u.field,operations:y,changedSubtableRows:v.size+I.size+g.length,deletedRows:I.size,snapshotRowIds:f.map(P=>P.id),postImageRows:U};N?a.push({...x,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((P,D)=>I.has(D)?[P.id]:[]),payloadRows:U.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):a.push({...x,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((P,D)=>{let b=v.get(D);return b?{id:P.id,value:b}:{id:P.id}}),...g.map(P=>({value:P.value}))]})}let l=KS(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:uu(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function zf(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Oa(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}:J(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function yu(e,t,n,r={}){return e.values.map(i=>({value:DS(e,i,t,n,r)}))}function DS(e,t,n,r,i){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?hu(s):l.type==="CASE_VALUE"?Vt(l.expr,{},s.fieldType,i):Nt(l,s.fieldType)}}return a}function hu(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 xS(e,t,n,r,i={}){return Qf(e.selector,t,n,r,i)}function US(e,t,n,r,i={}){return Qf(e.selector,t,n,r,i)}function Qf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>ce(o,Pa(c,d),n,void 0,void 0,i)?[d]:[]),s=MS(o);s!==null&&a.length===0&&J(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=kS(o);return l!==null&&a.length===0&&J(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function MS(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 kS(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 FS(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function Au(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function KS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Zf(r?.value);return t}function Zf(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 gi(e,t){if(Array.isArray(e)){e.forEach(r=>gi(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))gi(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function _a(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function yi(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return Re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return Re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&Re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&Re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&Re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),GS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function eE(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 Re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function GS(e){let t=Su(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Su(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");La(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");La(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Su(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));La(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");La(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!Tu(d.value,e.postImageRows[u]?.value))&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Su(e,t){let n=[...e],r=new Set;for(let i of n)i||Re(`APPLY ${t} contains an empty row id.`),r.has(i)&&Re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function La(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function Tu(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)=>Tu(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&Tu(n[a],r[a]))}function tE(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function nE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=tE(t.digits,"digits",1,30),r=tE(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function rE(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 $S=new Set(["CHECK_BOX","MULTI_SELECT"]),BS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function ze(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=VS(e);if(i!==""&&!WS(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=hi(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:HS(t.fieldType),message:o}}if(t.required&&va(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!va(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Ce(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&&_o(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&&_o(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=rE(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!va(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Nn(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!va(r)&&BS.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function VS(e){return e==null?"":Da(e)&&e.type==="NUMBER"?z(e):Da(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function WS(e,t){if(t==="DATE")return Nn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Nn(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?Nn(n.slice(0,10),"DATE")&&Nn(n.slice(11),"TIME"):Nn(n,"DATETIME")}function hi(e,t){if(Da(e)){let r=fu(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if($S.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function Da(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Cn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Da(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function va(e){return e===""||Array.isArray(e)&&e.length===0}function HS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Nn(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Nn(l,"TIME")}var gr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Iu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=hi(a,s)}catch{}i.record[o]={value:l?a:c}}}}function wu(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(R=>[R.code,R])),p=[],f=new Set,m=[];d.validateUpdateBuiltIns===!1&&Iu(e,r,i);let E;for(let R of e){R.record??={};let g=c?[...R.preErrors]:[],y=[],S=[],h=R.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let C of r){if(!R.payload.has(C))continue;let U=R.payload.get(C),x=u.get(C).fieldType,P=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(x)&&Array.isArray(U)&&U.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!h)continue;let D=ze(U,u.get(C),a);D.ok?R.record[C]={value:P?U:D.value}:y.push({field:C,code:D.code,message:D.message})}if(l&&R.mode==="create")for(let C of i){if(C.inSubtable||R.payload.has(C.code))continue;if(Cn(C.defaultValue)){let x=ze("",C,a);x.ok?C.required&&y.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:C.code,code:x.code,message:x.message})}else{let x=ze(C.defaultValue,C,a);x.ok||y.push({field:C.code,code:x.code,message:`\u65E2\u5B9A\u5024: ${x.message}`})}}if(s.length>0){let C=R.evaluationRow??Object.fromEntries([...R.payload].map(([P,D])=>[P,et(D)])),U=R.evaluationFieldTypes,x=P=>{let D=P.tableAlias?`${P.tableAlias}.${P.field}`:P.field;return U?.get(D)??U?.get(P.field)};try{for(let P of Ta(s,C,x))S.push({field:"",code:"ERR_CHECK",message:P.message})}catch(P){E??=P}}let I=C=>C.map(U=>{let x={};for(let P of n)x[P]=et(R.payload.get(P));return x.$err_statement=String(o),x.$err_operation=t,x.$err_row=String(R.rowNumber),x.$err_field=U.field,x.$err_code=U.code,x.$err_message=U.message,x.$err_value="",x.$err_subtable="",x.$err_subrow="",x.$err_subrow_id="",x}),N={rowNumber:R.rowNumber,preErrors:I(g),builtInErrors:I(y),checkErrors:I(S)};m.push(N);let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];v.length>0&&f.add(R.rowNumber),p.push(...v)}if(E!==void 0)throw E;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:m}}function et(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var bu=["required","length","range","choice"];function Nu(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function Cu(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function YS(e){return Nu(e).length>0}function jS(e){return e.fieldType==="NUMBER"||YS(e)}function xa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Pu(e,t){let{topByCode:n,childrenByTable:r}=Cu(t),i=jS;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,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(m=>m.code===p);if(!f){let m=[...r.entries()].some(([E,R])=>E!==l.subtableCode&&R.some(g=>g.code===p));throw new Error(m?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ai(e,t){return Cn(e)?"":et(hi(e,t))}var zS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Si=gr;function Ct(e,t=["$id"]){let n=Cu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!zS.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function Pn(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function On(e,t,n,r,i=1,o="UPDATE"){let a=qS(e),s=[],l=new Set,c=[...t.payloadFields,...Si],d=et(e.$id?.value),u=(p,f,m,E)=>{l.add(i);let R={};for(let g of t.payloadFields)R[g]=g==="$id"?d:et(e[g]?.value);R.$err_statement=String(r),R.$err_operation=o,R.$err_row=String(i),R.$err_field=p.code,R.$err_code=m.code,R.$err_message=m.message,R.$err_value=Ai(f,p.fieldType),R.$err_subtable=E?.subtable??"",R.$err_subrow=E?String(E.subrow):"",R.$err_subrow_id=E?.subrowId??"",s.push(R)};for(let p of t.topLevel){let f=e[p.code]?.value,m=ze(f,p,n);m.ok?a[p.code]={value:iE(f,p.fieldType,m.value)}:u(p,f,m)}for(let[p,f]of t.subtables){let m=e[p]?.value;if(!Array.isArray(m))continue;let E=a[p]?.value;for(let R=0;R<m.length;R++){let g=m[R],y=E[R];for(let S of f){let h=g.value?.[S.code]?.value,I=ze(h,S,n);I.ok?(y.value??={},y.value[S.code]={value:iE(h,S.fieldType,I.value)}):u(S,h,I,xa(p,R,g))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function iE(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function qS(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function Ua(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;oE(o,"dmlMaxRows"),oE(a,"dmlMaxSubtableRows");for(let S of n)_a(S);let l=Jf(t,n,r,i),c=Ct(r,t.assignments.map(S=>S.field)),d=l.some(S=>Pn(S.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((S,h)=>On(S.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let S=p.flatMap(h=>h.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=l.length,m=l.reduce((S,h)=>S+h.changedSubtableRows,0),E=f>o||m>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&m>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${a}).`);let R=l.map((S,h)=>Oa(S,p[h].normalizedRecord)),g=R.flatMap(S=>yi(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return aE({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:m,dmlMaxSubtableRows:a,wouldExceed:E}})}function oE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function aE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))aE(n,t);return Object.freeze(e)}var Ou=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ma(e,t){if(new Set(e.fields).size!==e.fields.length)return Pt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)sE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Pt(`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 Pt(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Pt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return Pt(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),sE(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return Pt(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function JS(e,t,n=Ma(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=di(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>yu(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Ou.has(u.fieldType)||(c[u.code]=s[u.code]??{value:hu(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function Ti(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;lE(r,"dmlMaxRows"),lE(i,"dmlMaxSubtableRows");let a=e.metadata??Ma(t,n),s=JS(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!Ou.has(h.fieldType)),c=Ct(l,t.fields),d=s.some(h=>Pn(h.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(h=>On(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,m=s.reduce((h,I)=>h+I.tables.reduce((N,v)=>N+v.addedRows,0),0),E=f>r||m>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&m>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${i}).`);let R=s.map((h,I)=>{let N=p[I].normalizedRecord,v={};for(let C of t.fields)v[C]=N[C];for(let C of h.tables){let U=N[C.table]?.value;v[C.table]={value:C.rows.map((x,P)=>({value:Object.fromEntries(Object.keys(x.value).map(D=>[D,U[P]?.value?.[D]??x.value[D]]))}))}}return{...h,postImage:N,record:v}}),g=R.map(h=>h.record),y=[];for(let h=0;h<g.length;h+=100)y.push({app:t.appId,records:g.slice(h,h+100)});let S=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return uE({applyBlocks:t.applyBlocks??[],candidates:R,records:g,batches:y,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:m,dmlMaxSubtableRows:i,wouldExceed:E}})}function sE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Pt(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Pt(`APPLY child ${e} does not belong to subtable ${t}.`):Pt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Ou.has(i.fieldType))return Pt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function lE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Pt(e){throw new Error(`ArgumentError: ${e}`)}function uE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))uE(n,t);return Object.freeze(e)}async function pE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;cE(i,"dmlMaxRows"),cE(o,"dmlMaxSubtableRows"),tT(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),c=XS(t,s.map(g=>g.sourceRowIndex)),d=await Ti({statement:c,fieldInfos:r,metadata:Ma(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let g of l){let y=g.targetId;p.has(y)&&Lu(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||Lu(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(g.snapshot.$id?.value);S!==y&&Lu(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let h=QS(t,g.sourceRowIndex,y),I=h.applyBlocks?.length?Wt(h,r):ZS(r);u.push(await Ua({statement:h,snapshots:[g.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=eT(u,i,o),m=d.guards.parentRows+f.guards.parentRows,E=d.guards.subtableRows+f.guards.subtableRows,R=m>i||E>o;if(!t.validateOnly){let g=[...d.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&m>i)throw new Error(`ArgumentError: APPLY parent rows (${m}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return _u({create:d,update:f,createBatches:d.batches,updateBatches:nT(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:m,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:R,create:d.guards,update:f.guards}})}function XS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function QS(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function ZS(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function eT(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return _u({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function tT(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function nT(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function cE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Lu(e){throw new Error(`ArgumentError: ${e}`)}function _u(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))_u(n,t);return Object.freeze(e)}function wi(e){return yr("UPDATE",[EE(e)])}function vu(e){return yr("INSERT",[fE(e)])}function Du(e){return yr("UPSERT",[fE(e.create),EE(e.update)])}function tt(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Fa(e,t,n){return e.type==="UPDATE"?yr("UPDATE",[ka("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?yr("INSERT",[ka("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):yr("UPSERT",[ka("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ka("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function yr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function fE(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function EE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:dE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:dE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function dE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:Ii(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ii(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ii(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ii(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ii(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ii(e,t){return e==null||t===null?null:e+t}function ka(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>rT(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,m)=>f+m.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function rT(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var Ot=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function mE(e,t,n){ur("phase10c");let r=eE(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new Ot({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function RE(e,t,n){ur("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Ot({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function gE(e,t,n){ur("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new Ot({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new Ot({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var iT=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function oT(e){if(!iT.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function aT(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=oT(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function xu(e,t){let n=aT(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function sT(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function yE(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return sT(i)?!0:Object.values(i).some(n)};return n(e)}function hE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Ht(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var bi=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},Ka=class{constructor(t,n=Ht({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new bi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new bi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new bi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Ga=50;function Mu(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=Ga){let o=e.values.slice(i,i+Ga);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Uu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),lT=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function uT(e,t){return e==="DATE"?Qr(t):e==="TIME"?Xo(t):Uu.has(e)?Qo(t):!1}function cT(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Uu.has(e)?Uu.has(t.fieldType):!1}function ku(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Jo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!lT.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!cT(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!uT(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];ft(s,i,n)<0&&(i=s),ft(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Fu=zl;function Ni(e,t,n=Fu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function AE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Lt(e){if(e===null)return!1;switch(e.type){case"BINARY":return $a(e.left);case"NULL_CHECK":return $a(e.field);case"LOGICAL":return Lt(e.left)||Lt(e.right);case"NOT":case"GROUP":return Lt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function $a(e){if(Array.isArray(e))return e.some($a);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($a)}async function Ve(e,t,n,r,i={}){let o=i.pageSize??pT,a=Math.max(1,i.parallel??dT),s=i.maxRecords??fT,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,m=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,E=0,R=0,g=IE(n,E),y=await TE(e,t,g,u,o,R);if(SE(y,i),p.push(...y.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Et(m)}if(y.records.length<o)return p;for(R+=o,R>=Gu&&(E=wE(y.records),R=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Et(m)}let S=d-p.length,h=Math.ceil(S/o),I=Math.max(1,Math.min(a,h)),N=[];for(let x=0;x<I;x++){let P=R+x*o;if(P>=Gu)break;N.push(P)}let v=IE(n,E),C=await Promise.all(N.map(x=>TE(e,t,v,u,o,x)));for(let x of C)SE(x,i);let U=!1;for(let x of C){if(p.push(...x.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Et(m)}if(x.records.length<o){U=!0;break}}if(U)break;if(R+=o*N.length,R>=Gu){let x=C[C.length-1];E=wE(x.records),R=0}}return p}function SE(e,t){e.searchAborted&&t.onSearchAborted?.()}function bE(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var pT=500,dT=1,fT=1e4,Gu=1e4;async function TE(e,t,n,r,i,o){let a=ET(n,i,o);return e({app:t,query:a,fields:r})}function IE(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function ET(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function wE(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Et=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function mt(e,t,n,r,i){let o=await Ve(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function Ci(e,t,n,r){let{records:i,metrics:o}=await mt(e,t,n,["$id"],r);return{ids:bE(i),metrics:o}}function Ar(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?CE(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):CE(n[0],e.field)}function Bu(e,t){if(e.left.type!=="FIELD")return Pi();let n=Ar(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Pi();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||we(e,a=>{let s=Ar(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Pi();let o=ea(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Pi():Object.freeze({relation:o,owner:n})}function PE(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Ar(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):we(e,o=>{let a=Ar(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function OE(e,t){let n=new Set;Ln(e,n);let i=(e===null?[]:vE(hr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=mT(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)Ln(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(yT(e,t)),fetchQueriesByAlias:new Map,...o})}function LE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!_n(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,Sr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=Sr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!_n(ja(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function Tr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!_n(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!_n(ja(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||_E(gT(e))!==e.allKlikes.length))}function mT(e,t){if(e===null)return NE(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return NE(e);let r=RT(e,t,n);if(r!==null)return r;let i=Wa(e),o=[],a=new Set;for(let u of i){let p=PE(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},m;try{m=Sr(f,t)}catch{continue}let E=ja(m);_n(E,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:m,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Ha(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=_n(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function RT(e,t,n){let r=Ba(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Sr(i,t)}catch{return null}if(!_n(ja(o),n))return null;let a=new Set;if(Ln(e,a),_E(o)!==a.size)return null;let s=Object.freeze(Va(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function Ba(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=PE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Bu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Ba(e.left,t),r=Ba(e.right,t);return n!==null&&r!==null&&za(n,r)?n:null}case"GROUP":case"NOT":return Ba(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Va(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...Va(e.left),...Va(e.right)];case"GROUP":case"NOT":return Va(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function NE(e){let t=e===null?[]:Se(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Wa(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Wa(e.left),...Wa(e.right)]:[];case"GROUP":return Wa(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ha(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ha(e.left,t),r=Ha(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=Ha(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ja(e){let t=[];for(let n of Mr){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function _n(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function _E(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function gT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function yT(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=Ar(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ya(i.right)){n.add("CROSS_TABLE_BINARY");return}Bu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(xE(i)){n.add("KLIKE_OR");return}let o=hr(i.left,t),a=hr(i.right,t);if(o.length!==1||a.length!==1||!za(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Sr(e,t){return Oi(e.predicate,e,t),j(e.predicate)}function Oi(e,t,n){switch(e.type){case"LOGICAL":Oi(e.left,t,n),Oi(e.right,t,n);return;case"GROUP":Oi(e.expr,t,n);return;case"NOT":Oi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ya(e.right))throw $u(t,"predicate contains a non-target or RHS field reference");let r=Ar(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw $u(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw $u(t,"predicate shape is outside the Phase A serializer contract")}}function $u(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function hr(e,t){switch(e.type){case"BINARY":{let n=Bu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=hr(e.left,t),r=hr(e.right,t);if(e.op==="AND")return vE([...n,...r]);if(xE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return za(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:DE(i.relation,o.relation)}]:[]}case"GROUP":return hr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function vE(e){let t=[];for(let n of e){let r=t.findIndex(o=>za(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:DE(i.relation,n.relation)}}return t}function CE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Pi(){return Object.freeze({relation:"unsafe"})}function za(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function DE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Ln(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":Ln(e.left,t),Ln(e.right,t);return;case"NOT":case"GROUP":Ln(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function xE(e){let t=new Set;return Ln(e,t),t.size>0}function Ya(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ya);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ya)}function Vu(e,t){let n=ei(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}var hT=1e4,AT=500;function ST(e,t){if(e.key.type!=="FIELD_NAME")return;let n=ve(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function TT(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return ve(t,n)!==void 0}function Li(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=ST(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!TT(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>AT)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>hT)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var IT=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 wT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _i(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(wT(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}IT.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var qa=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},Ja=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}},Xa=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function UE(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new Xa(a).message}}return{records:n,cleanupWarning:o}}function Wu(e){let t=[];e.where&&t.push(j(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var bT={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function ME(e,t){let n=bT[e];if(n===void 0)throw new Error(`ArgumentError: getFields returned unknown fieldType "${e}" for field "${t}". getFields must return only the fields from /k/v1/app/form/fields.json; $id and $revision are synthesized by the engine and must not be added.`);return n}async function kE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>ME(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=ME(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Ir=new WeakMap,Yu=new WeakMap,NT="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function Xu(e){if(Yu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):be(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&be(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=be(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Yu.set(t,e),t}function Rt(e){return Yu.get(e)??e}function zE(e){let t=Ir.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Ir.set(e,t)),t}function gt(e,t,n,r=[]){let i=zE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function We(e,t){return Ir.get(e)?.byColumn.get(t)}function be(e,t){return Ir.get(e)?.byLookupKey.get(t)}function Yt(e,t){return Ir.has(e)?void 0:e[t]}function FE(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(fe(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>be(a,o)===void 0&&a[o]===void 0))&&n.add(NT)}function CT(e){let t=Ir.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Tl(e);return r&&Sl(n,r.includedCanonicalIds),n}function jt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function PT(e,t,n,r={}){if(n.type==="CROSS"){let p=Ni(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let m of e)for(let E of t)f.push({...m,...E});return f}let{on:i,type:o}=n,a=OT(i,e,t,r.leftColumns,r.rightColumns),s=ju(a.left),l=ju(a.right);if(GE(e,s,r.leftColumns),GE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let E of e){let R=E[s]??"",g=p.get(R);g?g.push(E):p.set(R,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let m=[];for(let E of t){let R=E[l]??"",g=p.get(R)??[];if(g.length>0)for(let y of g)m.push({...y,...E});else m.push({...f,...E})}return m}let c=new Map;for(let p of t){let f=p[l]??"",m=c.get(f);m?m.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",m=c.get(f)??[];if(m.length>0)for(let E of m)d.push({...p,...E});else o==="LEFT"&&d.push({...p,...u})}return d}function ju(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function OT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=KE(o),l=KE(a),c=p=>{if(p.tableAlias){let R=s.has(p.tableAlias),g=l.has(p.tableAlias);if(R!==g)return R?"LEFT":"RIGHT"}let f=ju(p),m=o.includes(f),E=a.includes(f);return m!==E?m?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function KE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function GE(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function LT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ce(t,a,n,r,i,o))}function Za(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Ie(t.expr)||t.type==="CASE_COL"&&Ie(t.expr)||t.type==="STRFUNC_COL"&&Ki(t.expr)||t.type==="SCALAR_VALUE_COL"&&dn(t.expr))}function _T(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>DT(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&Za(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=Xu({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[Fi(d.expr)]=String(me(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[fn(d.expr)]=ye(d.expr,l[0],void 0,void 0,o.evaluationContext));qE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function vT(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let m of l.items){let E=$E(m,p),R=f.children.get(E);R||(R={children:new Map},f.children.set(E,R)),f=R}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=Xu({...p[0]}),m=new Map;for(let E of l.items)m.has(E.canonicalId)||m.set(E.canonicalId,$E(E,p[0]));for(let E of t.allItems){let R=m.get(E.canonicalId)??"";f[E.directKey]=R,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=R)}qE(f,p,n,r,i.evaluationContext),Sl(f,u),o.push(f)}}return o}function $E(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function qE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=fe(a.func,a.distinct,a.arg),l=String(Ui(a.func,a.distinct,a.arg,a.separator,t,r,i));gt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){vi(e,t,a.expr,r,i);let s=a.alias??Mi(a.expr);gt(e,o,String(Di(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&Ie(a.expr)){vi(e,t,a.expr,r,i);let s=a.alias??Fi(a.expr),l=Ju(a.expr,t,r);gt(e,o,String(me(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&Ki(a.expr)){vi(e,t,a.expr,r,i);let s=a.alias??fn(a.expr),l=ts(a.expr,t,r);gt(e,o,ye(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&dn(a.expr)){vi(e,t,a.expr,r,i);let s=a.alias??_t(a.expr),l=xi(a.expr,t,r);gt(e,o,String(De(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Ie(a.expr)){vi(e,t,a.expr,r,i);let s=em(a.expr,t,r),c=je(s,e,void 0,d=>d.aggregateRef?XE(d.aggregateRef,r):void 0,i);gt(e,o,c,[zu(a.alias,o)])}}function zu(e,t){return e??`__ksql_case_column_${t}`}function qu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>qu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>qu(r,t))}function vi(e,t,n,r,i={}){let o=[];qu(n,o);for(let a of o){let s=fe(a.func,a.distinct,a.arg);if(be(e,s)!==void 0)continue;let l=String(Ui(a.func,a.distinct,a.arg,a.separator,t,r,i));zE(e).byLookupKey.set(s,l)}}function DT(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Qa(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?ye(e.expr,t,void 0,void 0,i.evaluationContext):String(me(e.expr,t,i.evaluationContext))}function Ui(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=JE(e,n,i,a).filter(m=>m!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(m=>{let E=Number(m);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: ${m}`);return E}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?ki(n,o):void 0,p=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(s.length===0)return"";let m=new Map;for(let g of s)m.set(g,(m.get(g)??0)+1);let E="",R=0;for(let[g,y]of m){if(y>R){E=g,R=y;continue}if(y!==R)continue;let S=ft(g,E,p);(S<0||S===0&&pn(g,E)<0)&&(E=g)}return E}if(e==="MIN"||e==="MAX"){let m=d;if(m.length===0)return"";let E=m[0];for(let R of m.slice(1)){let g=ft(R,E,p);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(E=R)}return E}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((m,E)=>m+E,0);case"AVG":return f.length===0?0:f.reduce((m,E)=>m+E,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let m=[...f].sort((R,g)=>R-g),E=Math.floor(m.length/2);return m.length%2===1?m[E]:(m[E-1]+m[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let m=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||m&&f.length<2)return"";let E=f[0],R=0,g=0,y=0;for(let h of f){let I=h-E;R++;let N=I-g;g+=N/R,y+=N*(I-g)}let S=Math.max(0,y/(m?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(S):S}}}function JE(e,t,n,r={}){return n.map(i=>{let o=Rt(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=me(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Bt(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function xT(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 Di(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Ui(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Be(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=Di(e.left,t,n,r),o=Di(e.right,t,n,r);switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}function Mi(e){return It(e)}function ki(e,t){if(e.type==="FIELD_REF")return t?.(xT(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")return bt(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>ki(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function XE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":ki(e.arg,t)??"string";return typeof n=="string"?B(n):n}function UT(e,t,n,r,i={}){return t===null?e:e.filter(o=>ce(t,CT(o),n,void 0,r,i))}function MT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=kT(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function kT(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(HT(t,a,o))}function Qu(e,t,n,r,i,o,a={}){return t.length===0?e:QE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function QE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(bt(d.expr,f=>i?.get(f.tableAlias?`${f.tableAlias}.${f.field}`:f.field)))};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:GT(u,d,o,a)}))})),c=(d,u)=>FT(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function FT(e,t,n,r){for(let i=0;i<n.length;i++){let o=KT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function KT(e,t,n){return ft(e.s,t.s,n.semantics)}function GT(e,t,n,r={}){let i=Rt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??be(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(me(e.expr,i,r));case"FUNC_KEY":return ye(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return tr(e.ref,t)}}function Zu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>Be(Rt(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>We(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>We(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>We(c,a)??"");break;case"ARITH_COL":o.set(l,c=>Ie(s.expr)?We(c,a)??"":String(me(s.expr,Rt(c),i)));break;case"STRFUNC_COL":{let c=fn(s.expr);o.set(l,d=>Ki(s.expr)?We(d,a)??be(d,c)??ye(s.expr,Rt(d),n,r,i):ye(s.expr,Rt(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Ie(s.expr)?We(c,a)??"":je(s.expr,Rt(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=_t(s.expr);o.set(l,d=>dn(s.expr)?We(d,a)??be(d,c)??"":String(De(s.expr,Rt(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>tr(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=ve(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function ec(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Xu(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(m=>WT(u,m))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=QE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(vo(l)){VT(l,c,p,o,a);continue}if(dl(l)){BT(l,c,f,a);continue}if(!pl(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let m=1,E=1;for(let R=0;R<f.length;R++){R>0&&p.compare(f[R-1],f[R])!==0&&(m=R+1,E++);let g=l.func==="ROW_NUMBER"?R+1:l.func==="RANK"?m:E;gt(f[R].row,c,String(g),[l.alias])}}}return e}function $T(e,t,n={}){let r=Bt(e,Rt(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function BT(e,t,n,r={}){let i=n.map(a=>$T(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;gt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function VT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:JE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:ki(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let m=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(m!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(m),d++;else if(p===void 0)p=m;else{let R=ft(m,p,l);(e.aggFunc==="MAX"&&R>0||e.aggFunc==="MIN"&&R<0)&&(p=m)}let E=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(E))}if(e.frame===null){let f=c[c.length-1];for(let m of o)gt(m.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let m=f;for(;m+1<o.length&&n.compare(o[m],o[m+1])===0;)m++;for(let E=f;E<=m;E++)gt(o[E].row,t,c[m],[e.alias]);f=m+1}return}for(let f=0;f<o.length;f++)gt(o[f].row,t,c[f],[e.alias])}function WT(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Be(Rt(e),n)}function es(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Qa(e,t,n,r={}){let i=Rt(t);switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return Be(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=fe(e.func,e.distinct,e.arg);return We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Mi(e.expr);return We(t,n)??be(t,o)??Yt(t,o)??"0"}case"ARITH_COL":return Ie(e.expr)?We(t,n)??be(t,e.alias??Fi(e.expr))??"":String(me(e.expr,i,r.evaluationContext));case"CASE_COL":return Ie(e.expr)?We(t,n)??be(t,zu(e.alias,n))??Yt(t,zu(e.alias,n))??"":je(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return tr(e.ref,t);case"STRFUNC_COL":{let o=fn(e.expr);return Ki(e.expr)?We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=_t(e.expr);return dn(e.expr)?We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??"":String(De(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return We(t,n)??be(t,e.alias)??Yt(t,e.alias)??""}}function HT(e,t,n={}){return e.map((r,i)=>{let o=Qa(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function vn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let m=e.map(R=>{let g=YE(VE(R),a),y=Qa(t[0],R,0,{wildcardKeys:Object.keys(g)}),S={};if(typeof y!="string")for(let[h,I]of y.entries)I!==null&&(S[h]=I);return S}),E=m.length>0?Object.keys(m[0]):[...i??[]];return{rows:m,columns:E}}let l=qT(t),c=zT(t),d=t.some(m=>m.type==="WILDCARD"||m.type==="PARENT_WILDCARD"),u=d?null:YT(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:jT(t,l,c)}:{rows:e.map((m,E)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(YE(VE(m),a)),parentWildcardKeys:Object.keys(m).filter(y=>y.startsWith("_p.")).sort()};for(let[y,S]of t.entries()){let h=Qa(S,m,y,g);switch(S.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(R[I]=N);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(R[I]=N),E===0&&p.push(I);break}case"FIELD":{let I=u?.[y]??S.alias??l.get(y)??S.field;R[I]=h,u===null&&E===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[y]??S.alias??`'${S.value}'`;R[I]=h,u===null&&E===0&&p.push(I);break}case"AGGREGATE":{let I=fe(S.func,S.distinct,S.arg),N=u?.[y]??S.alias??I;R[N]=h,u===null&&E===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[y]??S.alias??Mi(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[y]??S.alias??Fi(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"CASE_COL":{let I=u?.[y]??S.alias??c.get(y)??"case";R[I]=h,u===null&&E===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[y]??S.alias??`GROUPING(${S.ref.field.tableAlias?`${S.ref.field.tableAlias}.`:""}${S.ref.field.field})`;R[I]=h,u===null&&E===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[y]??S.alias??fn(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[y]??S.alias??_t(S.expr);R[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[y]??S.alias??"(subquery)";R[I]=h,u===null&&E===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[y]??S.alias;R[I]=h,u===null&&E===0&&p.push(I);break}}}return R}),columns:p}}function YT(e,t,n){return e.map((r,i)=>ZE(r,i,t,n))}function jT(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=ZE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function ZE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??fe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Mi(e.expr);case"ARITH_COL":return e.alias??Fi(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??fn(e.expr);case"SCALAR_VALUE_COL":return e.alias??_t(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 zT(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function qT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=BE(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=BE(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function BE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function VE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Fi(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?z(n):n.type==="STRING_FUNC"?fn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function fn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Mi(n):n.type==="VARIABLE"?`@${n.name}`:_t(n));return`${e.func}(${t.join(",")})`}function _t(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return fn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${_t(e.left)}${e.op}${_t(e.right)}`;case"CONCAT_OP":return`${_t(e.left)}||${_t(e.right)}`}}function JT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:dn(e)}function dn(e){return e.type==="STRING_FUNC"?Ki(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?dn(e.left)||dn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>WE(t.result))||e.elseResult!==null&&WE(e.elseResult):!1}function WE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:dn(e)}function Ki(e){return e.args.some(t=>JT(t))}function XT(e,t,n){if(e.type==="AGG_REF"){let r=Ui(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Di(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Be(t[0]??{},r)),raw:Be(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?ts(e,t,n):xi(e,t,n)}function xi(e,t,n){return e.type==="STRING_FUNC"?ts(e,t,n):e.type==="CASE_WHEN"?em(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:xi(e.left,t,n),right:xi(e.right,t,n)}:e}function Ju(e,t,n){return e.type==="STRING_FUNC"?ts(e,t,n):e.type==="ARITH"?{...e,left:Ju(e.left,t,n),right:Ju(e.right,t,n)}:e}function HE(e,t,n){if(e.type==="AGG_REF"){let r=Ui(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Di(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:xi(e,t,n)}function em(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:HE(r.result,t,n)})),elseResult:e.elseResult===null?null:HE(e.elseResult,t,n)}}function ts(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>XT(r,t,n))}}function YE(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function jE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Hu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function QT(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,B("number"));else if(r.type==="WINDOW_COL"){if(pl(r)||vo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((vo(r)||dl(r))&&r.arg.type!=="WILDCARD"){let i=ki(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?B(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,B("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,B("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,B("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,B(bt(r.expr,i=>t?.(i))));return n}function tc(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:m,hiddenQualifiedAliases:E,resolvedGroupingSpec:R,plainGroupByPlan:g,warnings:y,evaluationContext:S}=e,h=QT(t.columns,u);for(let[D,b]of a??[])h.set(D,b);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(D=>jt(D,N));let C=Hu(jE(m?.get(N),N),void 0,I);for(let D of t.joins){let b=D.table.alias,A=(n.get(b)??[]).map(M=>jt(M,b)),w=Hu(jE(m?.get(b),b),void 0,A);I=PT(I,A,D,{leftColumns:C,rightColumns:w}),C=Hu(C,w,I)}let U=e.residualWhere!==void 0?e.residualWhere:t.where;I=LT(I,U,s,p,l,S);let x=ee(t);if(x.type==="GROUPING_SETS"){if(!R)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=vT(I,R,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:S})}else(x.type==="PLAIN"||Za(t.columns))&&(I=_T(I,x.type==="PLAIN"?x.allItems:[],t.columns,u,x.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S}));FE(t.columns,I,y);let P=D=>D.aggregateRef?XE(D.aggregateRef,u):d?.(D);return FE(t.having,I,y),I=UT(I,t.having,c,P,S),I=ec(I,t.columns,i,o,h,u,S),t.distinct&&(I=MT(I,t.columns,r,s,l,S)),I=Qu(I,t.orderBy,i,o,h,Zu(t.columns,r,s,l,S),S),I=es(I,t.limit,t.offset),vn(I,t.columns,r,s,f,l,E,S)}function tm(e,t){let n=[];for(let r of e){let i=nc(r.$id?.value),o=ZT(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=nc(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:nc(d?.value)};n.push(l)}}return n}function ZT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function nc(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 eI(e,t={}){let n=new Mt(e).tokenize(),r=new en(n,t).parseStatements();return r.forEach(Ze),r}function nm(e,t={}){let n=fa(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:eI(i,o),meta:n.meta}}function rm(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function im(e,t){let n=Gi(e);for(let[r,i]of Object.entries(t))n[r]=Gi(i);return n}function om(e){let t=[...e.preErrors.map(i=>rc(i)),...e.postImageErrors.map(i=>rc(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>rc(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=Gi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function rc(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function Gi(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(Gi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Gi(a,t);return i}function sm(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&dt(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function oc(e){return sm(e,!0)}function ns(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function yt(e,t,n,r,i=!0,o=!0,a=r){let s=oc(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Se(e.where)}),ns(e,e).forEach((l,c)=>yt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function $i(e,t,n,r,i=!0){e.left.type==="UNION"?$i(e.left,`${t}.left`,n,r,i):yt(e.left,`${t}.left`,n,r,!0,i),yt(e.right,`${t}.right`,n,r,!0,i)}function am(e,t,n,r){if(!r&&on(e)){yt(an(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?yt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&$i(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?yt(e.query,`${t}.main`,n,r,!1,!r,!0):$i(e.query,`${t}.main`,n,!0,!1)}function lm(e,t,n,r=!1){switch(e.type){case"SELECT":yt(e,t,n,r);return;case"UNION":$i(e,t,n,r);return;case"WITH":am(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?am(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?$i(e.query,`${t}.query`,n,!0,!1):yt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":lm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=oc(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)}),ns(e,e).forEach((o,a)=>yt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=oc(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=sm(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ns(e,e).forEach((o,a)=>yt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ns(e,e).forEach((i,o)=>yt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function rs(e,t){let n=new Map;for(let r of t){if(!dt(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function ac(e,t){return t.eligible===!0&&Xe(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function tI(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Tr(t)}function nI(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function rI(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return qn(e)?(n.some(r=>r!==Ut)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Ut)||n.push(Ut)):n.includes(hn)||n.push(hn),[...new Set(n)]}function ic(e,t){let n=e.functionNames[0],r=qn(n)?Ut:hn,i=rI(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function um(e,t){let n=[];lm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=nI(i);return r.push(d),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i)}}if(i.kind==="SELECT"){let d=i.source,u=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=Xe(d),f=await t.select(d),m="";try{m=i.where===null?"":j(i.where)}catch{m=""}let E=u&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&rs(m,i.relativeFunctionOccurrences),R,g;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&ac(d,I)&&(R=I.plan,g=!0,E=!0)}let y;!E&&f.capability==="EXACT_PUSHDOWN"&&(y=Co({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:m||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(R=y.prefilterPlan,E=!0));let S;if(!E&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&tI(d,I)&&(S=I,E=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:m,...R?{prefilterPlan:R,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(h),!E)return{hasRelativeDate:n.some(I=>I.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":j(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&rs(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function sc(e){if(!e.allowed&&e.rejection){let t=qn(e.rejection.functionName)?Ut:hn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function lc(e,t,n={}){let r=we(e.where,t),i=(S,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Vi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=iI(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!oI(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=sI(e.where,t),l=ei(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??j,d=n.containsFunctions??rs,u=[];for(let S of a.leaves){let h=ss(S);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let p=aI(l.condition),f=new Set(u),m=os(e.where,f,p);if(m===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(m)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let R=u.map(S=>ss(S));if(!d(E,[...new Set(R)])||!lI(E,R))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):as(e.where,f);if(g!==null&&Vi(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let S of R)y.add(S);return{eligible:!0,plan:{prefilterWhere:m,residualWhere:g,exactRelativeLeaves:u,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function iI(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Vi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Vi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(ss(o)===null)return;if(we(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Vi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function ss(e){return e.right.type==="KINTONE_FUNC"&&dt(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&dt(e.right.values[0].name)?e.right.values[0].name:null}function Vi(e){let t=[],n=r=>{if(r.type==="BINARY"&&ss(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function oI(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function aI(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function os(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=os(e.left,t,n),i=os(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=os(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Bi={type:"BOOLEAN",value:!0};function as(e,t){if(e.type==="BINARY"&&t.has(e))return Bi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=as(e.left,t)??Bi,r=as(e.right,t)??Bi;return is(n)?is(r)?null:r:is(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=as(e.expr,t)??Bi;return is(n)?Bi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function is(e){return e.type==="BOOLEAN"&&e.value}function sI(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function lI(e,t){let n=new Map;for(let r of t){if(!Mr.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var H=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},nt=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function cm(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new nt(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function uI(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function pm(e,t){if(!t)throw new nt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new nt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new nt("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof nt?n:cm(n)??new nt("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function ls(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw cm(r)??new nt("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!uI(r.bytes))throw new nt("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new nt("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new nt("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function cI(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new H(`invalid ${t.toUpperCase()} byte sequence.`)}}function pI(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
10
10
  `)throw new H(`unexpected character after closing quote at offset ${a}.`);if(c==='"'){if(r.length!==0)throw new H(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(c===","){s(),a++;continue}if(c==="\r"||c===`
11
11
  `){c==="\r"&&e[a+1]===`
12
- `&&a++,l(),a++;continue}r+=c,a++}if(i)throw new H("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function XT(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new H(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new H(`CSV column name "${n}" is duplicated.`);t.add(n)})}function ts(e,t){let n=JT(qT(e,t.encoding)),r,i;if(t.hasHeader?(r=n[0]??[],i=n.slice(1)):(i=n,r=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),XT(r),i.length===0)throw new H("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new H(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var QT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ZT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Ki=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 sm(e,t,n){if(!QT.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Ki;return ZT.has(t??"")?r.map(i=>({code:i})):r}function Wt(e,t,n,r){throw new H(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function lm(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new H("JSON source is not valid UTF-8.")}}function um(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
12
+ `&&a++,l(),a++;continue}r+=c,a++}if(i)throw new H("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function dI(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new H(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new H(`CSV column name "${n}" is duplicated.`);t.add(n)})}function us(e,t){let n=pI(cI(e,t.encoding)),r,i;if(t.hasHeader?(r=n[0]??[],i=n.slice(1)):(i=n,r=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),dI(r),i.length===0)throw new H("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new H(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var fI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),EI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Wi=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 dm(e,t,n){if(!fI.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Wi;return EI.has(t??"")?r.map(i=>({code:i})):r}function zt(e,t,n,r){throw new H(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function fm(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new H("JSON source is not valid UTF-8.")}}function Em(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
13
13
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
14
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let m=o();if(m==='"'){f=!0;break}if(m.charCodeAt(0)<32&&Wt("string contains an unescaped control character",l.offset,l.line,l.column),m!=="\\"){p+=m;continue}n>=e.length&&Wt("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),R={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
- `,r:"\r",t:" "};if(E in R){p+=R[E];continue}E!=="u"&&Wt(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||Wt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let y=Number.parseInt(g,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Wt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(S,16);(h<56320||h>57343)&&Wt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+h-56320)}else y>=56320&&y<=57343?Wt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||Wt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Wt(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function ns(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function rs(e){if(e.byteLength===0)throw new H("JSON source is empty.");let t=um(lm(e)),n=0,r=(c,d=t[n])=>{throw new H(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${ns(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${ns(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${ns(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ns(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new H("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new H(`JSON record ${d+1} must be an object.`)}),l}var eI=new Set(["CHECK_BOX","MULTI_SELECT"]),cm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ot(e,t,n){throw new H(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function tI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function nI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ot(n,t.code,"boolean is not accepted."),tI(e)){t.fieldType==="NUMBER"&&Ot(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ot(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||Ot(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ot(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ot(n,t.code,"unsupported value type."),!eI.has(t.fieldType)&&!cm.has(t.fieldType)&&Ot(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Ot(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Ot(n,t.code,"array elements must not contain duplicates."),cm.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function tc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let i=rs(t.bytes);if(i.length>r)throw new H(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new H("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||Ot(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=nI(l.get(p.code),p,c+1));a.push(d),s.push(u)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function nc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ts(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new H(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new H("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let c=new Map(s.columns.map((y,S)=>[y,S]));for(let y of r)if(!c.has(y))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new H("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!c.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let p=[],f=[],m=y=>s.rows.filter(S=>S[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,S]of s.columns.entries()){if(u.has(S)||S===o)continue;let h=d.get(S);if(h)p.push({column:S,reason:E(h),nonEmptyCells:m(y)});else if(e.ignoreUnknownColumns)f.push({column:S,reason:"unknown column ignored by explicit policy",nonEmptyCells:m(y)});else throw new H(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${S}".`)}for(let y of r){let S=d.get(y);if(!S)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(S.inSubtable||S.writable===!1||S.fieldType==="FILE"||S.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${S.fieldType}).`)}let R=[],g=s.rows.map(y=>{let S=[],h={};for(let I of r){let N=y[c.get(I)];try{h[I]=sm(N,d.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof Ki))throw v;h[I]=N,S.push({field:I,code:v.code,message:v.message})}}return R.push(S),h});return{receipt:{rows:s.rows.length,encoding:a},rows:g,columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:s.rows.map(y=>y[c.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:p,ignoredUnknownColumns:f}}}let l=s.rows.map(c=>Object.fromEntries(s.columns.map((d,u)=>[d,c[u]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(c=>[c,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Gi=(e,t,n)=>{throw new H(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function pm(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let o=rs(t.bytes);if(o.length>r)throw new H(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new H("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,c)=>{let d=c+1;for(let m of l.keys())a.has(m)||Gi(d,m,"unknown key (not declared in INTO).");let u=new Map,p=new Map,f=new Set;for(let m of n){let E=m.kind==="FIELD"?m.field:m.subtableCode;if(!l.has(E))continue;let R=l.get(E);if(m.kind==="FIELD"){R instanceof Map&&Gi(d,E,"object is not accepted for a top-level field."),u.set(E,R);continue}Array.isArray(R)||Gi(d,E,"subtable value must be an array."),f.add(E);let g=new Set(m.children),y=R.map((S,h)=>{S instanceof Map||Gi(d,E,`childRow=${h+1} must be an object.`);let I=S;for(let N of I.keys())g.has(N)||Gi(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new H(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,y)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function dm(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ts(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new H('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,m)=>[f,m]));if(o&&!l.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=n.filter(f=>f.kind==="FIELD"),d=n.filter(f=>f.kind==="SUBTABLE");for(let f of c)if(!l.has(f.field))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of d){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new H(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let m of f.children)if(!l.has(m))throw new H(`ERR_IMPORT_MISSING_COLUMN: required child header "${m}" is missing.`)}let u=[],p;if(s.rows.forEach((f,m)=>{let E=m+2,R=f[0];if(R!==""&&R!=="*")throw new H(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new H(`source parent rows exceed maxRecords (${i}).`);p={rowNumber:u.length+1,markerRowNumber:E,top:new Map(c.map(g=>[g.field,f[l.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},u.push(p)}else if(p){for(let g of c){let y=f[l.get(g.field)];if(y!==""&&y!==p.top.get(g.field))throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=f[l.get(o)];if(g!==""&&g!==p.recordNumberSourceValue)throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new H(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let y=f[l.get(g.rowIdSourceHeader)],S=new Map(g.children.map(I=>[I,f[l.get(I)]]));if(y===""&&[...S.values()].every(I=>I===""))continue;let h=p.subtables.get(g.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:S})}}),u.length===0)throw new H("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:u}}var rI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),iI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function oc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Rm(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)fm(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let m=a.get(p.subtableCode)??new Map;for(let E of p.children)fm(E,m.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>oI(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function oI(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&ic(e.top.get(p.field),r.get(p.field),o,c,p.field,l,rc(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Em(p,o,d,l,rc(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let m=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let R=l.length,g={},y=i.get(p.subtableCode);for(let S of p.children){let h=y.get(S),I=rc(e,a,S,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(S)?ic(E.values.get(S),h,o,g,S,l,I):Em(h,o,g,l,I)}l.length===R?(f.validChildRows++,m.push(g)):f.invalidChildRows++}u.set(p.subtableCode,m)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function fm(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&iI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Em(e,t,n,r,i){let o=In(e.defaultValue)?"":e.defaultValue;ic(o,e,t,n,e.code,r,i,!In(e.defaultValue))}function ic(e,t,n,r,i,o,a,s=!1){let l=aI(e),c=We(l,t,n);c.ok?r[i]={value:sI(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function aI(e){return mm(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:mm(t)?t.lexeme:t):e}function mm(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function sI(e,t){return rI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function rc(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var ac=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function sc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":lI(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function lI(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 lc(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function gm(e,t){return lc(e,t,"DROP")}function ym(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function hm(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function uI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Am(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function Sm(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let m=uI(c.record,f),E=new Set(m.map(N=>N.id).filter(N=>!!N)),R=s.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,S=0,h=0,I=R.map((N,v)=>{let P=g[v]??{};return N.rowId&&E.has(N.rowId)?(y++,{rowId:N.rowId,record:P}):(N.rowId&&((i.get(N.rowId)??[]).some(x=>x.parentId!==l||x.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),S++,{record:P})});u.set(f,I),p.push({table:f,existingRows:m.length,inputRows:R.length,updateRows:y,addRows:S,deleteRows:m.length-y,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var uc="#__import_source";function Tm(e){return{...e,from:{appId:0,alias:null,cteName:uc}}}function cI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function cc(e,t){let n=e.map(cI),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var pI="\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",Rs=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"}},he=new WeakMap;function qm(e){return he.get(e)}var Gn=new WeakMap,Nr=new WeakMap,Ac=Symbol("statementEvaluationContext"),Jm=Symbol("importSourceMaterializedCallback"),Yc=Symbol("nativeUpsertExecution"),Xm=Symbol("nativeUpsertExplainCapability");function dI(e,t,n){return{...e,[Yc]:t,...n===void 0?{}:{[Xm]:n}}}function Qm(e){return e[Yc]===!0}function fI(e){return Yc in e}function EI(e){return e[Xm]}function Zm(e){return e[Ac]?e:{...e,[Ac]:{statementInstant:new Date}}}function se(e){return e[Ac]??{}}async function jc(e,t,n){let r=e[Jm];r&&await r({name:t.sourceName,kind:t.kind,...n})}var Im=new WeakMap,mI=1,RI=1;function gI(e,t){if(t)return t;let n=Im.get(e);return n||(n=`client:${mI++}`,Im.set(e,n)),n}function eR(e){return`${e}\0inv:${RI++}`}function yI(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var tR=Symbol("limitMetricsSink");function zc(e,t){let n=e[tR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function hI(e,t){let n={[tR]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return co(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var wm=Symbol("searchAbortFailClosed");function qc(e,t,n){return n&&e[wm]?e:{...e,...n?{[wm]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Rs;return i}}}function nR(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function AI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(pI),{...e,warnings:[...n]}}async function Sc(e,t,n){let r=await lo(e,t,n);return Zu(r),r}async function lo(e,t,n){return im(e,{select:async r=>{let{resolver:i}=await Dn(r,t,n);return Ie(r.where,i)},dml:r=>SR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Dn(r,t,n);return ec(r,i)},joinServerFunctionPlan:async r=>{await Dn(r,t,n);let i=await Ns(r,t,n),o=bs(r,i);return o===null?null:(hr(o.joinPlan)&&rp.set(r,o),o.joinPlan)}})}async function bm(e,t,n,r){n=Zm(n);let i=await lo(e,t,r);e.type!=="EXPLAIN"&&Zu(i);let o=Ic(e);if(o!==null&&!cb(e))throw new Error(ls(o,"in a batch"));if(or("phase15b",e),Zr("phase15b",e),Je(e),e.type!=="EXPLAIN"&&await jI(e,t,r),e.type==="IMPORT")return jR(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Kc(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Ep(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return SI(e,t,n,r);case"SELECT":return Yt(Pc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return DR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return lp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return ib(e,t,n,r);case"INSERT_SELECT":return yp(e,t,n,r);case"UPSERT":return Ib(e,t,n,r);case"UPSERT_SELECT":return Tp(e,t,n,r);case"UPDATE":return Kc(e,t,n,r);case"DELETE":return Tb(e,t,n,r);case"REORDER":return Ob(e,t,n,r);case"SHOW_APPS":return XR(t);case"DESCRIBE":return QR(e,t,r);case"EXPLAIN":return Gb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?at(n.dmlMaxRows,"dmlMaxRows",jt):jt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve):ve,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,fI(n)?{surface:"CLI",enableNativeUpsert:Qm(n),clientHasNativeUpsert:EI(n)??co(t)}:{surface:"DOCUMENT_ONLY"});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 fR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var Jc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Xc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Qc(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function rR(e=!1){let t=e?Xc:Jc;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function SI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return iR(e,t,n,r)}async function iR(e,t,n,r){let i=await X(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=hu(e,i),l=new Set(s.flatMap(O=>gu(O.field))),c={present:Ru.filter(O=>l.has(O)),absent:Ru.filter(O=>!l.has(O))},d=e.checkGroups??[],u=dr(d);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),Kn(e,p);let f=Qc(e.where),m=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,R=O=>O.field==="$id"?ne({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ne(o.get(O.field)):void 0),g=Ie(e.where,R);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(g)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),h=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:Ol(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:S,allowKlike:!1}),I=h===null?"":j(h),v=(await Ge(t.getRecords,e.appId,I,m,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Vt(O,null)})).filter(O=>e.where===null||ce(e.where,O.flat,F=>p.get(F.field),void 0,void 0,se(n))),P=[],M=new Map,x=new Map,C=new Set,D=0,b=O=>{if(C.add(O.id),D+=1,e.summary){let G=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=x.get(G);k?k.$err_count=String(Number(k.$err_count)+1):x.set(G,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),W=M.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),O.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${O.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${O.subrowId??""}`)):M.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of v){for(let F of _){let W=O.record[F.field.code]?.value,G=We(W,F.field,E);G.ok||b({id:O.id,field:F.field.code,code:G.code,message:G.message,value:gi(W,F.field.fieldType)})}for(let[F,W]of A){let G=O.record[F]?.value;if(Array.isArray(G))for(let k=0;k<G.length;k++){let K=G[k];for(let Y of W){let $=K.value?.[Y.field.code]?.value,L=We($,Y.field,E);if(!L.ok){let V=Ca(F,k,K);b({id:O.id,field:Y.field.code,code:L.code,message:L.message,value:gi($,Y.field.fieldType),...V})}}}}for(let F of ma(d,O.flat,W=>p.get(W.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...x.values());else for(let O of M.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),P.push(O)}let U={type:"SELECT",columns:[...e.summary?Xc:Jc],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:D,constraintMetadata:c}};return he.set(U,rR(e.summary===!0)),U}var it=1e4;function Lt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!TI(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function TI(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!$o(i.semantics,r.semantics))return!1}return!0}var cn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function oR(e,t,n,r={},i,o=!1,a,s=new Set){$t(r);let l=[...e],c=ii(l);if(l.forEach(g=>Zr("phase15b",g)),r.allowApplyMutation!==!0&&l.some(g=>xl(g)||g.type==="UPSERT"&&CI(g)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&c.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let g of c.statements){if(!g.isDml||g.tempTablesReferenced.length===0||g.statementType==="INSERT_SELECT"||g.statementType==="UPSERT_SELECT")continue;let y=l[g.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new le(`ArgumentError: temp table references in ${g.statementType} are not supported yet.`,g.index)}let d=bu(l,r.variables),u=dR(l,d),p=dI({...r,variables:d,captureColumnMeta:!0},o),f=ll(r.asOf??new Date,r.timezone),m=new Map;for(let[g,y]of Object.entries(f.values))m.set(xr(g),{type:"string",value:y});let E=yI(),R=Date.now();return{statements:l,analysis:c,metrics:E,options:p,client:hI(n,E),cacheContext:eR(gI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:m,relativeDateVariables:u,clock:se(Zm(p)),dialect:t,startedAt:R,deadline:r.timeoutMs!=null?R+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},...a?{onImportSourceMaterialized:a}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function aR(e,t){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let n=t.nextIndex;if(n>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[n])throw new Error(`ExecutionContextOrderError: expected statement index ${n}.`);t.busy=!0,t.nextIndex+=1;let r=t.analysis.statements[n],i={index:n,type:r.statementType};try{if(t.aborted){let R={...i,status:"skipped",skippedReason:t.aborted};return t.aborted!=="exit"&&t.failed.add(n),R}let o=r.dependsOn.find(R=>t.failed.has(R));if(o!==void 0){let R=t.analysis.statements[o].tempTablesCreated[0]??`statement ${o}`;return t.failed.add(n),{...i,status:"skipped",skippedReason:`dependency: ${R}`}}if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(n),t.aborted="timeout",{...i,status:"skipped",skippedReason:"timeout"};let a={aborted:!1},s=qc(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||pE(e)),l=nR(s);t.cursorCleanups.add(l.closeActive);let c=t.deadline!==null?t.deadline-Date.now():null,d=t.onChunkWritten?NI(l.client,n,e,t.onChunkWritten):l.client,u=t.options.confirm,p=u?{...t.options,confirm:(R,g,y)=>u(R,g,{statementIndex:n,statementCount:t.statements.length,statementType:r.statementType,targetAppId:r.targetAppId,...y?.importDetail?{importDetail:y.importDetail}:{},...y?.applyDetail?{applyDetail:y.applyDetail}:{},...y?.applyDiagnostic?{applyDiagnostic:y.applyDiagnostic}:{}})}:t.options;t.onImportSourceMaterialized&&(p={...p,[Jm]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new cn}});let f=await pR(PI({stmt:e,info:r,client:d,options:p,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),c,l.closeActive);f.result&&(f.result=AI(f.result,a));let{exitTriggered:m,...E}=f;return m&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...E}}catch(o){return t.failed.add(n),o instanceof cn?t.aborted="timeout":o instanceof Qi?t.aborted="assertion":r.statementType==="SET_VARIABLE"||r.statementType==="DECLARE_VARIABLE"?t.aborted="fail-fast":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"error",error:FI(o)}}finally{t.busy=!1}}function II(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")},n={...e,postRecords:t,putRecords:t,deleteRecords:t};return co(e)&&(n.upsertRecords=t),n}async function sR(e,t,n){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let r=t.nextIndex;if(r>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[r])throw new Error(`ExecutionContextOrderError: expected statement index ${r}.`);t.busy=!0,t.nextIndex+=1;let i=t.analysis.statements[r],o=wI(e),a=bI(e),s=Nm(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),pc(o,a);if(i.dependsOn.find(E=>t.failed.has(E))!==void 0)return t.failed.add(r),pc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",pc(o,a);let c={aborted:!1},d=qc(t.client,c,!0),u=nR(d);t.cursorCleanups.add(u.closeActive);let p=II(u.client),f=t.deadline!==null?t.deadline-Date.now():null,m=await pR(OI({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),f,u.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...m,reads:Nm(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof cn?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function Nm(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function wI(e){switch(e.type){case"INSERT":case"INSERT_SELECT":return"INSERT";case"UPDATE":return"UPDATE";case"DELETE":return"DELETE";case"UPSERT":case"UPSERT_SELECT":return"UPSERT";default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function bI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function pc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function lR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),BR(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function NI(e,t,n,r){let i=0,o=async(c,d,u,p,f)=>{await r({statementIndex:t,appId:c,operation:d,records:u,chunkIndex:i++,...p===void 0?{}:{lastKeyValue:p},...f??{}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=c=>{if(a===void 0||c.length===0)return;let d=c[c.length-1][a]?.value;return typeof d=="string"?d:void 0},l={...e,postRecords:async c=>{let d=await e.postRecords(c);return await o(c.app,"INSERT",c.records.length,s(c.records)),d},putRecords:async c=>{await e.putRecords(c),await o(c.app,"UPDATE",c.records.length,s(c.records.map(d=>d.record)))},deleteRecords:async c=>{await e.deleteRecords(c),await o(c.app,"DELETE",c.ids.length)}};return co(e)&&(l.upsertRecords=async c=>{let d=await e.upsertRecords(c),u=KR(d,c.records.length);return await o(c.app,"UPSERT",c.records.length,c.records[c.records.length-1]?.updateKey.value,u),d}),l}function CI(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function PI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=Xi(t,s);if(Je(p),await Sc(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await RR(p.expr.query,r,i,o,a),m=await mR(p.expr.query,r,o,a),E=m?Number(f):Number.NaN;s.set(t.name,m&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof vn?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,Cm(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=Cm(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=Xi(t,s);if(or("phase15b",u),Zr("phase15b",u),Je(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=Rn(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await X(u.appId,r,o),m=Rn(u,f)[0];if(m)throw new Error(`ArgumentError: ${m.message}`)}if(await Sc(u,r,o),u.type==="VALIDATE"){let p=await iR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Lt(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??it,he.get(p)??rR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await jR(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await Ep(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Lt(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??it,Gn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await kc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??it,onLimitReached:"error"},f=await kI(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:he.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;Hc.set(p,a);try{return{result:await bm(p,r,i,o)}}finally{Hc.delete(p)}}if(u.type==="ASSERT"){let p=await fR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await VI(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await yt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await lp(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await yp(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await Tp(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Kc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await bm(u,r,i,o)}}async function OI(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,c=Xi(n,s);if(or("phase15b",c),Zr("phase15b",c),Je(c),l===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let d=Rn(c)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let u=await X(c.appId,r,o),p=Rn(c,u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await Sc(c,r,o),c.type){case"INSERT":return _I(c,r,i,o,t);case"INSERT_SELECT":return vI(c,r,i,o,a,t);case"UPDATE":return DI(c,r,i,o,a,t);case"DELETE":return xI(c,r,i,o,t);case"UPSERT":return UI(c,r,i,o,t);case"UPSERT_SELECT":return MI(c,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Mn(e,t,n,r,i=!1){let o=e==="UPSERT"?i?Math.ceil((n.insert+n.update)/100):Math.ceil(n.insert/100)+Math.ceil(n.update/100):Math.ceil((n.insert+n.update+n.delete)/100);return{kind:"PREVIEW",operation:e,appId:t,counts:n,samples:r,reads:0,estimatedWrites:o}}function _n(e,t){return Object.fromEntries(t.map(n=>[n,Xe(e?.[n]?.value)]))}function LI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function _I(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await we(e.appId,t,r),l=ui(e,s,se(n)).flatMap(c=>c.records);return ot(l,e.fields,o,a),Mn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(c=>({kind:"insert",after:_n(c,e.fields)})))}async function uR(e,t,n,r,i,o){let a=await vs.materialize(e,t,n,r,i,o);if(gp(a),a.columns.length!==e.fields.length){let c=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${c} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await we(e.appId,t,r);return{records:a.rows.map((c,d)=>{let u={};return e.fields.forEach((p,f)=>{a.importPresence&&!a.importPresence[d]?.has(p)||(u[p]={value:fp(c[a.columns[f]]??"",s.get(p))})}),u}),fieldTypes:s}}async function vI(e,t,n,r,i,o){let a=await _e(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l}=await uR(e,t,n,r,i,a);return l.forEach(c=>ot([c],e.fields.filter(d=>d in c),a,s)),Mn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(c=>({kind:"insert",after:_n(c,e.fields)})))}async function DI(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await _e(e.appId,a,t,r),l=await $e(e.appId,a,s,t,r);if(await pn(e,t,r),He(e.where))return Mn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let c=await WR(e,t,n,r,i,a),d=c.map(p=>p.record);ot(d,a,s,l);let u=c.slice(0,o).map(p=>({kind:"update",before:_n(p.validationSnapshot,a),after:_n(p.record,a)}));return Mn("UPDATE",e.appId,{insert:0,update:c.length,delete:0},u)}async function xI(e,t,n,r,i){if(await pn(e,t,r),He(e.where))return Mn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=ru(e),a=await wi(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Mn("DELETE",e.appId,{insert:0,update:0,delete:a.ids.length},a.ids.slice(0,i).map(s=>({kind:"delete",key:String(s)})))}async function cR(e,t,n,r,i,o,a,s){for(let f of e.keyFields)if(!e.fields.includes(f))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${f}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(f=>ot([f],e.fields.filter(m=>m in f),r,i));let l=t.map(f=>e.keyFields.map(m=>Xe(f[m]?.value))),c=Os(cp(e,o,a,r,l)).execution.status==="ELIGIBLE",d=await Pr(e.appId,e.keyFields,l,o,a,n,e.fields),u=[],p=[];return t.forEach((f,m)=>{let E=Cr(d,l[m]),R=LI(l[m]);E===void 0?u.push({kind:"insert",...R===void 0?{}:{key:R},after:_n(f,e.fields)}):p.push({kind:"update",...R===void 0?{}:{key:R},before:_n(d.snapshots?.get(E),e.fields),after:_n(f,e.fields)})}),Mn("UPSERT",e.appId,{insert:u.length,update:p.length,delete:0},[...u,...p].slice(0,s),c)}async function UI(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await we(e.appId,t,r),l=qR(e,s,n);return cR(e,l,s,o,a,t,n,i)}async function MI(e,t,n,r,i,o){let a=await _e(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l,fieldTypes:c}=await uR(e,t,n,r,i,a);return cR(e,l,c,a,s,t,n,o)}async function kI(e,t,n,r,i){return e.type==="WITH"?lp(e,t,n,r,i,!0):yt(e,t,n,i,r,!0)}async function pR(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new cn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new cn)})()},t)})])}catch(a){throw a instanceof cn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function FI(e){let t;if(e instanceof bt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??dc(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:KI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:dc(r),message:r}}else{let n=String(e);t={code:dc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function dc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function KI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function GI(e,t=!1,n=!1){let r=new Dt(e).tokenize();return new Jt(r,{import:t,dialect1:n}).parseStatements()}function $I(e,t){try{let n=GI(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function dR(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?$I(r.name,t[r.name]):r.default);return n}function Cm(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:bf(e.name,t)};case"STRING_FUNC":return{type:"string",value:ye(e,{},void 0,void 0,t)};case"ARITH":{let n=ge(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function Xi(e,t){return Tc(e,t,!1)}function ls(e,t){return qn(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function Tc(e,t,n){if(Array.isArray(e))return e.map(r=>Tc(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(ls(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(ls(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,Tc(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(ls(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=BI(i);if(o.type==="SELECT"&&tt(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&tt(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function tt(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function BI(e){if(e.type==="NOT"&&tt(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&tt(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(tt(t,!1)||tt(n,!1))return{type:"BOOLEAN",value:!1};if(tt(t,!0))return n;if(tt(n,!0))return t}else if(e.op==="OR"){if(tt(t,!0)||tt(n,!0))return{type:"BOOLEAN",value:!0};if(tt(t,!1))return n;if(tt(n,!1))return t}}return e}function Ic(e){if(Array.isArray(e)){for(let t of e){let n=Ic(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=Ic(n);if(r!==null)return r}}return null}var Qi=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},vn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function fR(e,t,n,r,i){let o=await ER(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new Qi(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function VI(e,t,n,r,i){let o=await ER(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function ER(e,t,n,r,i){let o=await is(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await is(e.low,t,n,r,i),c=await is(e.high,t,n,r,i);return{passed:kt(">=",o.value,l.value,fc(o,l))&&kt("<=",o.value,c.value,fc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await is(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):fc(o,a);return{passed:kt(e.op,o.value,a.value,s),actual:o.value}}function fc(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function is(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(wc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await RR(e.query,t,n,r,i),a=await mR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof vn?new Qi(o.message):o}}}async function mR(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await to(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function RR(e,t,n,r,i){let{query:o,probed:a}=WI(e),s=await zi(o,t,n,r,i);if(s.columns.length!==1)throw new vn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new vn("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 vn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function WI(e){return te(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function wc(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=wc(e.left),n=wc(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function uo(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Nt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await X(p,t,n);return[p,new Map(f.map(m=>[m.code,m]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let m=String(f.op),E=f.right,R=["=","!=","<>"].includes(m)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(m)||R)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(R=>f.get(R)?.fieldType==="STATUS"))return;let E=await dp(p,t,n);E&&d.set(p,E)}));let u=(p,f,m)=>{if(f==="$id")return er(ne({fieldType:"__ID__"}),p.appId,"$id");if(m&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(me(p,f));if(!E)return;let R=E.semantics??ne(E),g=E.fieldType==="STATUS"&&d.has(p.appId)?{...R,optionOrder:d.get(p.appId)}:R;return er(g,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let m=o.find(E=>pe(E)===p.tableAlias);return m?m.cteName!==null?r?.get(m.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(m,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(m=>{let E=m.cteName!==null?r?.get(m.cteName)?.columnMeta?.get(p.field)?.semantics:u(m,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(m=>cs(m,p.field)!==void 0))return f.length>1?B("string"):void 0}}var gR=new WeakMap;async function Dn(e,t,n,r,i=!1){let o=await uo(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Ld(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&gR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function HI(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function yR(e){return HI(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function Pm(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===pe(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function Om(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function hR(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||Pm(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+Om(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||Pm(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+Om(n,"VALUE"));return i}function Zc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=he.get(e);return r&&he.set(n,r),n}function ep(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Nt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function AR(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Fn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Fn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=kn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function xn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function gs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function SR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Nt(e.where)?await X(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ie(null,()=>{}):Ie(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function pn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await SR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${xn(r)})`)}async function Yt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,c=new Set;if(await eo(e,t,r,i),JI(e))return l=ZI(e,n),o&&he.set(l,await to(e,l.columns,t,r,i,a)),l;let{resolver:d}=await Dn(e,t,r,i,yR(e)),u=hR(e,d,s),p=await Ir(e,t,r,i);await ZR(e,t,n,r,c,i);let f=mw(e,Ie(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(f)}).`);let m=ze(e),E,R;if(f.capability==="SUPERSET_PREFILTER"){let P=await uo(e,t,r,i),M=ec(e,P);M.eligible&&Qu(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=j(e.where)}catch{P=null}R=So({select:e,selectMode:m,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:Se(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?m:"FULL_SCAN",y=await ro(e,t,r,i),S=gs(e)?(e.orderMode==="KINTONE_NATIVE"?Pi:Ci)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,h=await tw(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=tp(e,n,S),v=R!==void 0&&(m==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?qc(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await ew(e,v,I.effectiveOptions,r,S,y):l=await yw(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,p)}catch(P){IR(I,P)}return o&&he.set(l,await to(e,l.columns,t,r,i,a)),Zc(l,[...c,...u,...h])}function bc(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function TR(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function Ir(e,t,n,r){let i=te(e);if(!Qn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let p=await X(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let R=s.get(E.code)??[];R.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,TR(R))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=sd(e,(u,p)=>l[p]),d=pd(o,e.columns,c);return YI(e,o,d,s),Br(e,md(e,d,c)),d}function YI(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,m=r.get(s.name)??r.get(f)??[];throw m.length>0?new Error(bc(s.name,m)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Zi=new WeakMap;async function jI(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await eo(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function zI(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=me(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},d=(u,p,f,m)=>{let E=i.filter(y=>y.cteName===null&&l(y,f.field)!==null).length,R=i.some(y=>c(y,f.field)),g=pe(u);return{canonicalId:`source:${p}:APP${u.appId}:${m}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!R?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let R=i.findIndex(S=>pe(S)===u.tableAlias);if(R<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let g=i[R];if(g.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let y=l(g,u.field);if(y===null){let S=s(g,me(g,u.field));throw S!==null&&S!==""?new Error(bc(u.field,[{appId:g.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${g.appId}.`)}return d(g,R,u,y)}let p=i.flatMap((R,g)=>{if(R.cteName!==null)return[];let y=l(R,u.field);return y===null?[]:[{table:R,tableIndex:g,code:y}]}),f=i.filter(R=>c(R,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let R=p[0];return d(R.table,R.tableIndex,u,R.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let m=i.flatMap(R=>{if(R.cteName!==null)return[];let g=s(R,me(R,u.field));return g===null||g===""?[]:[{appId:R.appId,owner:g}]}),E=TR(m);throw E.length>0?new Error(bc(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function eo(e,t,n,r){Zi.delete(e);let i=te(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await zI(e,t,n,r),c=yd(e,l,gd);c&&Zi.set(e,c);return}if(!Qn(e))return;if(i.type==="NONE"){Do(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Ir(e,t,n,r)}function qI(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function tp(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?an({...e,orderBy:[]}):an(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function IR(e,t){throw e.reasons.size>0&&t instanceof dt&&!t.completeInputWrapped?new dt(qI(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Nc(e,t){try{return await t()}catch(n){IR(e,n)}}function He(e){return e?.type==="BOOLEAN"&&e.value===!1}function JI(e){return e.from.appId===0&&e.from.cteName===Ue}function ys(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?ys(e.left)||ys(e.right):e.type==="STRING_FUNC"?np(e):!1}function XI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Vi(e)}function Vi(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?np(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Vi(e.left)||Vi(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?ys(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Vi(n))):!1}function np(e){return e.args.some(t=>XI(t))}function QI(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(ys(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(np(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Vi(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 ZI(e,t){if(e.joins.length>0||e.where||te(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.");QI(e);let n=Wu([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=Pn(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=ja(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function ew(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?CR(e):e,s=Fo(a),l=i?.kind==="CANONICAL_LOCAL"?hn(e,e.from):s.fields,c=await ip(e,t,r),d=ap(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await uo(e,t,r,void 0,ep(e)):void 0,p=n.maxRecords??1e4,f=new Set,m=n.onLimitReached??"error",E=n.fetchParallel??1,R=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=p&&!Pe(e.where)?g:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let P=await PE({client:t,app:s.app,fields:s.fields,query:Uu(e),offset:e.offset??0,limit:e.limit});S=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(R)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?j(e.where):"";S=await Ge(t.getRecords,s.app,P,l,{parallel:E,maxRecords:p,stopAfter:y,onLimit:m,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),zc(t,e.from.appId)}})}let h=S.map(P=>Vt(P,null));R||(h=Bu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Vu(e.columns,void 0,d.row,u,se(n)),se(n)),h=ja(h,e.limit,e.offset));let{rows:I,columns:N}=Pn(h,e.columns,void 0,d.row,void 0,u,void 0,se(n)),v=await up(e,I,N,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function tw(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Fo(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=hn(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(R=>!ml(R));if(u.length===0)continue;let p=await X(c,n,r);if(p.length===0)continue;let f=new Set(p.map(R=>R.code)),m=u.filter(R=>!f.has(R));if(m.length>0)throw new Error(`ArgumentError: unknown field code(s): ${m.join(", ")} (APP${c})`);let E=s.get(c);if(E){let R=p.filter(g=>g.inSubtable===!0&&E.has(g.code));for(let g of R){let y=g.subtableCode??"",S=y?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${y}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(y?`APP${c}$${y} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function Lm(e){return e.cteName??`APP${e.appId}`}function nw(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function rw(e,t){return ml(t)||e.validCodes.has(t)}function Ec(e,t){return e.table.cteName!==null?e.validCodes.has(t):rw(e,t)}function iw(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function ow(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=pe(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Ue)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:Lm(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Ue)return;let p=await X(d.appId,t,r);s.set(d,{table:d,label:Lm(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of nw(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Ec(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=wd(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(m=>!Ec(p,m));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Ec(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function us(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await us(e.left,t,n,r,i),await us(e.right,t,n,r,i);return}await ow(e,t,n,r);for(let o of iw(e))await us(o,t,n,r,i)}}function wR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Jr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Jr(e.where,{tableAlias:e.from.alias}):null}function Wi(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Wi(e.left)||Wi(e.right):e.type==="GROUP"||e.type==="NOT"?Wi(e.expr):!1}var rp=new WeakMap;function bs(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=TE(e.where,r),o=IE(i,r),a=new Map,s=new Map;for(let[f,m]of o.fetchQueriesByAlias)s.set(f,m);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,yr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ns(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,wR(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=Jr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,d]=await Promise.all([we(s,t,n),Uw(s,t,n)]),u=aw(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await Ls(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(m=>m.name));for(let m of u)d.set(m,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function aw(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Ht(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"&&hs(e.left.expr,t),e.right.type==="CASE_VALUE"&&hs(e.right.expr,t);return;case"LOGICAL":Ht(e.left,t),Ht(e.right,t);return;case"NOT":case"GROUP":Ht(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function hs(e,t){for(let n of e.branches)Ht(n.condition,t)}function sw(e){let t=[];Ht(e.where,t),Ht(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&hs(n.expr,t);return t}function pe(e){return e.alias??e.cteName}function bR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>pe(n)===t)}function Cs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function ip(e,t,n){let r=sw(e);if(r.length===0)return new Map;let i=new Set,o=Cs(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=bR(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 we(s,t,n)]));return new Map(a)}function Fe(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 op(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||On(t,n)}function On(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){On(e.left,t),On(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){On(e.left,t),On(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&On(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?wr(n,t):n.type!=="ARRAY"&&On(n,t)}function wr(e,t){if(e.type==="AGG_REF"){op(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(wr(e.left,t),wr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Cc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")wr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Hi(n,t)}}function Hi(e,t){if(e.type==="STRING_FUNC"){Cc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Hi(e.left,t),Hi(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?Cc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?wr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Hi(r,t)}}function lw(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;op(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function uw(e){let t=[];for(let n of e)n.type==="AGGREGATE"?op(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?wr(n.expr,t):n.type==="STRFUNC_COL"?Cc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Hi(n.expr,t):n.type==="CASE_COL"&&lw(n.expr,t);return t}var cw=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function pw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":cw.has(e.fieldType)?"string":void 0}async function NR(e,t,n,r){let i=uw(e.columns);if(i.length===0)return;let o=new Set,a=Cs(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let m=bR(e,f.tableAlias);m&&m.cteName===null&&o.add(m.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let m of a)o.add(m.appId);let s=new Map(await Promise.all([...o].map(async f=>{let m=await X(f,t,n);return[f,new Map(m.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,m])=>{if(![...c].some(R=>m.get(R)?.fieldType==="STATUS"))return;let E=await dp(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,m)=>{let E=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(m)?{...E,optionOrder:l.get(m)}:E};return f=>{let m;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)m=s.get(e.from.appId)?.get(f.field);else{let R=d.find(g=>pe(g)===f.tableAlias);if(!R)return;if(R.cteName!==null)return r?.get(R.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");m=s.get(R.appId)?.get(me(R,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");m=s.get(e.from.appId)?.get(me(e.from,f.field))}else{let R=d.flatMap(g=>{if(g.cteName!==null){let S=r?.get(g.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let y=s.get(g.appId)?.get(me(g,f.field));return y?[u(y,g.appId)]:[]});return R.length!==1?void 0:R[0]}if(!m)return;let E=f.tableAlias!==null?d.find(R=>pe(R)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(m,E?.appId??e.from.appId)}}function me(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function cs(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ke(e,t){let n=e.semantics??ne(e);return{sortKind:pw(e),fieldType:e.fieldType,semantics:t===void 0?n:er(n,t,e.code)}}function CR(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function ee(e){return{sortKind:e,semantics:B(e)}}function nt(){return{semantics:B("string","KSQL_UNKNOWN")}}function PR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function rt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return ee("string");if(e==="_pid"||e==="_idx"||e==="$revision")return ee("number")}var dw=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function kn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?ee("number"):ee("string")}return dw.has(e.func)?ee("number"):ee("string")}function br(e,t){return e.type==="STRING"?ee("string"):e.type==="ARRAY"?PR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?nt():Fn(e.arg,t):e.func==="GROUP_CONCAT"?ee("string"):ee("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?ee("number"):e.type==="STRING_FUNC"?kn(e):e.type==="FIELD_REF"?t(Fe(e.field))??nt():e.type==="FIELD"?t(e)??nt():nt()}function Ps(e){if(e.length===0)return nt();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&$o(n(r.semantics),n(t.semantics)))?e.every(i=>$o(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?PR("KSQL_MIXED_UNSUPPORTED"):nt()}function Fn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??nt();if(e.type==="FIELD")return t(e)??nt();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return ee("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return ee("string");if(e.type==="STRING_FUNC")return kn(e);let n=e.branches.map(r=>br(r.result,t));return e.elseResult&&n.push(br(e.elseResult,t)),Ps(n)}function OR(e,t){return e.windowKind==="VALUE"?Fn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?ee("number"):e.arg.type==="WILDCARD"?nt():Fn(e.arg,t):ee("number")}function ps(e,t){return{...e??{},displayName:t}}function fw(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function to(e,t,n,r,i,o=!1){let a=new Map;fw(e)&&await Promise.all(Cs(e).map(async E=>{if(a.has(E.appId))return;let R=await X(E.appId,n,r);a.set(E.appId,new Map(R.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(E.field);return S?ke(S,e.from.appId):void 0}let g=s.find(S=>pe(S)===E.tableAlias);if(!g)return;if(g.cteName!==null)return i?.get(g.cteName)?.columnMeta?.get(E.field);let y=a.get(g.appId)?.get(me(g,E.field));return y?ke(y,g.appId):rt(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let g=a.get(e.from.appId)?.get(me(e.from,E.field));return g?ke(g,e.from.appId):rt(E.field)}let R=s.flatMap(g=>{if(g.cteName!==null){let h=i?.get(g.cteName);return h?.columns.includes(E.field)?[h.columnMeta?.get(E.field)]:[]}let y=a.get(g.appId)?.get(me(g,E.field)),S=y?ke(y,g.appId):rt(E.field);return S?[S]:[]});return R.length===1?R[0]:void 0},d=E=>{if(!l)return;let R=s.filter(g=>{if(E.tableAlias!==null&&pe(g)!==E.tableAlias)return!1;let y=me(g,E.field);return a.get(g.appId)?.has(y)===!0||rt(E.field)!==void 0});return R.length===1?R[0].appId:void 0},u=(E,R)=>{let g=d(R);return E&&g!==void 0?{...E,publicSourceApp:g}:E},p=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let R=Fe(E),g=u(c(R),R);p.set(E,ps(g,g?.displayName??E))}return p}if(f)for(let E of t){let R=Fe(E),g=u(c(R),R);p.set(E,ps(g,g?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,R)=>{let g=f?"alias"in E&&E.alias?E.alias:void 0:t[R];if(!g)return;let y;if(E.type==="FIELD"){let S=Fe(E.field);y=u(c(S),S)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?y=ee("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?y=ee("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(y=Fn(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")y=ee("number");else if(E.type==="GROUPING_COL")y=ee("number");else if(E.type==="LITERAL_COL")y=ee("string");else if(E.type==="SCALAR_VALUE_COL"){let S=E.expr;S.type==="STRING_FUNC"?y=kn(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?y=ee("number"):S.type==="FIELD"?y=c(S):y=ee("string")}else if(E.type==="STRFUNC_COL")y=kn(E.expr);else if(E.type==="WINDOW_COL")y=OR(E,c);else if(E.type==="CASE_COL"){let S=E.expr.branches.map(h=>br(h.result,c));E.expr.elseResult&&S.push(br(E.expr.elseResult,c)),y=Ps(S)}else E.type==="SCALAR_SUBQUERY_COL"&&(y=nt());p.set(g,ps(y,E.aliasDisplay??g))}),p}function Ew(e,t){let n=he.get(e),r=he.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=Ps([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...m}=u;d=p===void 0?m:{...m,publicSourceApp:p}}else d=nt();i.set(o,ps(d,s?.displayName??o))}),i}function ap(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>pe(d)===s.tableAlias);return!c||c.cteName!==null?void 0:cs(c,s.field)??t.get(c.appId)?.get(me(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:cs(e.from,s.field)??t.get(e.from.appId)?.get(me(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=cs(c,s.field)??t.get(c.appId)?.get(me(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var LR=new WeakSet,sp=new WeakMap;function Pc(e){return LR.add(e),e}function mw(e,t){return sp.set(e,t),t}function _R(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&te(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function Rw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function gw(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Rs;if(!Rw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Pn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function yw(e,t,n,r,i,o=!0,a,s,l){let c=sp.get(e);if(LR.has(e)&&c!==void 0&&_R(e,c)){let L=await gw(e,t);if(L!==null)return L}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([ao(e.where,t,n,r,u,i),ao(e.having,t,n,r,u,i)]);let[f,m,E]=await Promise.all([Ns(e,t,r),ip(e,t,r),NR(e,t,r,i)]),R=ap(e,m),g=await uo(e,t,r,i,Nt(e.having)||ep(e)),y=AR(e,g),S=rp.get(e);if(S&&!hr(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=S??bs(e,f)??An(e,f);Ml(h);let I="joinPlan"in h?h:null,N=I&&hr(I.joinPlan)?I:null,v=t,P=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let x=s?s.prefilterWhere:N?null:P,C=N?.queriesByAlias.get(e.from.alias)??"",D=await tg(e.columns,t,n,r,u,i),b=He(e.where),_=b?Promise.resolve([]):Yi(e,e.from,v,d,p,!0,n.onLimitReached??"error",u,x,N?!1:o,l,C),A=[],w=[];for(let L of e.joins){if(b){A.push({join:L,promise:Promise.resolve([])});continue}let V=L.table.alias?N?.queriesByAlias.get(L.table.alias)??"":"",Q=N?null:L.table.alias?M.get(L.table.alias)??null:null;Q!==null||V!==""?A.push({join:L,promise:Yi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,Q,!0,l,V)}):w.push(L)}let U=a?Promise.resolve(a):ro(e,t,r,i);U.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:V}of A)F.set(L.table.alias,await V);await Promise.all(w.map(async L=>{let Q=await $R(e,L,F,v,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await Yi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,Q)}));let{optionOrders:W,sortKinds:G,semantics:k}=await U,{rows:K,columns:Y}=ju({tables:F,stmt:e,scalarCache:D,optionOrders:W,sortKinds:G,orderSemantics:k,fieldTypeResolver:R.row,fieldSemanticsResolver:g,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Zi.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await up(e,K,Y,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function hw(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
16
- UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function Oc(e,t,n){hw(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=he.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),he.set(i,a)}return i}function vR(e,t,n,r){let i=Oc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:Aw(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&he.set(l,Ew(e,t)),l}async function DR(e,t,n,r,i=!1,o=!1){let a=tp(e,n,null);return Nc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?DR(e.left,t,s,r,i,o):Yt(Pc(e.left),t,s,r,void 0,i,o,"DERIVED"),Yt(Pc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return vR(l,c,e.all,i)})}function Aw(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function xR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function Sw(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(xR);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function _m(e){return e.columns.map((t,n)=>xR(t)??`__b53_column_${n}`)}function vm(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function UR(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await X(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let c=o.get(s.appId)?.get(me(s,l));return c?ke(c,s.appId):rt(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>pe(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function $i(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>$i(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){$i(r.left,t,!0),$i(r.right,t,!0);return}for(let i of Object.values(r))$i(i,t,n)}async function Dm(e,t,n,r,i){let o=await UR(e,n,r,i);e.columns.forEach(c=>$i(c,o));let a=await to(e,_m(e),n,r,i),s=_m(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function dn(e){return`${e.appId}:${e.subtableCode??""}`}function MR(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(dn(r))&&t.set(dn(r),r);return[...t.values()]}function Tw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function Iw(e){let t=new Map,n=r=>{for(let i of r)t.set(dn(i),null)};for(let r of e){let i=Cs(r);for(let s of i){let l=dn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>pe(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(dn(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=Tw(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(te(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function ww(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function bw(e,t,n,r){let i=Iw(e),o=await Promise.all(MR(...e).map(async(a,s)=>{let l=await Yt(ww(a,i.get(dn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[dn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:he.get(l)}}]}));return new Map(o)}function xm(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(dn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function Um(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function mc(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=be(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function Mm(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=pe(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function Nw(e,t,n,r,i){let o=e.recursiveSpec,a=Sw(e),s=await Dm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await Dm(o.recursiveTerm,a,t,i,l);a.forEach((G,k)=>{let K=s.get(G),Y=c.get(G);if(!K||!Y||!vm(K,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=Mm(e.name,o.recursiveTerm),u=await UR(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:pe(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:pe(d.source),field:d.sourceField});if(!p||!f||!vm(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let m=await bw([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let G of m.values())E.set(G.name,G.table);let R=xm(o.seed,m),g=xm(o.recursiveTerm,m),y=await yt(R,t,n,E,i,!0,!0),S=Oc(y,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...ee("string"),displayName:h.markColumn});let v=h?[...a,h.markColumn]:[...a],P=[],M=[],x=new Set([...S.warnings??[],...[...m.values()].flatMap(G=>G.warnings)]),C=new va(e.name,$t(n)),D=G=>{C.addRow(),P.push(G)};for(let G of S.rows){let k=h?String(G[h.column]??""):"",K=h?{...G,[h.markColumn]:h.defaultValue}:G;D(K),M.push({row:G,path:h?[k]:[]})}let b=Mm(e.name,g),_=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!_)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=Um(b.self,b.selfField,l)??Um(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let G of _.rows){let k=String(G[b.sourceField]??""),K=mc(k,A.semantics),Y=w.get(K);Y?Y.push(G):w.set(K,[G])}let U=w.has(mc("",A.semantics)),O=0,F=!1;for(;M.length>0;){O++;let G=[];for(let k of M){let K=String(k.row[b.selfField]??"");!F&&K===""&&U&&(x.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let Y=w.get(mc(K,A.semantics))??[];for(let Q of Y){let Ae=String(Q[b.sourceField]??"");kt("=",K,Ae,A.semantics)&&C.addExpansion()}if(Y.length===0)continue;let $=new Map(E);$.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let L=await yt(g,t,n,$,i,!0,!0);for(let Q of L.warnings??[])x.add(Q);let V=Oc(L,a,s);V.rows.length>0&&C.observeDepth(O);for(let Q of V.rows){if(!h){D(Q),G.push({row:Q,path:[]});continue}let Ae=String(Q[h.column]??""),lt=k.path.some(oe=>kt("=",oe,Ae,I.semantics));D({...Q,[h.markColumn]:lt?h.markValue:h.defaultValue}),lt||G.push({row:Q,path:[...k.path,Ae]})}}M=G}let W={type:"SELECT",rows:P,columns:v,rowCount:P.length,warnings:[...x]};return he.set(W,N),W}async function lp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&en(e))return Yt(tn(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await Nw(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await XR(t):c.query.type==="DESCRIBE"?d=await QR(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=kR(c.query):d=await yt(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:he.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await yt(e.query,t,n,a,r,o);return Zc(l,[...s])}function kR(e){let t=oa(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:ne({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ne({fieldType:"DATE"})};return he.set(n,new Map([[e.columnAlias,r]])),n}async function yt(e,t,n,r,i,o=!1,a=!1){if(a||await us(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([yt(e.left,t,n,r,i,o,!0),yt(e.right,t,n,r,i,o,!0)]);return vR(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Ue||e.joins.some(c=>c.table.cteName!=null)))return Yt(e,t,n,i,r,o,!1,"DERIVED");let l=await Cw(e,t,n,r,i);return o&&he.set(l,await to(e,l.columns,t,i,r)),l}async function Cw(e,t,n,r,i){await eo(e,t,i,r);let o=Zi.get(e),a=await Ir(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let L=pe($);return s.add(L),{...$,alias:L}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(L=>L.table)]){let L=pe($);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let d=$=>{let L=r.get($);if(!L)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return L};for(let $ of[e.from,...e.joins.map(L=>L.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await Dn(e,t,i,r,yR(e)),p=hR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,m=new Set,E=n.fetchParallel??1;await Promise.all([ao(e.where,t,n,i,m,r),ao(e.having,t,n,i,m,r),ZR(e,t,n,i,m,r)]);let R=Ie(e.where,u);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(R)}).`);let g=await ro(e,t,i,r),y=gs(e)?(e.orderMode==="KINTONE_NATIVE"?Pi:Ci)({stmt:e,staticMode:"FULL_SCAN",whereCapability:R.capability,whereReasons:R.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:Pe(e.where)}):null,S=tp(e,n,y),h=S.effectiveOptions,[I,N,v]=await Promise.all([Ns(e,t,i),ip(e,t,i),NR(e,t,i,r)]),P=ap(e,N),M=await uo(e,t,i,r,Nt(e.having)||ep(e)),x=AR(e,M),C=bs(e,I)??An(e,I);Ml(C);let D=t,b=await tg(e.columns,t,h,i,m,r),_=Promise.resolve(g);_.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);A.set(e.from.alias,$.rows.map(km)),w.set(e.from.alias,$.columns)}else{let $=await Nc(S,()=>Yi(e,e.from,D,f,E,!0,h.onLimitReached??"error",m,C.mainCondition,R.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,$)}let U=e.joins.map($=>Nc(S,async()=>{if($.table.cteName!=null){let L=d($.table.cteName);A.set($.table.alias,L.rows.map(km)),w.set($.table.alias,L.columns)}else{let L=$.table.alias?C.joinConditions.get($.table.alias)??null:null,Q=await $R(e,$,A,D,f,E,h.onLimitReached??"error",m,i,r,L,a)??await Yi(e,$.table,D,f,E,!1,h.onLimitReached??"error",m,L,!0,a);A.set($.table.alias,Q)}}));await Promise.all(U);let{optionOrders:O,sortKinds:F,semantics:W}=await _,G=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:k,columns:K}=ju({tables:A,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:W,fieldTypeResolver:P.row,fieldSemanticsResolver:M,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:x,aggregateSortKindResolver:v,appliedKlikes:C.appliedKlikes,sourceColumns:G,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),Y=await up(e,k,K,t,i);return Zc({type:"SELECT",rows:k,columns:Y,rowCount:k.length,warnings:[...m]},p)}async function up(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await X(e.from.appId,r,i);return LE(o,e.from.subtableCode,()=>Ls(e.from.appId,r,i))}function km(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Yi(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=hn(e,t,d),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),zc(n,t.appId),dE(e,t,o))throw new dt(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let g=o&&c?Td(e,t.appId).query:"",y=[l!==null?j(l):"",u].filter(N=>N!==""),S=y.length>1?y.map(N=>`(${N})`).join(" and "):y[0]??"",h=g&&S?`(${g}) and (${S})`:g||S;return(await ft(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=o&&c&&e.joins.length===0&&e.where!==null&&sp.get(e)?.capability==="EXACT_PUSHDOWN"&&!xt(e.where)?j(e.where):"",R=(await ft(n.getRecords,t.appId,m,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return JE(R,t.subtableCode)}var Tr=50;function Pw(e){let t=be(e);return t!==null?JSON.stringify(t):e}function Lc(e){return JSON.stringify(e)}function fn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Pw(n):n))}var Fm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function Km(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function Rc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${Fm[t.condition]} \u2014 ${Km(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${Fm[o]} \u2014 ${Km(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function Ow(e,t){if(t==="DOCUMENT_ONLY")return[Rc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[Rc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(Rc("native UPSERT statement/data eligibility",e.statement,t)),n}function Lw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function _w(e,t,n){let r=null;if(e.type==="UPSERT")try{r=hp(e)}catch{}return Os({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Nr.has(e)},fieldInfos:t,rowKeyValues:r})}async function FR(e,t,n){let r=Lw(e);if(!r)return[];let i=await xw(r.appId,t);return Ow(_w(r,i,n),n.surface)}function Os(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let m=fn([...f],[n.fieldType==="NUMBER"]);if(p.has(m)){l=!1;break}p.add(m)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(E=>d[E].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let m=p.filter(E=>d[E].state==="UNKNOWN").map(E=>({condition:E,reason:d[E].reason}));return m.length>0?{status:"UNKNOWN",unknownConditions:m}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function co(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function cp(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:co(t),enabled:Qm(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Nr.has(e)},fieldInfos:r,rowKeyValues:i}}var As=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function KR(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new As;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new As;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function GR(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new Re("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let m={};for(let[E,R]of Object.entries(p))E!==t&&(m[E]=R);return{updateKey:{field:t,value:r[l+f][0]},record:m}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=KR(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function Cr(e,t){let n=e.raw.get(Lc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(fn(t,e.numericKey))}async function Pr(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(g,y,S)=>{let h=g.get(y);(h===void 0||S>h)&&g.set(y,S)},p=(g,y)=>{u(d.raw,Lc(g),y),c.some(Boolean)&&u(d.normalized,fn(g,c),y)},f=new Set,m=[],E=new Set;for(let g of n){let y=Lc(g);E.has(y)||(E.add(y),g.some(S=>S==="")?m.push(g):f.add(g[0]))}let R=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let g of po([...f],Tr)){let y=`${t[0]} in (${g.map(no).join(",")})`,S=await Ge(r.getRecords,e,y,R,{maxRecords:s,parallel:l});for(let h of S){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>pp(h[N]?.value)),I))}}for(let g of m){let y=t.map((I,N)=>`${I} = ${no(g[N])}`).join(" and "),S=a?[...new Set(["$id",...a])]:["$id"],h=await Ge(r.getRecords,e,y,S,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(g,vw(h))}}return d}function vw(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function pp(e){return typeof e=="string"?e:e==null?"":String(e)}function no(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function po(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Dw=6,ds=Da*Dw;async function $R(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,m=t.on.right.tableAlias;if(!f||!m)return null;let E,R,g;if(f===t.table.alias&&m!==t.table.alias)E=m,R=t.on.right.field,g=t.on.left.field;else if(m===t.table.alias&&f!==t.table.alias)E=f,R=t.on.left.field,g=t.on.right.field;else return null;let y=n.get(E);if(!y)return null;let S=[e.from,...e.joins.map(A=>A.table)].find(A=>pe(A)===E),h=(await X(t.table.appId,r,l)).find(A=>A.code===me(t.table,g)),I=h?ke(h,t.table.appId):rt(g),N;if(S?.cteName!==null&&S?.cteName!==void 0)N=c?.get(S.cteName)?.columnMeta?.get(R);else if(S){let A=(await X(S.appId,r,l)).find(w=>w.code===me(S,R));N=A?ke(A,S.appId):rt(R)}let v=[],P=!1;for(let A of y){let w=A[R]?.value,U=pp(w);(w==null||U.length===0)&&(P=!0),v.push(U)}let M=Pu({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:y.length,values:v,hasEmptyValue:P,maxInKeys:ds});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${ds} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let x=Cu(M,g,no);if(x.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${ds} \u4EF6\uFF09\u3002`),null;let C=hn(e,t.table,u),D=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),zc(r,t.table.appId)},b=[],_=new Set;for(let A of x){let U=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,A),O=await ft(r.getRecords,t.table.appId,U,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:D});for(let F of O.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(W)||(_.add(W),b.push(F))}}return b}var _c=new Map,vc=new Map,Dc=new Map,Ss=new Map,xc=new Map,Uc=new Map;function BR(e){_c.delete(e),vc.delete(e),Dc.delete(e),Ss.delete(e),xc.delete(e),Uc.delete(e)}function $n(e,t,n){return e.get(t)?.get(n)}function Or(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function X(e,t,n){let r=$n(Ss,n,e);if(r)return r;let i=t.getFields(e);return Or(Ss,n,e,i),i}async function xw(e,t){let n=$n(Ss,t,e);return n?await n:null}async function _t(e,t,n){let r=$n(Uc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Or(Uc,n,e,i),i}async function Ls(e,t,n){let r=$n(xc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Or(xc,n,e,i),i}async function dp(e,t,n){let r=await Ls(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function we(e,t,n){let r=$n(_c,n,e);if(r)return r;let i=await X(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Or(_c,n,e,o),o}async function Mc(e,t,n){let r=$n(vc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Or(vc,n,e,o),o}async function Uw(e,t,n){let r=await Mc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Gm(e,t,n){let r=$n(Dc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Or(Dc,n,e,o),o}function Mw(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function kw(e,t,n,r){let i=Mw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ke(E,e.from.appId):void 0}let f=o.find(E=>pe(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let m=s.get(f.appId)?.get(me(f,u.field));return m?ke(m,f.appId):rt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(me(e.from,u.field));return f?ke(f,e.from.appId):rt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let R=r?.get(f.cteName),g=R?.columns.includes(u.field)?R.columnMeta?.get(u.field):void 0;return g?[g]:[]}let m=s.get(f.appId)?.get(me(f,u.field)),E=m?ke(m,f.appId):rt(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Fe(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=ee("number");else if(u.type==="WINDOW_COL")p=OR(u,l);else if(u.type==="GROUPING_COL")p=ee("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=ee("string");else if(u.type==="STRFUNC_COL")p=kn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=nt();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(m=>br(m.result,l));u.expr.elseResult&&f.push(br(u.expr.elseResult,l)),p=Ps(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Fn(u.arg,l)):p=u.func==="GROUP_CONCAT"?ee("string"):ee("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=c.get(u)??l(Fe(u))?.semantics;if(!p){let m=Fe(u);m.tableAlias===null&&a.has(m.field)&&d.set(u,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let m=await Ls(p.source.appId,t,n);m.enable&&m.states!==null&&(f={...p,optionOrder:new Map(m.states.map(E=>[E.name,E.index]))})}d.set(u,f)}return d}async function ro(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([Fw(e,t,n),Kw(e,t,n),kw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Fw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Mc(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Mc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function Kw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Gm(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Gm(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function fp(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var Gw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function $w(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||Gw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function _e(e,t,n,r){let i=await X(e,n,r);return $w(e,t,i),i}async function $e(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?_t(e,r,i):void 0}function ot(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=We(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function Bw(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await hi({statement:e,fieldInfos:o,dmlMaxRows:at(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return gb(e,a,o)}async function Vw(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await VR(e,t,n,r,i);return hb(e,a,o)}async function VR(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=new Map(o.map(R=>[R.code,R.fieldType])),s=hp(e),l=new Set;for(let R of s){let g=fn(R,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(g))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(g)}let c=await Pr(e.appId,e.keyFields,s,t,n,a),d=s.map(R=>Cr(c,R)),u=new Map,p=[...new Set(d.filter(R=>R!==void 0))],f=["$id","$revision",...o.filter(R=>!R.inSubtable&&R.fieldType!=="FILE").map(R=>R.code)];for(let R of po(p,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${R.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let S=Number(y.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,y)}}let m=d.map((R,g)=>({sourceRowIndex:g,...R===void 0?{}:{targetId:R,snapshot:u.get(R)}})),E=await iE({statement:e,matches:m,fieldInfos:o,dmlMaxRows:at(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function Ww(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await _e(e.appId,e.fields,t,r),o=await hi({statement:e,fieldInfos:i,dmlMaxRows:at(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),loadNumberPrecision:()=>_t(e.appId,t,r)}),a=Iu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:_s(a),applyDiagnostic:a}))throw new Re("INSERT",o.guards.parentRows);let s=await uE(o,t,a);return{...s,diagnostic:Qe(a,s)}}async function Hw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await VR(e,t,n,r,1),o=wu(i);if(n.confirm){let s=_s(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Re("UPDATE",i.guards.parentRows)}let a=await cE(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:Qe(o,a)}}function Yw(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function _s(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=Yw(n?os(n):[],r?os(r):[]),a=jw(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=os(n),f=os(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(m=>m.targetKind==="SUBTABLE").reduce((m,E)=>m+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((m,E)=>m+E.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(m=>m.targetKind==="SUBTABLE").reduce((m,E)=>m+(E.changedCount??0),0),addedSubtableRows:f.reduce((m,E)=>m+E.appendRows,0),tables:f,deletedRows:f.reduce((m,E)=>m+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function os(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Un(t,"APPEND"),r=Un(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Un(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function jw(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:Un(n,"ADD"),removedValues:Un(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Ep(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Bw(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Vw(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await zR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await mp(e,t,n,r,i,o)).result}var Ts=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function mp(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await _e(e.appId,d,t,r);e.type==="UPDATE"&&await pn(e,t,r);let p=new Map(u.map(_=>[_.code,_])),f=await $e(e.appId,d,u,t,r),m=It(u,c),E=QE(m),R=(await zw(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),g=R.filter(_=>_.mode==="update"),y=e.type==="UPDATE"?Jw:e.type.startsWith("UPSERT")?_=>Xw(_,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,h=g.length>0&&S!==void 0,I=new Map;if(h){Eu(g,d,u);let _=await S({appId:e.appId,candidates:g,fields:E}),A=new Map;for(let w of g){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let U=_.get(w.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let O=ZE(U,w.record??{});A.set(w.rowNumber,O)}f===void 0&&[...A.values()].some(w=>wn(w,m))&&(f=await _t(e.appId,t,r));for(let w of g){let U=A.get(w.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,bn(U,m,f,o,w.rowNumber,l))}}let N=mu(R,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:v,invalidRows:P,invalidRowNumbers:M}=N;if(h){let _=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));v=[],M=new Set;for(let A of R){let w=_.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&M.add(A.rowNumber);continue}let U=I.get(A.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=em({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:U.normalizedRecord,preErrors:w.preErrors,postImageErrors:U.errors,checkErrors:w.checkErrors});A.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)M.add(F)}P=M.size}let x=[...c,...Er],C={type:"VALIDATION",operation:l,validatedRows:R.length,validRows:R.length-P,invalidRows:P,errorCount:v.length,columns:x,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},D=new Map;for(let _ of c){if(_==="$id"){D.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(_);A&&D.set(_,ke(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let _ of Er)D.set(_,ee(b.has(_)?"number":"string"));return Gn.set(C,D),{result:C,candidates:R,invalidRowNumbers:M,columnMeta:D}}async function kc(e,t,n,r,i,o){let a=await mp(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Lt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??it,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Ts(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(m=>!a.invalidRowNumbers.has(m.rowNumber));if(n.confirm){let m=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,m))throw new Re(m,c.length)}let d={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let m=[];for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(g=>g.record)});m.push(R.ids)}return{type:"INSERT",createdIds:m,insertedCount:m.flat().length,...d}}if(e.type==="UPDATE"){let m=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<m.length;E+=100)await t.putRecords({app:e.appId,records:m.slice(E,E+100)});return{type:"UPDATE",updatedCount:m.length,...d}}let u=c.filter(m=>m.mode==="create"),p=c.filter(m=>m.mode==="update").map(m=>{if(m.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:m.targetId,record:m.record}}),f=0;for(let m=0;m<u.length;m+=100){let E=await t.postRecords({app:e.appId,records:u.slice(m,m+100).map(R=>R.record)});f+=E.ids.length}for(let m=0;m<p.length;m+=100)await t.putRecords({app:e.appId,records:p.slice(m,m+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function zw(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return WR(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")$m(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),Kn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?Kt(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let h=await vs.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&h.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${h.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(I&&new Set(h.columns).size!==h.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");$m(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(v=>{let P=N?.get(v),M=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,M]})),Kn(e,p),l=h.rows.map(v=>h.columns.map(P=>v[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,v)=>d&&!d[I]?.has(N)?[]:[[N,h[v]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,v)=>[N,Xe(h[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let m=new Map([...a].map(([h,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>Xe(h.payload.get(I)))),R=e.keyFields.map(h=>m.get(h)==="NUMBER"),g=new Map;for(let h of E){let I=fn(h,R);g.set(I,(g.get(I)??0)+1)}let y=Nr.has(e);if(y&&[...g.values()].some(h=>h>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 S=await Pr(e.appId,e.keyFields,E,n,r,m);return f.forEach((h,I)=>{let N=E[I],v=Cr(S,N);h.mode=v===void 0?"create":"update",v!==void 0&&(h.targetId=v),e.keyFields.forEach((P,M)=>{N[M]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(fn(N,R))??0)>1&&h.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 Rp(e){return e.checkGroups?dr(e.checkGroups):[]}function $m(e,t){let n=new Set(t);for(let r of Rp(e)){if(r.tableAlias!==null)throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var qw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Kn(e,t){if(e.checkGroups)for(let n of Nf(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(qw.has(i??""))throw Le(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function WR(e,t,n,r,i,o){if(e.from)return Zw(e,e.from,t,n,r,i,o);await eg(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=HR(e,a);Kn(e,Fc(a,e.appId));let l,c=new Map,d=new Map;if(ya(e)){let u=Xl(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await ft(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=fs(f.records),c=d,l=Zl(e,f.records,a,se(n)).flatMap(m=>m.records)}else{let u=ci(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await ft(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=fs(f.records),c=d,l=pi(e,[...c.keys()],a).flatMap(m=>m.records)}else if(o){let p=await ft(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=fs(p.records),l=pi(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await wi(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=pi(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:Qw(c.get(u.id),e.appId),evaluationFieldTypes:Fc(a,e.appId)}))}function fs(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function Jw(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function Xw(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new dt(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of po(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function HR(e,t){if(e.from)return[];let n=new Set;for(let r of Rp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw Le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function Qw(e,t){if(!e)return{};let n=Vt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Fc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Zw(e,t,n,r,i,o,a){let s=await mg(e,t,n,i,o);Kn(e,s.evaluationTypes);let l=await YR(e,t,n,r,i,o,a),c=await we(e.appId,n,i),d=tu(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?fs(l.map(f=>f.target)):new Map;return d.sort((f,m)=>f.id-m.id).map((f,m)=>({rowNumber:m+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:oN(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var eb=Tr,tb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function YR(e,t,n,r,i,o,a){let s=await nb(e,t,n,i),l=await mg(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await rb(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=Bm(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let m=r.maxRecords??1e4,E=[...new Set([...Sb(e),...l.targetFields,...a??[]])],R=t.targetFilter===null?"":ci({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,S=0;for(let I of po([...f.values()],eb)){let N=`${t.targetJoinField} in (${I.map(no).join(",")})`,v=R?`(${N}) and (${R})`:N,P=await ft(n.getRecords,e.appId,v,E,{maxRecords:m,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=P.records.length,S>m)throw new dt(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let M of P.records){let x=M.$id?.value;if(typeof x!="string"||x==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(x)||(y.add(x),g.push(M))}}let h=[];for(let I of g){let N=I[t.targetJoinField]?.value,v=Bm(N,s,"target");if(v===null)continue;let P=p.get(v);P!==void 0&&h.push({target:I,source:P})}return h}async function nb(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await X(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function rb(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!d.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await we(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(tb.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await ft(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Vt(d,null))}function Bm(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=be(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function fo(e,t,n,r,i){let o=await mp(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new Re(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(m=>m.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function ib(e,t,n,r){if(e.applyBlocks?.length)return Ww(e,t,n,r);if(e.checkGroups?.length)return fo(e,t,n,r);if(e.subtableCode)return wb(e,t,n,r);let i=await _e(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=await we(e.appId,t,r),s=ui(e,a,se(n));ot(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function ob(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ue},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function jR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=am(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!k.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await X(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),m=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,E=await es(o,new Map),R=e.source.kind==="JSON"?pm(e.source,E,u,n.maxRecords??1e4):dm(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await jc(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Rm(R,u,p,m,g);if(e.source.kind==="CSV")return ab(e,R,y,p,t,n,i);oc(y,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],h=sc(y.errors,S),I=[...S,...ac],N=y.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-N,invalid:N,mutationCandidates:y.parents.filter(k=>k.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Lt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??it,new Map),e.validateOnly)return P;if(ym(R),y.errors.length>0&&!e.onErrorSkip){let k=y.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(i,e.errorTable,I,h,n.tempTableMaxRows??it,new Map)}let M=y.parents.filter(k=>k.valid),x=new Map(p.map(k=>[k.code,k.fieldType])),C=M.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(L=>x.get(L)==="NUMBER"),K=new Set,Y=M.map(L=>e.keyFields.map(V=>String(L.top[V]?.value??"")));for(let L of Y){let V=fn(L,k);if(K.has(V))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(V)}let $=await Pr(e.appId,e.keyFields,Y,t,n,x);Y.forEach((L,V)=>{C[V]=Cr($,L)})}let D=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),b=new Map,_=C.filter(k=>k!==void 0);for(let k of po([...new Set(_)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...D]});for(let Y of K.records){let $=Number(Y.$id?.value),L=Number(Y.$revision?.value);Number.isFinite($)&&b.set($,{id:$,...Number.isFinite(L)?{revision:L}:{},record:Y})}}let A=hm(M,C,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some(K=>K.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new Re(e.keyFields?"UPDATE":"INSERT",A.length)}let U=k=>new Map(Object.entries(k).map(([K,Y])=>[K,Y.value])),O=k=>gm(U(k.top),new Map([...k.subtables].map(([K,Y])=>[K,Y.map($=>({values:U($)}))]))),F=A.filter(k=>k.mode==="INSERT"),W=A.filter(k=>k.mode==="UPDATE"),G=[];for(let k=0;k<F.length;k+=100){let K=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(O)});G.push(K.ids)}for(let k=0;k<W.length;k+=100)await t.putRecords({app:e.appId,records:W.slice(k,k+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:G.flat().length,updatedCount:W.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:G,insertedCount:G.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return sb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:ob(),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};Nr.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Ep(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Lt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??it,Gn.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",kc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?Tp(s,t,n,r,i):yp(s,t,n,r,i));return c(d)}async function ab(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Am(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=cc(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await Ge(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let _=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(_)){p.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let U=b[w]?.value;if(Array.isArray(U)){for(let O of U)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:w}),f.set(O.id,F)}}}}}let m=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,_)=>{let A=[...b.errors];for(let U of l.errors[_])A.push({operation:"UPDATE",parentRow:b.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[_].top});let w=m[_];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...b,valid:A.length===0,errors:A}}),R=Sm(t.records,E,m,p,f),g=R.flatMap(b=>[...b.errors]),y=new Set(R.filter(b=>!b.valid).map(b=>b.parentRow)),S={...n,parents:E,errors:g,invalidParentRows:y};oc(S,e.rejectLimit);let h=R.filter(b=>b.valid),I=R.flatMap(b=>b.tables),N=(b,_)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[_]),0),v=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(_=>_.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.rowIdNotFound,0),invalidParents:y.size,parents:h.map(b=>({parentRow:b.parentRow,mode:"UPDATE",targetId:b.targetId,tables:b.tables}))},M=[...new Set(e.targets.flatMap(b=>b.kind==="FIELD"?[b.field]:b.children))],x=sc(g,M),C=[...M,...ac];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Lt(a,e.validationErrorTable,C,x,o.tempTableMaxRows??it,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-y.size,invalidRows:y.size,errorCount:x.length,columns:C,errors:x,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:y.size,mutationCandidates:h.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let b=g[0];throw new Error(`DmlValidationError: ${b.code} ${b.message} (row=${b.parentRow}, field=${b.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(a,e.errorTable,C,x,o.tempTableMaxRows??it,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new Re("UPDATE",h.length)}let D=b=>new Map(Object.entries(b).map(([_,A])=>[_,A.value]));for(let b of h){let _=lc(D(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:D(U.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:_}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function sb(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await _e(e.appId,e.fields,n,i),s=await $e(e.appId,e.fields,a,n,i),l=await es(t,new Map),c=nc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await jc(r,e.source,c.receipt);let d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=cc(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let M=f.slice(P,P+100),x=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let C of x.records){let D=C.$id?.value;typeof D=="string"&&D!==""&&p.add(D.replace(/^0+(?=\d)/,""))}}let m=new Map(a.map(P=>[P.code,P])),E=new Map(e.fields.map(P=>[P,m.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),R=c.rows.map((P,M)=>{let x=u.normalized[M],C=[...c.importRowErrors?.[M]??[],...u.errors[M]];return x!==null&&!p.has(x)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${x} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...x!==null&&p.has(x)?{targetId:Number(x)}:{},payload:new Map([[e.recordNumberSourceHeader,d[M]],...e.fields.map(D=>[D,P[D]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),g=[e.recordNumberSourceHeader,...e.fields],y=mu(R,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),S=[...g,...Er],h={type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:S,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Lt(o,e.validationErrorTable,S,y.errors,r.tempTableMaxRows??it,new Map),h}if(!e.onErrorSkip&&y.invalidRows>0){let P=y.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Lt(o,e.errorTable,S,y.errors,r.tempTableMaxRows??it,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Ts(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=R.filter(P=>!y.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new Re("UPDATE",I.length);let N=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<N.length;P+=100)await n.putRecords({app:e.appId,records:N.slice(P,P+100)});let v={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:c.importAudit}),v}async function lb(e,t,n,r,i,o){let a=Nr.get(e);if(!a){let E=i&&i.size>0?await yt(e.select,t,n,i,r,!0):await Yt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:he.get(E)}}let s=await es(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?tc(a.source,s,d,l):nc(a.source,s,l,e.fields,o);if(await jc(n,a.source,u.receipt),a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=Tm(a.source.projection),f=new Map(i??[]);f.set(uc,u);let m=await yt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:m.rows,columns:m.columns,columnMeta:he.get(m)}}var vs={materialize:lb};function gp(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function yp(e,t,n,r,i){if(e.checkGroups?.length)return fo(e,t,n,r,i);let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await vs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(gp(s),c.length!==e.fields.length){let f=c.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${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new Re("INSERT",l.length);let d=await we(e.appId,t,r),u=l.map((f,m)=>{let E={};return e.fields.forEach((R,g)=>{if(s.importPresence&&!s.importPresence[m]?.has(R))return;let y=f[c[g]]??"";E[R]={value:fp(y,d.get(R))}}),E});u.forEach(f=>ot([f],e.fields.filter(m=>m in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let m=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:m});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Kc(e,t,n,r,i){if(e.applyBlocks?.length)return zR(e,t,n,r);if(e.checkGroups?.length&&He(e.where)){let m=await _e(e.appId,e.assignments.map(R=>R.field),t,r);await $e(e.appId,e.assignments.map(R=>R.field),m,t,r);let E=await we(e.appId,t,r);return HR(e,E),Kn(e,Fc(E,e.appId)),await pn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return fo(e,t,n,r,i);if(e.subtableCode)return await pn(e,t,r),bb(e,t,n,r);let o=await _e(e.appId,e.assignments.map(m=>m.field),t,r),a=e.assignments.map(m=>m.field),s=await $e(e.appId,a,o,t,r);if(await pn(e,t,r),He(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Ab(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await eg(e.assignments,t,n,r);let c=await we(e.appId,t,r);if(ya(e)){let m=Xl(e),R=(await ft(t.getRecords,m.app,m.query,[...m.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=Zl(e,R,c,se(n));if(ot(g.flatMap(y=>y.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(R.length,"UPDATE"))throw new Re("UPDATE",R.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:R.length}}let d=ci(e),p=(await wi(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=pi(e,p,c);if(ot(f.flatMap(m=>m.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new Re("UPDATE",p.length);for(let m of f)await t.putRecords(m);return{type:"UPDATE",updatedCount:p.length}}async function zR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Ut(e.where))return ub(e,t,n,r,i);let o=await X(e.appId,t,r),a=Gt(e,o),s=Aa(e,o),l=lu(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);wa(c.records[0]);let u=Bf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=It(o,e.assignments.map(I=>I.field)),f=wn(u.postImage,p)?await _t(e.appId,t,r):void 0,m=bn(u.postImage,p,f,i);if(!e.validateOnly&&m.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:m.columns,errors:m.errors})}`);let E=at(n.dmlMaxRows,"dmlMaxRows",jt),R=at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),g=u.parentRows>E||u.changedSubtableRows>R;if(e.validateOnly){let I=Si({plans:[u],records:mi(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:m.invalidRows===0?1:0,invalidRows:m.invalidRows===0?0:1,errorCount:m.errorCount,columns:[...m.columns],errors:m.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:io(I.branches[0]),guards:oo(I.branches[0]),deletedRows:{total:u.tables.reduce((v,P)=>v+P.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return Gn.set(N,Ds(m.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>R)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${R}).`);let y=Ta(u,m.normalizedRecord),S=mi(y),h=Si({plans:[y],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}});if(n.confirm){let I=_s(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new Re("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Qe(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function ub(e,t,n,r,i){let o=at(n.dmlMaxRows,"dmlMaxRows",jt),a=at(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),s=await X(e.appId,t,r),l=Gt(e,s),c;if(Is(e))c=await fb(e,t,n,s,r);else{let f=Aa(e,s),m=ci(e).query,E=o+1;c=await Ge(t.getRecords,e.appId,m,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let d=await Pa({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});if(e.validateOnly)return yb(e,d,s);Gd("phase15b",e);let u=Si(d);if(n.confirm){let f=_s(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new Re("UPDATE",d.guards.parentRows)}let p=await lE(d,t,u);return{...p,diagnostic:Qe(u,p)}}function Is(e){return(e.applyBlocks?.length??0)>0&&!Ut(e.where)&&(Xt(e.where)||Pe(e.where))}function cb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Is(t)&&Pe(t.where)}var pb=`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
14
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let m=o();if(m==='"'){f=!0;break}if(m.charCodeAt(0)<32&&zt("string contains an unescaped control character",l.offset,l.line,l.column),m!=="\\"){p+=m;continue}n>=e.length&&zt("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),R={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
+ `,r:"\r",t:" "};if(E in R){p+=R[E];continue}E!=="u"&&zt(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||zt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let y=Number.parseInt(g,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&zt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(S,16);(h<56320||h>57343)&&zt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+h-56320)}else y>=56320&&y<=57343?zt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||zt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}zt(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function cs(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function ps(e){if(e.byteLength===0)throw new H("JSON source is empty.");let t=Em(fm(e)),n=0,r=(c,d=t[n])=>{throw new H(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${cs(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${cs(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${cs(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${cs(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new H("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new H(`JSON record ${d+1} must be an object.`)}),l}var mI=new Set(["CHECK_BOX","MULTI_SELECT"]),mm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function vt(e,t,n){throw new H(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function RI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function gI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&vt(n,t.code,"boolean is not accepted."),RI(e)){t.fieldType==="NUMBER"&&vt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&vt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||vt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&vt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||vt(n,t.code,"unsupported value type."),!mI.has(t.fieldType)&&!mm.has(t.fieldType)&&vt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&vt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&vt(n,t.code,"array elements must not contain duplicates."),mm.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function uc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let i=ps(t.bytes);if(i.length>r)throw new H(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new H("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||vt(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=gI(l.get(p.code),p,c+1));a.push(d),s.push(u)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function cc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=us(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new H(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new H("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let c=new Map(s.columns.map((y,S)=>[y,S]));for(let y of r)if(!c.has(y))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new H("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!c.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let p=[],f=[],m=y=>s.rows.filter(S=>S[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,S]of s.columns.entries()){if(u.has(S)||S===o)continue;let h=d.get(S);if(h)p.push({column:S,reason:E(h),nonEmptyCells:m(y)});else if(e.ignoreUnknownColumns)f.push({column:S,reason:"unknown column ignored by explicit policy",nonEmptyCells:m(y)});else throw new H(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${S}".`)}for(let y of r){let S=d.get(y);if(!S)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(S.inSubtable||S.writable===!1||S.fieldType==="FILE"||S.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${S.fieldType}).`)}let R=[],g=s.rows.map(y=>{let S=[],h={};for(let I of r){let N=y[c.get(I)];try{h[I]=dm(N,d.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof Wi))throw v;h[I]=N,S.push({field:I,code:v.code,message:v.message})}}return R.push(S),h});return{receipt:{rows:s.rows.length,encoding:a},rows:g,columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:s.rows.map(y=>y[c.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:p,ignoredUnknownColumns:f}}}let l=s.rows.map(c=>Object.fromEntries(s.columns.map((d,u)=>[d,c[u]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(c=>[c,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Hi=(e,t,n)=>{throw new H(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Rm(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let o=ps(t.bytes);if(o.length>r)throw new H(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new H("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,c)=>{let d=c+1;for(let m of l.keys())a.has(m)||Hi(d,m,"unknown key (not declared in INTO).");let u=new Map,p=new Map,f=new Set;for(let m of n){let E=m.kind==="FIELD"?m.field:m.subtableCode;if(!l.has(E))continue;let R=l.get(E);if(m.kind==="FIELD"){R instanceof Map&&Hi(d,E,"object is not accepted for a top-level field."),u.set(E,R);continue}Array.isArray(R)||Hi(d,E,"subtable value must be an array."),f.add(E);let g=new Set(m.children),y=R.map((S,h)=>{S instanceof Map||Hi(d,E,`childRow=${h+1} must be an object.`);let I=S;for(let N of I.keys())g.has(N)||Hi(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new H(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,y)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function gm(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=us(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new H('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,m)=>[f,m]));if(o&&!l.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=n.filter(f=>f.kind==="FIELD"),d=n.filter(f=>f.kind==="SUBTABLE");for(let f of c)if(!l.has(f.field))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of d){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new H(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let m of f.children)if(!l.has(m))throw new H(`ERR_IMPORT_MISSING_COLUMN: required child header "${m}" is missing.`)}let u=[],p;if(s.rows.forEach((f,m)=>{let E=m+2,R=f[0];if(R!==""&&R!=="*")throw new H(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new H(`source parent rows exceed maxRecords (${i}).`);p={rowNumber:u.length+1,markerRowNumber:E,top:new Map(c.map(g=>[g.field,f[l.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},u.push(p)}else if(p){for(let g of c){let y=f[l.get(g.field)];if(y!==""&&y!==p.top.get(g.field))throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=f[l.get(o)];if(g!==""&&g!==p.recordNumberSourceValue)throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new H(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let y=f[l.get(g.rowIdSourceHeader)],S=new Map(g.children.map(I=>[I,f[l.get(I)]]));if(y===""&&[...S.values()].every(I=>I===""))continue;let h=p.subtables.get(g.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:S})}}),u.length===0)throw new H("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:u}}var yI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),hI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function fc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Sm(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)ym(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let m=a.get(p.subtableCode)??new Map;for(let E of p.children)ym(E,m.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>AI(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function AI(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&dc(e.top.get(p.field),r.get(p.field),o,c,p.field,l,pc(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||hm(p,o,d,l,pc(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let m=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let R=l.length,g={},y=i.get(p.subtableCode);for(let S of p.children){let h=y.get(S),I=pc(e,a,S,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(S)?dc(E.values.get(S),h,o,g,S,l,I):hm(h,o,g,l,I)}l.length===R?(f.validChildRows++,m.push(g)):f.invalidChildRows++}u.set(p.subtableCode,m)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function ym(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&hI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function hm(e,t,n,r,i){let o=Cn(e.defaultValue)?"":e.defaultValue;dc(o,e,t,n,e.code,r,i,!Cn(e.defaultValue))}function dc(e,t,n,r,i,o,a,s=!1){let l=SI(e),c=ze(l,t,n);c.ok?r[i]={value:TI(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function SI(e){return Am(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Am(t)?t.lexeme:t):e}function Am(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function TI(e,t){return yI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function pc(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var Ec=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function mc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":II(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function II(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 Rc(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function Tm(e,t){return Rc(e,t,"DROP")}function Im(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function wm(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function wI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function bm(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function Nm(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let m=wI(c.record,f),E=new Set(m.map(N=>N.id).filter(N=>!!N)),R=s.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,S=0,h=0,I=R.map((N,v)=>{let C=g[v]??{};return N.rowId&&E.has(N.rowId)?(y++,{rowId:N.rowId,record:C}):(N.rowId&&((i.get(N.rowId)??[]).some(x=>x.parentId!==l||x.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),S++,{record:C})});u.set(f,I),p.push({table:f,existingRows:m.length,inputRows:R.length,updateRows:y,addRows:S,deleteRows:m.length-y,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var gc="#__import_source";function Cm(e){return{...e,from:{appId:0,alias:null,cteName:gc}}}function bI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function yc(e,t){let n=e.map(bI),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var NI="\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",ws=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"}};function Eo(e,t){return e?.columns.includes(t)?t:void 0}function Oe(e,t){let n=Eo(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var he=new WeakMap;function nR(e){return he.get(e)}var Wn=new WeakMap,Or=new WeakMap,Pc=Symbol("statementEvaluationContext"),rR=Symbol("importSourceMaterializedCallback"),ep=Symbol("nativeUpsertExecution"),iR=Symbol("nativeUpsertExplainCapability");function CI(e,t,n){return{...e,[ep]:t,...n===void 0?{}:{[iR]:n}}}function oR(e){return e[ep]===!0}function PI(e){return ep in e}function OI(e){return e[iR]}function aR(e){return e[Pc]?e:{...e,[Pc]:{statementInstant:new Date}}}function se(e){return e[Pc]??{}}async function tp(e,t,n){let r=e[rR];r&&await r({name:t.sourceName,kind:t.kind,...n})}var Pm=new WeakMap,LI=1,_I=1;function vI(e,t){if(t)return t;let n=Pm.get(e);return n||(n=`client:${LI++}`,Pm.set(e,n)),n}function sR(e){return`${e}\0inv:${_I++}`}function DI(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var lR=Symbol("limitMetricsSink");function np(e,t){let n=e[lR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function xI(e,t){let n={[lR]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return go(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var Om=Symbol("searchAbortFailClosed");function rp(e,t,n){return n&&e[Om]?e:{...e,...n?{[Om]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new ws;return i}}}function uR(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function UI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(NI),{...e,warnings:[...n]}}async function Oc(e,t,n){let r=await mo(e,t,n);return sc(r),r}async function mo(e,t,n){return um(e,{select:async r=>{let{resolver:i}=await kn(r,t,n);return we(r.where,i)},dml:r=>PR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await kn(r,t,n);return lc(r,i)},joinServerFunctionPlan:async r=>{await kn(r,t,n);let i=await xs(r,t,n),o=Ds(r,i);return o===null?null:(Tr(o.joinPlan)&&pp.set(r,o),o.joinPlan)}})}async function Lm(e,t,n,r){n=aR(n);let i=await mo(e,t,r);e.type!=="EXPLAIN"&&sc(i);let o=_c(e);if(o!==null&&!wb(e))throw new Error(Rs(o,"in a batch"));if(lr("phase15b",e),ni("phase15b",e),Ze(e),e.type!=="EXPLAIN"&&await lw(e,t,r),e.type==="IMPORT")return ng(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return jc(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Tp(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return MI(e,t,n,r);case"SELECT":return Jt(Mc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return BR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Rp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return yb(e,t,n,r);case"INSERT_SELECT":return Np(e,t,n,r);case"UPSERT":return kb(e,t,n,r);case"UPSERT_SELECT":return Lp(e,t,n,r);case"UPDATE":return jc(e,t,n,r);case"DELETE":return Mb(e,t,n,r);case"REORDER":return Vb(e,t,n,r);case"SHOW_APPS":return ag(t);case"DESCRIBE":return sg(e,t,r);case"EXPLAIN":return eN(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?lt(n.dmlMaxRows,"dmlMaxRows",Xt):Xt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me):Me,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,PI(n)?{surface:"CLI",enableNativeUpsert:oR(n),clientHasNativeUpsert:OI(n)??go(t)}:{surface:"DOCUMENT_ONLY"});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 AR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var ip=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],op=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ap(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function cR(e=!1){let t=e?op:ip;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function MI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return pR(e,t,n,r)}async function pR(e,t,n,r){let i=await X(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=Pu(e,i),l=new Set(s.flatMap(O=>Nu(O.field))),c={present:bu.filter(O=>l.has(O)),absent:bu.filter(O=>!l.has(O))},d=e.checkGroups??[],u=mr(d);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),Vn(e,p);let f=ap(e.where),m=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await xt(e.appId,t,r):void 0,R=O=>O.field==="$id"?te({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?te(o.get(O.field)):void 0),g=we(e.where,R);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(g)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),h=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:Ml(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:S,allowKlike:!1}),I=h===null?"":j(h),v=(await Ve(t.getRecords,e.appId,I,m,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:jt(O,null)})).filter(O=>e.where===null||ce(e.where,O.flat,F=>p.get(F.field),void 0,void 0,se(n))),C=[],U=new Map,x=new Map,P=new Set,D=0,b=O=>{if(P.add(O.id),D+=1,e.summary){let G=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=x.get(G);k?k.$err_count=String(Number(k.$err_count)+1):x.set(G,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),W=U.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),O.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${O.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${O.subrowId??""}`)):U.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of v){for(let F of _){let W=O.record[F.field.code]?.value,G=ze(W,F.field,E);G.ok||b({id:O.id,field:F.field.code,code:G.code,message:G.message,value:Ai(W,F.field.fieldType)})}for(let[F,W]of A){let G=O.record[F]?.value;if(Array.isArray(G))for(let k=0;k<G.length;k++){let K=G[k];for(let Y of W){let $=K.value?.[Y.field.code]?.value,L=ze($,Y.field,E);if(!L.ok){let V=xa(F,k,K);b({id:O.id,field:Y.field.code,code:L.code,message:L.message,value:Ai($,Y.field.fieldType),...V})}}}}for(let F of Ta(d,O.flat,W=>p.get(W.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...x.values());else for(let O of U.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),C.push(O)}let M={type:"SELECT",columns:[...e.summary?op:ip],rows:C,rowCount:C.length,validateStats:{errorRecords:P.size,errorCount:D,constraintMetadata:c}};return he.set(M,cR(e.summary===!0)),M}var at=1e4;function Dt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!kI(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function kI(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!zo(i.semantics,r.semantics))return!1}return!0}var En=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function dR(e,t,n,r={},i,o=!1,a,s=new Set){Ht(r);let l=[...e],c=si(l);if(l.forEach(g=>ni("phase15b",g)),r.allowApplyMutation!==!0&&l.some(g=>$l(g)||g.type==="UPSERT"&&BI(g)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&c.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let g of c.statements){if(!g.isDml||g.tempTablesReferenced.length===0||g.statementType==="INSERT_SELECT"||g.statementType==="UPSERT_SELECT")continue;let y=l[g.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new le(`ArgumentError: temp table references in ${g.statementType} are not supported yet.`,g.index)}let d=xu(l,r.variables),u=hR(l,d),p=CI({...r,variables:d,captureColumnMeta:!0},o),f=Rl(r.asOf??new Date,r.timezone),m=new Map;for(let[g,y]of Object.entries(f.values))m.set(kr(g),{type:"string",value:y});let E=DI(),R=Date.now();return{statements:l,analysis:c,metrics:E,options:p,client:xI(n,E),cacheContext:sR(vI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:m,relativeDateVariables:u,clock:se(aR(p)),dialect:t,startedAt:R,deadline:r.timeoutMs!=null?R+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},...a?{onImportSourceMaterialized:a}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function fR(e,t){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let n=t.nextIndex;if(n>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[n])throw new Error(`ExecutionContextOrderError: expected statement index ${n}.`);t.busy=!0,t.nextIndex+=1;let r=t.analysis.statements[n],i={index:n,type:r.statementType};try{if(t.aborted){let R={...i,status:"skipped",skippedReason:t.aborted};return t.aborted!=="exit"&&t.failed.add(n),R}let o=r.dependsOn.find(R=>t.failed.has(R));if(o!==void 0){let R=t.analysis.statements[o].tempTablesCreated[0]??`statement ${o}`;return t.failed.add(n),{...i,status:"skipped",skippedReason:`dependency: ${R}`}}if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(n),t.aborted="timeout",{...i,status:"skipped",skippedReason:"timeout"};let a={aborted:!1},s=rp(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||yE(e)),l=uR(s);t.cursorCleanups.add(l.closeActive);let c=t.deadline!==null?t.deadline-Date.now():null,d=t.onChunkWritten?$I(l.client,n,e,t.onChunkWritten):l.client,u=t.options.confirm,p=u?{...t.options,confirm:(R,g,y)=>u(R,g,{statementIndex:n,statementCount:t.statements.length,statementType:r.statementType,targetAppId:r.targetAppId,...y?.importDetail?{importDetail:y.importDetail}:{},...y?.applyDetail?{applyDetail:y.applyDetail}:{},...y?.applyDiagnostic?{applyDiagnostic:y.applyDiagnostic}:{}})}:t.options;t.onImportSourceMaterialized&&(p={...p,[rR]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new En}});let f=await yR(VI({stmt:e,info:r,client:d,options:p,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),c,l.closeActive);f.result&&(f.result=UI(f.result,a));let{exitTriggered:m,...E}=f;return m&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...E}}catch(o){return t.failed.add(n),o instanceof En?t.aborted="timeout":o instanceof ro?t.aborted="assertion":r.statementType==="SET_VARIABLE"||r.statementType==="DECLARE_VARIABLE"?t.aborted="fail-fast":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"error",error:ZI(o)}}finally{t.busy=!1}}function FI(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")},n={...e,postRecords:t,putRecords:t,deleteRecords:t};return go(e)&&(n.upsertRecords=t),n}async function ER(e,t,n){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let r=t.nextIndex;if(r>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[r])throw new Error(`ExecutionContextOrderError: expected statement index ${r}.`);t.busy=!0,t.nextIndex+=1;let i=t.analysis.statements[r],o=KI(e),a=GI(e),s=_m(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),hc(o,a);if(i.dependsOn.find(E=>t.failed.has(E))!==void 0)return t.failed.add(r),hc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",hc(o,a);let c={aborted:!1},d=rp(t.client,c,!0),u=uR(d);t.cursorCleanups.add(u.closeActive);let p=FI(u.client),f=t.deadline!==null?t.deadline-Date.now():null,m=await yR(WI({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),f,u.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...m,reads:_m(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof En?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function _m(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function KI(e){switch(e.type){case"INSERT":case"INSERT_SELECT":return"INSERT";case"UPDATE":return"UPDATE";case"DELETE":return"DELETE";case"UPSERT":case"UPSERT_SELECT":return"UPSERT";default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function GI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function hc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function mR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),XR(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function $I(e,t,n,r){let i=0,o=async(c,d,u,p,f)=>{await r({statementIndex:t,appId:c,operation:d,records:u,chunkIndex:i++,...p===void 0?{}:{lastKeyValue:p},...f??{}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=c=>{if(a===void 0||c.length===0)return;let d=c[c.length-1][a]?.value;return typeof d=="string"?d:void 0},l={...e,postRecords:async c=>{let d=await e.postRecords(c);return await o(c.app,"INSERT",c.records.length,s(c.records)),d},putRecords:async c=>{await e.putRecords(c),await o(c.app,"UPDATE",c.records.length,s(c.records.map(d=>d.record)))},deleteRecords:async c=>{await e.deleteRecords(c),await o(c.app,"DELETE",c.ids.length)}};return go(e)&&(l.upsertRecords=async c=>{let d=await e.upsertRecords(c),u=zR(d,c.records.length);return await o(c.app,"UPSERT",c.records.length,c.records[c.records.length-1]?.updateKey.value,u),d}),l}function BI(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function VI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=no(t,s);if(Ze(p),await Oc(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await IR(p.expr.query,r,i,o,a),m=await TR(p.expr.query,r,o,a),E=m?Number(f):Number.NaN;s.set(t.name,m&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof Mn?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,vm(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=vm(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=no(t,s);if(lr("phase15b",u),ni("phase15b",u),Ze(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=An(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await X(u.appId,r,o),m=An(u,f)[0];if(m)throw new Error(`ArgumentError: ${m.message}`)}if(await Oc(u,r,o),u.type==="VALIDATE"){let p=await pR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Dt(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??at,he.get(p)??cR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await ng(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await Tp(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Dt(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??at,Wn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await Hc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??at,onLimitReached:"error"},f=await QI(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:he.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;Zc.set(p,a);try{return{result:await Lm(p,r,i,o)}}finally{Zc.delete(p)}}if(u.type==="ASSERT"){let p=await AR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await iw(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await St(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await Rp(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await Np(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await Lp(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await jc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await Lm(u,r,i,o)}}async function WI(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,c=no(n,s);if(lr("phase15b",c),ni("phase15b",c),Ze(c),l===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let d=An(c)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let u=await X(c.appId,r,o),p=An(c,u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await Oc(c,r,o),c.type){case"INSERT":return YI(c,r,i,o,t);case"INSERT_SELECT":return jI(c,r,i,o,a,t);case"UPDATE":return zI(c,r,i,o,a,t);case"DELETE":return qI(c,r,i,o,t);case"UPSERT":return JI(c,r,i,o,t);case"UPSERT_SELECT":return XI(c,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Gn(e,t,n,r,i=!1){let o=e==="UPSERT"?i?Math.ceil((n.insert+n.update)/100):Math.ceil(n.insert/100)+Math.ceil(n.update/100):Math.ceil((n.insert+n.update+n.delete)/100);return{kind:"PREVIEW",operation:e,appId:t,counts:n,samples:r,reads:0,estimatedWrites:o}}function Un(e,t){return Object.fromEntries(t.map(n=>[n,et(e?.[n]?.value)]))}function HI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function YI(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=di(e,s,se(n)).flatMap(c=>c.records);return st(l,e.fields,o,a),Gn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(c=>({kind:"insert",after:Un(c,e.fields)})))}async function RR(e,t,n,r,i,o){let a=await Gs.materialize(e,t,n,r,i,o);if(bp(a),a.columns.length!==e.fields.length){let c=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${c} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await Ne(e.appId,t,r);return{records:a.rows.map((c,d)=>{let u={};return e.fields.forEach((p,f)=>{a.importPresence&&!a.importPresence[d]?.has(p)||(u[p]={value:Sp(c[a.columns[f]]??"",s.get(p))})}),u}),fieldTypes:s}}async function jI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l}=await RR(e,t,n,r,i,a);return l.forEach(c=>st([c],e.fields.filter(d=>d in c),a,s)),Gn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(c=>({kind:"insert",after:Un(c,e.fields)})))}async function zI(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await Ue(e.appId,a,t,r),l=await He(e.appId,a,s,t,r);if(await mn(e,t,r),qe(e.where))return Gn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let c=await ZR(e,t,n,r,i,a),d=c.map(p=>p.record);st(d,a,s,l);let u=c.slice(0,o).map(p=>({kind:"update",before:Un(p.validationSnapshot,a),after:Un(p.record,a)}));return Gn("UPDATE",e.appId,{insert:0,update:c.length,delete:0},u)}async function qI(e,t,n,r,i){if(await mn(e,t,r),qe(e.where))return Gn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=du(e),a=await Ci(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Gn("DELETE",e.appId,{insert:0,update:0,delete:a.ids.length},a.ids.slice(0,i).map(s=>({kind:"delete",key:String(s)})))}async function gR(e,t,n,r,i,o,a,s){for(let f of e.keyFields)if(!e.fields.includes(f))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${f}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(f=>st([f],e.fields.filter(m=>m in f),r,i));let l=t.map(f=>e.keyFields.map(m=>et(f[m]?.value))),c=ks(yp(e,o,a,r,l)).execution.status==="ELIGIBLE",d=await _r(e.appId,e.keyFields,l,o,a,n,e.fields),u=[],p=[];return t.forEach((f,m)=>{let E=Lr(d,l[m]),R=HI(l[m]);E===void 0?u.push({kind:"insert",...R===void 0?{}:{key:R},after:Un(f,e.fields)}):p.push({kind:"update",...R===void 0?{}:{key:R},before:Un(d.snapshots?.get(E),e.fields),after:Un(f,e.fields)})}),Gn("UPSERT",e.appId,{insert:u.length,update:p.length,delete:0},[...u,...p].slice(0,s),c)}async function JI(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=ig(e,s,n);return gR(e,l,s,o,a,t,n,i)}async function XI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l,fieldTypes:c}=await RR(e,t,n,r,i,a);return gR(e,l,c,a,s,t,n,o)}async function QI(e,t,n,r,i){return e.type==="WITH"?Rp(e,t,n,r,i,!0):St(e,t,n,i,r,!0)}async function yR(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new En;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new En)})()},t)})])}catch(a){throw a instanceof En&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function ZI(e){let t;if(e instanceof Ot)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Ac(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:ew(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ac(r),message:r}}else{let n=String(e);t={code:Ac(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ac(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function ew(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function tw(e,t=!1,n=!1){let r=new Mt(e).tokenize();return new en(r,{import:t,dialect1:n}).parseStatements()}function nw(e,t){try{let n=tw(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function hR(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?nw(r.name,t[r.name]):r.default);return n}function vm(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:vf(e.name,t)};case"STRING_FUNC":return{type:"string",value:ye(e,{},void 0,void 0,t)};case"ARITH":{let n=me(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function no(e,t){return Lc(e,t,!1)}function Rs(e,t){return Zn(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function Lc(e,t,n){if(Array.isArray(e))return e.map(r=>Lc(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,Lc(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(Rs(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=rw(i);if(o.type==="SELECT"&&rt(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&rt(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function rt(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function rw(e){if(e.type==="NOT"&&rt(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&rt(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(rt(t,!1)||rt(n,!1))return{type:"BOOLEAN",value:!1};if(rt(t,!0))return n;if(rt(n,!0))return t}else if(e.op==="OR"){if(rt(t,!0)||rt(n,!0))return{type:"BOOLEAN",value:!0};if(rt(t,!1))return n;if(rt(n,!1))return t}}return e}function _c(e){if(Array.isArray(e)){for(let t of e){let n=_c(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=_c(n);if(r!==null)return r}}return null}var ro=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Mn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function AR(e,t,n,r,i){let o=await SR(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new ro(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function iw(e,t,n,r,i){let o=await SR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function SR(e,t,n,r,i){let o=await ds(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await ds(e.low,t,n,r,i),c=await ds(e.high,t,n,r,i);return{passed:$t(">=",o.value,l.value,Sc(o,l))&&$t("<=",o.value,c.value,Sc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await ds(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):Sc(o,a);return{passed:$t(e.op,o.value,a.value,s),actual:o.value}}function Sc(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function ds(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(vc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await IR(e.query,t,n,r,i),a=await TR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Mn?new ro(o.message):o}}}async function TR(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await ao(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function IR(e,t,n,r,i){let{query:o,probed:a}=ow(e),s=await Zi(o,t,n,r,i);if(s.columns.length!==1)throw new Mn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Mn("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 Mn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function ow(e){return kt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function vc(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=vc(e.left),n=vc(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function Ro(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Lt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await X(p,t,n);return[p,new Map(f.map(m=>[m.code,m]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let m=String(f.op),E=f.right,R=["=","!=","<>"].includes(m)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(m)||R)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(R=>f.get(R)?.fieldType==="STATUS"))return;let E=await Ap(p,t,n);E&&d.set(p,E)}));let u=(p,f,m)=>{if(f==="$id")return rr(te({fieldType:"__ID__"}),p.appId,"$id");if(m&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(pe(p,f));if(!E)return;let R=E.semantics??te(E),g=E.fieldType==="STATUS"&&d.has(p.appId)?{...R,optionOrder:d.get(p.appId)}:R;return rr(g,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let m=o.find(E=>de(E)===p.tableAlias);return m?m.cteName!==null?Oe(r?.get(m.cteName),p.field)?.semantics??B("string"):u(m,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Oe(r?.get(e.from.cteName),p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(m=>{let E=m.cteName!==null?Oe(r?.get(m.cteName),p.field)?.semantics:u(m,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(m=>ys(m,p.field)!==void 0))return f.length>1?B("string"):void 0}}var wR=new WeakMap;async function kn(e,t,n,r,i=!1){let o=await Ro(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Fd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&wR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function aw(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function bR(e){return aw(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function Dm(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=$e(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===de(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=$e(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function xm(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function NR(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||Dm(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+xm(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||Dm(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+xm(n,"VALUE"));return i}function sp(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=he.get(e);return r&&he.set(n,r),n}function lp(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Lt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function CR(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t($e(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Bn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Bn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=$n(r.expr,o=>{let a=t(o);return a?{compareMode:a.compareMode}:void 0}).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=ve(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Fn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function bs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function PR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Lt(e.where)?await X(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?we(null,()=>{}):we(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function mn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await PR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Fn(r)})`)}async function Jt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){hw(e);let l,c=new Set;if(await oo(e,t,r,i),pw(e))return l=Ew(e,n),o&&he.set(l,await ao(e,l.columns,t,r,i,a)),l;let{resolver:d}=await kn(e,t,r,i,bR(e)),u=NR(e,d,s),p=await Nr(e,t,r,i);await lg(e,t,n,r,c,i);let f=Ow(e,we(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(f)}).`);let m=Xe(e),E,R;if(f.capability==="SUPERSET_PREFILTER"){let C=await Ro(e,t,r,i),U=lc(e,C);U.eligible&&ac(e,U)&&(E=U.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=j(e.where)}catch{C=null}R=Co({select:e,selectMode:m,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?m:"FULL_SCAN",y=await lo(e,t,r,i),S=bs(e)?(e.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:_e(e.where)}):null,h=await Rw(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=up(e,n,S),v=R!==void 0&&(m==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?rp(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await mw(e,v,I.effectiveOptions,r,S,y):l=await vw(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,p)}catch(C){LR(I,C)}return o&&he.set(l,await ao(e,l.columns,t,r,i,a)),sp(l,[...c,...u,...h])}function Dc(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function OR(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function Nr(e,t,n,r){let i=ee(e);if(!kt(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let p=await X(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let R=s.get(E.code)??[];R.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,OR(R))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=md(e,(u,p)=>l[p]),d=hd(o,e.columns,c);return sw(e,o,d,s),Hr(e,Id(e,d,c)),d}function sw(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,m=r.get(s.name)??r.get(f)??[];throw m.length>0?new Error(Dc(s.name,m)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var io=new WeakMap;async function lw(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await oo(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function uw(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=pe(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?Eo(f,p)!==void 0:!0},d=(u,p,f,m)=>{let E=i.filter(y=>y.cteName===null&&l(y,f.field)!==null).length,R=i.some(y=>c(y,f.field)),g=de(u);return{canonicalId:`source:${p}:APP${u.appId}:${m}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!R?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let R=i.findIndex(S=>de(S)===u.tableAlias);if(R<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let g=i[R];if(g.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let y=l(g,u.field);if(y===null){let S=s(g,pe(g,u.field));throw S!==null&&S!==""?new Error(Dc(u.field,[{appId:g.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${g.appId}.`)}return d(g,R,u,y)}let p=i.flatMap((R,g)=>{if(R.cteName!==null)return[];let y=l(R,u.field);return y===null?[]:[{table:R,tableIndex:g,code:y}]}),f=i.filter(R=>c(R,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let R=p[0];return d(R.table,R.tableIndex,u,R.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let m=i.flatMap(R=>{if(R.cteName!==null)return[];let g=s(R,pe(R,u.field));return g===null||g===""?[]:[{appId:R.appId,owner:g}]}),E=OR(m);throw E.length>0?new Error(Dc(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function oo(e,t,n,r){io.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await uw(e,t,n,r),c=Nd(e,l,bd);c&&io.set(e,c);return}if(!kt(e))return;if(i.type==="NONE"){Go(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Nr(e,t,n,r)}function cw(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function up(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?cn({...e,orderBy:[]}):cn(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function LR(e,t){throw e.reasons.size>0&&t instanceof Et&&!t.completeInputWrapped?new Et(cw(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function xc(e,t){try{return await t()}catch(n){LR(e,n)}}function qe(e){return e?.type==="BOOLEAN"&&e.value===!1}function pw(e){return e.from.appId===0&&e.from.cteName===Le}function Ns(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Ns(e.left)||Ns(e.right):e.type==="STRING_FUNC"?cp(e):!1}function dw(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:zi(e)}function zi(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?cp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?zi(e.left)||zi(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?Ns(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:zi(n))):!1}function cp(e){return e.args.some(t=>dw(t))}function fw(e){for(let t of e.columns)switch(t.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${t.name}`);case"LITERAL_COL":break;case"ARITH_COL":if(Ns(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(cp(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(zi(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 Ew(e,t){if(e.joins.length>0||e.where||ee(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.");fw(e);let n=ec([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=vn(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=es(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function mw(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?MR(e):e,s=Ho(a),l=i?.kind==="CANONICAL_LOCAL"?In(e,e.from):s.fields,c=await dp(e,t,r),d=Ep(e,c),u=e.columns.some(C=>C.type==="CASE_COL")?await Ro(e,t,r,void 0,lp(e)):void 0,p=n.maxRecords??1e4,f=new Set,m=n.onLimitReached??"error",E=n.fetchParallel??1,R=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=p&&!_e(e.where)?g:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let C=await UE({client:t,app:s.app,fields:s.fields,query:Wu(e),offset:e.offset??0,limit:e.limit});S=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(R)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?j(e.where):"";S=await Ve(t.getRecords,s.app,C,l,{parallel:E,maxRecords:p,stopAfter:y,onLimit:m,onTruncate:U=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${U} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${U} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),np(t,e.from.appId)}})}let h=S.map(C=>jt(C,null));R||(h=Qu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Zu(e.columns,void 0,d.row,u,se(n)),se(n)),h=es(h,e.limit,e.offset));let{rows:I,columns:N}=vn(h,e.columns,void 0,d.row,void 0,u,void 0,se(n)),v=await gp(e,I,N,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function Rw(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Ho(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=In(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(R=>!ko(R));if(u.length===0)continue;let p=await X(c,n,r);if(p.length===0)continue;let f=new Set(p.map(R=>R.code)),m=u.filter(R=>!f.has(R));if(m.length>0)throw new Error(`ArgumentError: unknown field code(s): ${m.join(", ")} (APP${c})`);let E=s.get(c);if(E){let R=p.filter(g=>g.inSubtable===!0&&E.has(g.code));for(let g of R){let y=g.subtableCode??"",S=y?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${y}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(y?`APP${c}$${y} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function Um(e){return e.cteName??`APP${e.appId}`}function _R(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function gw(e,t){return ko(t)||e.validCodes.has(t)}function Tc(e,t){return e.table.cteName!==null?e.validCodes.has(t):gw(e,t)}async function yw(e,t,n){let r=[e.from,...e.joins.map(o=>o.table)].filter(o=>o.cteName===null),i=new Map;return await Promise.all([...new Set(r.map(o=>o.appId))].map(async o=>{let a=await X(o,t,n);i.set(o,new Set(a.map(s=>s.code)))})),(o,a)=>{if(o.cteName!==null)return!1;if(o.subtableCode||ko(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(pe(o,a))}}async function vR(e,t,n,r){let i=!1;Mm(e,t,()=>(i=!0,!0)),i&&Mm(e,t,await yw(e,n,r))}function Mm(e,t,n){let r=[e.from,...e.joins.map(m=>m.table)],i=new Map;for(let m of r)for(let E of _R(m))i.set(E,m);let o=e.columns.flatMap(m=>"alias"in m&&m.alias!==null?[m.alias]:[]),a=m=>m.cteName===null||m.cteName===Le?[]:t.get(m.cteName)?.columns??[],s=(m,E)=>m?ve(E,a(m)):void 0,l=m=>{if(r.some(g=>a(g).includes(m)))return m;let E=r.flatMap(g=>{let y=s(g,m);return y===void 0?[]:[y]}),R=[...new Set(E)];if(R.length===1)return r.some(g=>n(g,m))?m:R[0]},c=(m,E,R)=>{if(R&&E===null){let g=ve(m,o);if(g!==void 0)return g}return E===null?l(m)??m:s(i.get(E),m)??m},d=(m,E)=>{let R=m.indexOf(".");if(R<=0)return c(m,null,E);let g=m.slice(0,R),y=m.slice(R+1),S=c(y,g,!1);return S===y?m:`${g}.${S}`};for(let m of e.joins)m.type!=="CROSS"&&(m.on.left.field=c(m.on.left.field,m.on.left.tableAlias,!1),m.on.right.field=c(m.on.right.field,m.on.right.tableAlias,!1));let u=new Set,p=(m,E=!1)=>{if(m===null||typeof m!="object"||u.has(m))return;if(u.add(m),Array.isArray(m)){for(let g of m)p(g,E);return}let R=m;if(!(m!==e&&(R.type==="SELECT"||R.type==="UNION"))){if(R.type==="FIELD"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=g===null?d(R.field,E):c(R.field,g,E)}else if(R.type==="FIELD_REF"&&typeof R.field=="string")R.field=d(R.field,E);else if(R.type==="AGG_GROUP_KEY"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=c(R.field,g,E)}for(let g of Object.values(R))p(g,E)}};for(let m of e.columns)p(m);p(e.where),p(e.having,!0),p(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let m of f.allItems)m.type==="FIELD_NAME"?m.name=d(m.name,!0):p(m);for(let m of e.orderBy)m.key.type==="FIELD_NAME"?m.key.name=d(m.key.name,!0):p(m.key);for(let m of e.columns)if(m.type==="WINDOW_COL"){for(let E of m.partitionBy)E.field=c(E.field,E.tableAlias,!1);for(let E of m.orderBy)E.key.type==="FIELD_NAME"?E.key.name=d(E.key.name,!1):p(E.key)}}function hw(e){let t=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]),n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(!(i.type==="AGG_REF"||i.type==="AGG_ARITH")){if(i.type==="FIELD"&&(i.tableAlias===null||i.tableAlias===void 0)&&typeof i.field=="string"){let o=ve(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function Aw(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function Sw(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=de(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Le)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:Um(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Le)return;let p=await X(d.appId,t,r);s.set(d,{table:d,label:Um(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of _R(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Tc(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=vd(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(m=>!Tc(p,m));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Tc(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function gs(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await gs(e.left,t,n,r,i),await gs(e.right,t,n,r,i);return}await vR(e,n,t,r),await Sw(e,t,n,r);for(let o of Aw(e))await gs(o,t,n,r,i)}}function DR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Zr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Zr(e.where,{tableAlias:e.from.alias}):null}function qi(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?qi(e.left)||qi(e.right):e.type==="GROUP"||e.type==="NOT"?qi(e.expr):!1}var pp=new WeakMap;function Ds(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=OE(e.where,r),o=LE(i,r),a=new Map,s=new Map;for(let[f,m]of o.fetchQueriesByAlias)s.set(f,m);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,Sr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function xs(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,DR(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=Zr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,d]=await Promise.all([Ne(s,t,n),qw(s,t,n)]),u=Tw(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await Fs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(m=>m.name));for(let m of u)d.set(m,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Tw(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function qt(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"&&Cs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Cs(e.right.expr,t);return;case"LOGICAL":qt(e.left,t),qt(e.right,t);return;case"NOT":case"GROUP":qt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Cs(e,t){for(let n of e.branches)qt(n.condition,t)}function Iw(e){let t=[];qt(e.where,t),qt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Cs(n.expr,t);return t}function de(e){return e.alias??e.cteName}function xR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>de(n)===t)}function Us(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function dp(e,t,n){let r=Iw(e);if(r.length===0)return new Map;let i=new Set,o=Us(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=xR(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 Ne(s,t,n)]));return new Map(a)}function $e(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 fp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Dn(t,n)}function Dn(e,t){if(e.type==="FIELD_REF"){t.push($e(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Dn(e.left,t),Dn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Dn(e.left,t),Dn(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Dn(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?Cr(n,t):n.type!=="ARRAY"&&Dn(n,t)}function Cr(e,t){if(e.type==="AGG_REF"){fp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Cr(e.left,t),Cr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Uc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Cr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Ji(n,t)}}function Ji(e,t){if(e.type==="STRING_FUNC"){Uc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ji(e.left,t),Ji(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?Uc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Cr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ji(r,t)}}function km(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;fp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function ww(e){let t=[];for(let n of e)n.type==="AGGREGATE"?fp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Cr(n.expr,t):n.type==="ARITH_COL"?km(n.expr,t):n.type==="STRFUNC_COL"?Uc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ji(n.expr,t):n.type==="CASE_COL"&&km(n.expr,t);return t}var bw=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Nw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":bw.has(e.fieldType)?"string":void 0}async function UR(e,t,n,r){let i=ww(e.columns);if(i.length===0)return;let o=new Set,a=Us(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 m=xR(e,f.tableAlias);m&&m.cteName===null&&o.add(m.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let m of a)o.add(m.appId);let s=new Map(await Promise.all([...o].map(async f=>{let m=await X(f,t,n);return[f,new Map(m.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,m])=>{if(![...c].some(R=>m.get(R)?.fieldType==="STATUS"))return;let E=await Ap(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,m)=>{let E=f.semantics??te(f);return f.fieldType==="STATUS"&&l.has(m)?{...E,optionOrder:l.get(m)}:E};return f=>{let m;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)m=s.get(e.from.appId)?.get(f.field);else{let R=d.find(g=>de(g)===f.tableAlias);if(!R)return;if(R.cteName!==null)return Oe(r?.get(R.cteName),f.field)?.semantics??B("string");m=s.get(R.appId)?.get(pe(R,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),f.field)?.semantics??B("string");m=s.get(e.from.appId)?.get(pe(e.from,f.field))}else{let R=d.flatMap(g=>{if(g.cteName!==null){let S=r?.get(g.cteName);return Eo(S,f.field)!==void 0?[Oe(S,f.field)?.semantics??B("string")]:[]}let y=s.get(g.appId)?.get(pe(g,f.field));return y?[u(y,g.appId)]:[]});return R.length!==1?void 0:R[0]}if(!m)return;let E=f.tableAlias!==null?d.find(R=>de(R)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(m,E?.appId??e.from.appId)}}function pe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function ys(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Ge(e,t){let n=e.semantics??te(e);return{sortKind:Nw(e),fieldType:e.fieldType,semantics:t===void 0?n:rr(n,t,e.code)}}function MR(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function re(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function kR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function ot(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return re("string");if(e==="_pid"||e==="_idx"||e==="$revision")return re("number")}function $n(e,t){return re(bt(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function Pr(e,t){return e.type==="STRING"?re("string"):e.type==="ARRAY"?kR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?it():Bn(e.arg,t):e.func==="GROUP_CONCAT"?re("string"):re("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?re("number"):e.type==="STRING_FUNC"?$n(e,t):e.type==="FIELD_REF"?t($e(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function Ms(e){if(e.length===0)return it();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&zo(n(r.semantics),n(t.semantics)))?e.every(i=>zo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?kR("KSQL_MIXED_UNSUPPORTED"):it()}function Bn(e,t){if(e.type==="FIELD_REF")return t($e(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return re("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return re("string");if(e.type==="STRING_FUNC")return $n(e,t);let n=e.branches.map(r=>Pr(r.result,t));return e.elseResult&&n.push(Pr(e.elseResult,t)),Ms(n)}function FR(e,t){return e.windowKind==="VALUE"?Bn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?re("number"):e.arg.type==="WILDCARD"?it():Bn(e.arg,t):re("number")}function hs(e,t){return{...e??{},displayName:t}}function Cw(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function ao(e,t,n,r,i,o=!1){let a=new Map;Cw(e)&&await Promise.all(Us(e).map(async E=>{if(a.has(E.appId))return;let R=await X(E.appId,n,r);a.set(E.appId,new Map(R.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(E.field);return S?Ge(S,e.from.appId):void 0}let g=s.find(S=>de(S)===E.tableAlias);if(!g)return;if(g.cteName!==null)return Oe(i?.get(g.cteName),E.field);let y=a.get(g.appId)?.get(pe(g,E.field));return y?Ge(y,g.appId):ot(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(i?.get(e.from.cteName),E.field);let g=a.get(e.from.appId)?.get(pe(e.from,E.field));return g?Ge(g,e.from.appId):ot(E.field)}let R=s.flatMap(g=>{if(g.cteName!==null){let h=i?.get(g.cteName);return Eo(h,E.field)===void 0?[]:[Oe(h,E.field)]}let y=a.get(g.appId)?.get(pe(g,E.field)),S=y?Ge(y,g.appId):ot(E.field);return S?[S]:[]});return R.length===1?R[0]:void 0},d=E=>{if(!l)return;let R=s.filter(g=>{if(E.tableAlias!==null&&de(g)!==E.tableAlias)return!1;let y=pe(g,E.field);return a.get(g.appId)?.has(y)===!0||ot(E.field)!==void 0});return R.length===1?R[0].appId:void 0},u=(E,R)=>{let g=d(R);return E&&g!==void 0?{...E,publicSourceApp:g}:E},p=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let R=$e(E),g=u(c(R),R);p.set(E,hs(g,g?.displayName??E))}return p}if(f)for(let E of t){let R=$e(E),g=u(c(R),R);p.set(E,hs(g,g?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,R)=>{let g=f?"alias"in E&&E.alias?E.alias:void 0:t[R];if(!g)return;let y;if(E.type==="FIELD"){let S=$e(E.field);y=u(c(S),S)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?y=re("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?y=re("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(y=Bn(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")y=re("number");else if(E.type==="GROUPING_COL")y=re("number");else if(E.type==="LITERAL_COL")y=re("string");else if(E.type==="SCALAR_VALUE_COL"){let S=E.expr;S.type==="STRING_FUNC"?y=$n(S,c):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?y=re("number"):S.type==="FIELD"?y=c(S):y=re("string")}else if(E.type==="STRFUNC_COL")y=$n(E.expr,c);else if(E.type==="WINDOW_COL")y=FR(E,c);else if(E.type==="CASE_COL"){let S=E.expr.branches.map(h=>Pr(h.result,c));E.expr.elseResult&&S.push(Pr(E.expr.elseResult,c)),y=Ms(S)}else E.type==="SCALAR_SUBQUERY_COL"&&(y=it());p.set(g,hs(y,E.aliasDisplay??g))}),p}function Pw(e,t){let n=he.get(e),r=he.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=Ms([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...m}=u;d=p===void 0?m:{...m,publicSourceApp:p}}else d=it();i.set(o,hs(d,s?.displayName??o))}),i}function Ep(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>de(d)===s.tableAlias);return!c||c.cteName!==null?void 0:ys(c,s.field)??t.get(c.appId)?.get(pe(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:ys(e.from,s.field)??t.get(e.from.appId)?.get(pe(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=ys(c,s.field)??t.get(c.appId)?.get(pe(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var KR=new WeakSet,mp=new WeakMap;function Mc(e){return KR.add(e),e}function Ow(e,t){return mp.set(e,t),t}function GR(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&ee(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function Lw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function _w(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new ws;if(!Lw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=vn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function vw(e,t,n,r,i,o=!0,a,s,l){let c=mp.get(e);if(KR.has(e)&&c!==void 0&&GR(e,c)){let L=await _w(e,t);if(L!==null)return L}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([po(e.where,t,n,r,u,i),po(e.having,t,n,r,u,i)]);let[f,m,E]=await Promise.all([xs(e,t,r),dp(e,t,r),UR(e,t,r,i)]),R=Ep(e,m),g=await Ro(e,t,r,i,Lt(e.having)||lp(e)),y=CR(e,g),S=pp.get(e);if(S&&!Tr(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=S??Ds(e,f)??wn(e,f);Vl(h);let I="joinPlan"in h?h:null,N=I&&Tr(I.joinPlan)?I:null,v=t,C=h.mainCondition,U=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let x=s?s.prefilterWhere:N?null:C,P=N?.queriesByAlias.get(e.from.alias)??"",D=await cg(e.columns,t,n,r,u,i),b=qe(e.where),_=b?Promise.resolve([]):Xi(e,e.from,v,d,p,!0,n.onLimitReached??"error",u,x,N?!1:o,l,P),A=[],w=[];for(let L of e.joins){if(b){A.push({join:L,promise:Promise.resolve([])});continue}let V=L.table.alias?N?.queriesByAlias.get(L.table.alias)??"":"",Q=N?null:L.table.alias?U.get(L.table.alias)??null:null;Q!==null||V!==""?A.push({join:L,promise:Xi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,Q,!0,l,V)}):w.push(L)}let M=a?Promise.resolve(a):lo(e,t,r,i);M.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:V}of A)F.set(L.table.alias,await V);await Promise.all(w.map(async L=>{let Q=await JR(e,L,F,v,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await Xi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,Q)}));let{optionOrders:W,sortKinds:G,semantics:k}=await M,{rows:K,columns:Y}=tc({tables:F,stmt:e,scalarCache:D,optionOrders:W,sortKinds:G,orderSemantics:k,fieldTypeResolver:R.row,fieldSemanticsResolver:g,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:io.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await gp(e,K,Y,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function Dw(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
16
+ UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function kc(e,t,n){Dw(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=he.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),he.set(i,a)}return i}function $R(e,t,n,r){let i=kc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:xw(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&he.set(l,Pw(e,t)),l}async function BR(e,t,n,r,i=!1,o=!1){let a=up(e,n,null);return xc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?BR(e.left,t,s,r,i,o):Jt(Mc(e.left),t,s,r,void 0,i,o,"DERIVED"),Jt(Mc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return $R(l,c,e.all,i)})}function xw(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function VR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function Uw(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(VR);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function Fm(e){return e.columns.map((t,n)=>VR(t)??`__b53_column_${n}`)}function Km(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function WR(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await X(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return Oe(r.get(s.cteName),l);let c=o.get(s.appId)?.get(pe(s,l));return c?Ge(c,s.appId):ot(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>de(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function Yi(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Yi(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:$e(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=$e(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){Yi(r.left,t,!0),Yi(r.right,t,!0);return}for(let i of Object.values(r))Yi(i,t,n)}async function Gm(e,t,n,r,i){let o=await WR(e,n,r,i);e.columns.forEach(c=>Yi(c,o));let a=await ao(e,Fm(e),n,r,i),s=Fm(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function Rn(e){return`${e.appId}:${e.subtableCode??""}`}function HR(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(Rn(r))&&t.set(Rn(r),r);return[...t.values()]}function Mw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function kw(e){let t=new Map,n=r=>{for(let i of r)t.set(Rn(i),null)};for(let r of e){let i=Us(r);for(let s of i){let l=Rn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>de(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(Rn(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=Mw(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(ee(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function Fw(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Kw(e,t,n,r){let i=kw(e),o=await Promise.all(HR(...e).map(async(a,s)=>{let l=await Jt(Fw(a,i.get(Rn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[Rn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:he.get(l)}}]}));return new Map(o)}function $m(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(Rn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function Bm(e,t,n){return e.cteName===null?void 0:Oe(n.get(e.cteName),t)}function Ic(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=Ce(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function Vm(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=de(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function Gw(e,t,n,r,i){let o=e.recursiveSpec,a=Uw(e),s=await Gm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await Gm(o.recursiveTerm,a,t,i,l);a.forEach((G,k)=>{let K=s.get(G),Y=c.get(G);if(!K||!Y||!Km(K,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=Vm(e.name,o.recursiveTerm),u=await WR(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:de(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:de(d.source),field:d.sourceField});if(!p||!f||!Km(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let m=await Kw([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let G of m.values())E.set(G.name,G.table);let R=$m(o.seed,m),g=$m(o.recursiveTerm,m),y=await St(R,t,n,E,i,!0,!0),S=kc(y,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...re("string"),displayName:h.markColumn});let v=h?[...a,h.markColumn]:[...a],C=[],U=[],x=new Set([...S.warnings??[],...[...m.values()].flatMap(G=>G.warnings)]),P=new Ka(e.name,Ht(n)),D=G=>{P.addRow(),C.push(G)};for(let G of S.rows){let k=h?String(G[h.column]??""):"",K=h?{...G,[h.markColumn]:h.defaultValue}:G;D(K),U.push({row:G,path:h?[k]:[]})}let b=Vm(e.name,g),_=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!_)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=Bm(b.self,b.selfField,l)??Bm(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let G of _.rows){let k=String(G[b.sourceField]??""),K=Ic(k,A.semantics),Y=w.get(K);Y?Y.push(G):w.set(K,[G])}let M=w.has(Ic("",A.semantics)),O=0,F=!1;for(;U.length>0;){O++;let G=[];for(let k of U){let K=String(k.row[b.selfField]??"");!F&&K===""&&M&&(x.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let Y=w.get(Ic(K,A.semantics))??[];for(let Q of Y){let Ae=String(Q[b.sourceField]??"");$t("=",K,Ae,A.semantics)&&P.addExpansion()}if(Y.length===0)continue;let $=new Map(E);$.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let L=await St(g,t,n,$,i,!0,!0);for(let Q of L.warnings??[])x.add(Q);let V=kc(L,a,s);V.rows.length>0&&P.observeDepth(O);for(let Q of V.rows){if(!h){D(Q),G.push({row:Q,path:[]});continue}let Ae=String(Q[h.column]??""),ct=k.path.some(oe=>$t("=",oe,Ae,I.semantics));D({...Q,[h.markColumn]:ct?h.markValue:h.defaultValue}),ct||G.push({row:Q,path:[...k.path,Ae]})}}U=G}let W={type:"SELECT",rows:C,columns:v,rowCount:C.length,warnings:[...x]};return he.set(W,N),W}async function Rp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&on(e))return Jt(an(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await Gw(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await ag(t):c.query.type==="DESCRIBE"?d=await sg(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=YR(c.query):d=await St(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:he.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await St(e.query,t,n,a,r,o);return sp(l,[...s])}function YR(e){let t=da(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return he.set(n,new Map([[e.columnAlias,r]])),n}async function St(e,t,n,r,i,o=!1,a=!1){if(a||await gs(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([St(e.left,t,n,r,i,o,!0),St(e.right,t,n,r,i,o,!0)]);return $R(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Le||e.joins.some(c=>c.table.cteName!=null)))return Jt(e,t,n,i,r,o,!1,"DERIVED");let l=await $w(e,t,n,r,i);return o&&he.set(l,await ao(e,l.columns,t,i,r)),l}async function $w(e,t,n,r,i){await oo(e,t,i,r);let o=io.get(e),a=await Nr(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let L=de($);return s.add(L),{...$,alias:L}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(L=>L.table)]){let L=de($);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let d=$=>{let L=r.get($);if(!L)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return L};for(let $ of[e.from,...e.joins.map(L=>L.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await kn(e,t,i,r,bR(e)),p=NR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,m=new Set,E=n.fetchParallel??1;await Promise.all([po(e.where,t,n,i,m,r),po(e.having,t,n,i,m,r),lg(e,t,n,i,m,r)]);let R=we(e.where,u);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(R)}).`);let g=await lo(e,t,i,r),y=bs(e)?(e.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:e,staticMode:"FULL_SCAN",whereCapability:R.capability,whereReasons:R.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:_e(e.where)}):null,S=up(e,n,y),h=S.effectiveOptions,[I,N,v]=await Promise.all([xs(e,t,i),dp(e,t,i),UR(e,t,i,r)]),C=Ep(e,N),U=await Ro(e,t,i,r,Lt(e.having)||lp(e)),x=CR(e,U),P=Ds(e,I)??wn(e,I);Vl(P);let D=t,b=await cg(e.columns,t,h,i,m,r),_=Promise.resolve(g);_.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);A.set(e.from.alias,$.rows.map(Wm)),w.set(e.from.alias,$.columns)}else{let $=await xc(S,()=>Xi(e,e.from,D,f,E,!0,h.onLimitReached??"error",m,P.mainCondition,R.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,$)}let M=e.joins.map($=>xc(S,async()=>{if($.table.cteName!=null){let L=d($.table.cteName);A.set($.table.alias,L.rows.map(Wm)),w.set($.table.alias,L.columns)}else{let L=$.table.alias?P.joinConditions.get($.table.alias)??null:null,Q=await JR(e,$,A,D,f,E,h.onLimitReached??"error",m,i,r,L,a)??await Xi(e,$.table,D,f,E,!1,h.onLimitReached??"error",m,L,!0,a);A.set($.table.alias,Q)}}));await Promise.all(M);let{optionOrders:O,sortKinds:F,semantics:W}=await _,G=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:k,columns:K}=tc({tables:A,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:W,fieldTypeResolver:C.row,fieldSemanticsResolver:U,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:x,aggregateSortKindResolver:v,appliedKlikes:P.appliedKlikes,sourceColumns:G,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),Y=await gp(e,k,K,t,i);return sp({type:"SELECT",rows:k,columns:Y,rowCount:k.length,warnings:[...m]},p)}async function gp(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await X(e.from.appId,r,i);return kE(o,e.from.subtableCode,()=>Fs(e.from.appId,r,i))}function Wm(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Xi(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=In(e,t,d),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),np(n,t.appId),hE(e,t,o))throw new Et(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let g=o&&c?Ld(e,t.appId).query:"",y=[l!==null?j(l):"",u].filter(N=>N!==""),S=y.length>1?y.map(N=>`(${N})`).join(" and "):y[0]??"",h=g&&S?`(${g}) and (${S})`:g||S;return(await mt(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=o&&c&&e.joins.length===0&&e.where!==null&&mp.get(e)?.capability==="EXACT_PUSHDOWN"&&!Ft(e.where)?j(e.where):"",R=(await mt(n.getRecords,t.appId,m,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return tm(R,t.subtableCode)}var br=50;function Bw(e){let t=Ce(e);return t!==null?JSON.stringify(t):e}function Fc(e){return JSON.stringify(e)}function gn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Bw(n):n))}var Hm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function Ym(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function wc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${Hm[t.condition]} \u2014 ${Ym(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${Hm[o]} \u2014 ${Ym(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function Vw(e,t){if(t==="DOCUMENT_ONLY")return[wc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[wc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(wc("native UPSERT statement/data eligibility",e.statement,t)),n}function Ww(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function Hw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=Cp(e)}catch{}return ks({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Or.has(e)},fieldInfos:t,rowKeyValues:r})}async function jR(e,t,n){let r=Ww(e);if(!r)return[];let i=await zw(r.appId,t);return Vw(Hw(r,i,n),n.surface)}function ks(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let m=gn([...f],[n.fieldType==="NUMBER"]);if(p.has(m)){l=!1;break}p.add(m)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(E=>d[E].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let m=p.filter(E=>d[E].state==="UNKNOWN").map(E=>({condition:E,reason:d[E].reason}));return m.length>0?{status:"UNKNOWN",unknownConditions:m}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function go(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function yp(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:go(t),enabled:oR(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Or.has(e)},fieldInfos:r,rowKeyValues:i}}var Ps=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function zR(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new Ps;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new Ps;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function qR(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new ge("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let m={};for(let[E,R]of Object.entries(p))E!==t&&(m[E]=R);return{updateKey:{field:t,value:r[l+f][0]},record:m}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=zR(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function Lr(e,t){let n=e.raw.get(Fc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(gn(t,e.numericKey))}async function _r(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(g,y,S)=>{let h=g.get(y);(h===void 0||S>h)&&g.set(y,S)},p=(g,y)=>{u(d.raw,Fc(g),y),c.some(Boolean)&&u(d.normalized,gn(g,c),y)},f=new Set,m=[],E=new Set;for(let g of n){let y=Fc(g);E.has(y)||(E.add(y),g.some(S=>S==="")?m.push(g):f.add(g[0]))}let R=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let g of yo([...f],br)){let y=`${t[0]} in (${g.map(so).join(",")})`,S=await Ve(r.getRecords,e,y,R,{maxRecords:s,parallel:l});for(let h of S){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>hp(h[N]?.value)),I))}}for(let g of m){let y=t.map((I,N)=>`${I} = ${so(g[N])}`).join(" and "),S=a?[...new Set(["$id",...a])]:["$id"],h=await Ve(r.getRecords,e,y,S,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(g,Yw(h))}}return d}function Yw(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function hp(e){return typeof e=="string"?e:e==null?"":String(e)}function so(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function yo(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var jw=6,As=Ga*jw;async function JR(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,m=t.on.right.tableAlias;if(!f||!m)return null;let E,R,g;if(f===t.table.alias&&m!==t.table.alias)E=m,R=t.on.right.field,g=t.on.left.field;else if(m===t.table.alias&&f!==t.table.alias)E=f,R=t.on.left.field,g=t.on.right.field;else return null;let y=n.get(E);if(!y)return null;let S=[e.from,...e.joins.map(A=>A.table)].find(A=>de(A)===E),h=(await X(t.table.appId,r,l)).find(A=>A.code===pe(t.table,g)),I=h?Ge(h,t.table.appId):ot(g),N;if(S?.cteName!==null&&S?.cteName!==void 0)N=Oe(c?.get(S.cteName),R);else if(S){let A=(await X(S.appId,r,l)).find(w=>w.code===pe(S,R));N=A?Ge(A,S.appId):ot(R)}let v=[],C=!1;for(let A of y){let w=A[R]?.value,M=hp(w);(w==null||M.length===0)&&(C=!0),v.push(M)}let U=ku({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:y.length,values:v,hasEmptyValue:C,maxInKeys:As});if(U.kind==="EMPTY_SOURCE")return[];if(U.kind==="FALLBACK"){if(U.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${As} \u4EF6\uFF09\u3002`)}return null}if(U.kind==="RANGE_CANDIDATE")return null;let x=Mu(U,g,so);if(x.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${As} \u4EF6\uFF09\u3002`),null;let P=In(e,t.table,u),D=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),np(r,t.table.appId)},b=[],_=new Set;for(let A of x){let M=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,A),O=await mt(r.getRecords,t.table.appId,M,P,{parallel:o,maxRecords:i,onLimit:a,onTruncate:D});for(let F of O.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(W)||(_.add(W),b.push(F))}}return b}var Kc=new Map,Gc=new Map,$c=new Map,Os=new Map,Bc=new Map,Vc=new Map;function XR(e){Kc.delete(e),Gc.delete(e),$c.delete(e),Os.delete(e),Bc.delete(e),Vc.delete(e)}function Hn(e,t,n){return e.get(t)?.get(n)}function vr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function X(e,t,n){let r=Hn(Os,n,e);if(r)return r;let i=t.getFields(e);return vr(Os,n,e,i),i}async function zw(e,t){let n=Hn(Os,t,e);return n?await n:null}async function xt(e,t,n){let r=Hn(Vc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return vr(Vc,n,e,i),i}async function Fs(e,t,n){let r=Hn(Bc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return vr(Bc,n,e,i),i}async function Ap(e,t,n){let r=await Fs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ne(e,t,n){let r=Hn(Kc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return vr(Kc,n,e,o),o}async function Wc(e,t,n){let r=Hn(Gc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return vr(Gc,n,e,o),o}async function qw(e,t,n){let r=await Wc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function jm(e,t,n){let r=Hn($c,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return vr($c,n,e,o),o}function Jw(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function Xw(e,t,n,r){let i=Jw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?Ge(E,e.from.appId):void 0}let f=o.find(E=>de(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return Oe(r?.get(f.cteName),u.field);let m=s.get(f.appId)?.get(pe(f,u.field));return m?Ge(m,f.appId):ot(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),u.field);let f=s.get(e.from.appId)?.get(pe(e.from,u.field));return f?Ge(f,e.from.appId):ot(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let R=r?.get(f.cteName),g=Oe(R,u.field);return g?[g]:[]}let m=s.get(f.appId)?.get(pe(f,u.field)),E=m?Ge(m,f.appId):ot(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l($e(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=re("number");else if(u.type==="WINDOW_COL")p=FR(u,l);else if(u.type==="GROUPING_COL")p=re("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=re("string");else if(u.type==="STRFUNC_COL")p=$n(u.expr,l);else if(u.type==="SCALAR_SUBQUERY_COL")p=it();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(m=>Pr(m.result,l));u.expr.elseResult&&f.push(Pr(u.expr.elseResult,l)),p=Ms(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Bn(u.arg,l)):p=u.func==="GROUP_CONCAT"?re("string"):re("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=ve(u,c.keys()),f=(p===void 0?void 0:c.get(p))??l($e(u))?.semantics;if(!f){let E=$e(u);E.tableAlias===null&&a.has(E.field)&&d.set(u,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let m=f;if(f.fieldType==="STATUS"&&f.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Fs(f.source.appId,t,n);E.enable&&E.states!==null&&(m={...f,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}d.set(u,m)}return d}async function lo(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([Qw(e,t,n),Zw(e,t,n),Xw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Qw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Wc(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Wc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function Zw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await jm(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await jm(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function Sp(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var eb=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function tb(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||eb.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Ue(e,t,n,r){let i=await X(e,n,r);return tb(e,t,i),i}async function He(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?xt(e,r,i):void 0}function st(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=ze(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function nb(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await Ti({statement:e,fieldInfos:o,dmlMaxRows:lt(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});return _b(e,a,o)}async function rb(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await QR(e,t,n,r,i);return Db(e,a,o)}async function QR(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=new Map(o.map(R=>[R.code,R.fieldType])),s=Cp(e),l=new Set;for(let R of s){let g=gn(R,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(g))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(g)}let c=await _r(e.appId,e.keyFields,s,t,n,a),d=s.map(R=>Lr(c,R)),u=new Map,p=[...new Set(d.filter(R=>R!==void 0))],f=["$id","$revision",...o.filter(R=>!R.inSubtable&&R.fieldType!=="FILE").map(R=>R.code)];for(let R of yo(p,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${R.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let S=Number(y.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,y)}}let m=d.map((R,g)=>({sourceRowIndex:g,...R===void 0?{}:{targetId:R,snapshot:u.get(R)}})),E=await pE({statement:e,matches:m,fieldInfos:o,dmlMaxRows:lt(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function ib(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Ue(e.appId,e.fields,t,r),o=await Ti({statement:e,fieldInfos:i,dmlMaxRows:lt(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),loadNumberPrecision:()=>xt(e.appId,t,r)}),a=vu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Ks(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await RE(o,t,a);return{...s,diagnostic:tt(a,s)}}async function ob(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await QR(e,t,n,r,1),o=Du(i);if(n.confirm){let s=Ks(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ge("UPDATE",i.guards.parentRows)}let a=await gE(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:tt(o,a)}}function ab(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function Ks(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=ab(n?fs(n):[],r?fs(r):[]),a=sb(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=fs(n),f=fs(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(m=>m.targetKind==="SUBTABLE").reduce((m,E)=>m+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((m,E)=>m+E.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(m=>m.targetKind==="SUBTABLE").reduce((m,E)=>m+(E.changedCount??0),0),addedSubtableRows:f.reduce((m,E)=>m+E.appendRows,0),tables:f,deletedRows:f.reduce((m,E)=>m+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function fs(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Kn(t,"APPEND"),r=Kn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Kn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function sb(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:Kn(n,"ADD"),removedValues:Kn(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Tp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return nb(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return rb(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await rg(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Ip(e,t,n,r,i,o)).result}var Ls=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Ip(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await Ue(e.appId,d,t,r);e.type==="UPDATE"&&await mn(e,t,r);let p=new Map(u.map(_=>[_.code,_])),f=await He(e.appId,d,u,t,r),m=Ct(u,c),E=rm(m),R=(await lb(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),g=R.filter(_=>_.mode==="update"),y=e.type==="UPDATE"?cb:e.type.startsWith("UPSERT")?_=>pb(_,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,h=g.length>0&&S!==void 0,I=new Map;if(h){Iu(g,d,u);let _=await S({appId:e.appId,candidates:g,fields:E}),A=new Map;for(let w of g){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let M=_.get(w.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let O=im(M,w.record??{});A.set(w.rowNumber,O)}f===void 0&&[...A.values()].some(w=>Pn(w,m))&&(f=await xt(e.appId,t,r));for(let w of g){let M=A.get(w.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,On(M,m,f,o,w.rowNumber,l))}}let N=wu(R,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:v,invalidRows:C,invalidRowNumbers:U}=N;if(h){let _=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));v=[],U=new Set;for(let A of R){let w=_.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&U.add(A.rowNumber);continue}let M=I.get(A.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=om({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:M.normalizedRecord,preErrors:w.preErrors,postImageErrors:M.errors,checkErrors:w.checkErrors});A.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)U.add(F)}C=U.size}let x=[...c,...gr],P={type:"VALIDATION",operation:l,validatedRows:R.length,validRows:R.length-C,invalidRows:C,errorCount:v.length,columns:x,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},D=new Map;for(let _ of c){if(_==="$id"){D.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(_);A&&D.set(_,Ge(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let _ of gr)D.set(_,re(b.has(_)?"number":"string"));return Wn.set(P,D),{result:P,candidates:R,invalidRowNumbers:U,columnMeta:D}}async function Hc(e,t,n,r,i,o){let a=await Ip(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Dt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??at,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Ls(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(m=>!a.invalidRowNumbers.has(m.rowNumber));if(n.confirm){let m=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,m))throw new ge(m,c.length)}let d={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let m=[];for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(g=>g.record)});m.push(R.ids)}return{type:"INSERT",createdIds:m,insertedCount:m.flat().length,...d}}if(e.type==="UPDATE"){let m=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<m.length;E+=100)await t.putRecords({app:e.appId,records:m.slice(E,E+100)});return{type:"UPDATE",updatedCount:m.length,...d}}let u=c.filter(m=>m.mode==="create"),p=c.filter(m=>m.mode==="update").map(m=>{if(m.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:m.targetId,record:m.record}}),f=0;for(let m=0;m<u.length;m+=100){let E=await t.postRecords({app:e.appId,records:u.slice(m,m+100).map(R=>R.record)});f+=E.ids.length}for(let m=0;m<p.length;m+=100)await t.putRecords({app:e.appId,records:p.slice(m,m+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function lb(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ZR(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")zm(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),Vn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?Vt(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let h=await Gs.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&h.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${h.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(I&&new Set(h.columns).size!==h.columns.length)throw xe("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");zm(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(v=>{let C=N?.get(v),U=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,U]})),Vn(e,p),l=h.rows.map(v=>h.columns.map(C=>v[C]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,v)=>d&&!d[I]?.has(N)?[]:[[N,h[v]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,v)=>[N,et(h[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let m=new Map([...a].map(([h,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>et(h.payload.get(I)))),R=e.keyFields.map(h=>m.get(h)==="NUMBER"),g=new Map;for(let h of E){let I=gn(h,R);g.set(I,(g.get(I)??0)+1)}let y=Or.has(e);if(y&&[...g.values()].some(h=>h>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 S=await _r(e.appId,e.keyFields,E,n,r,m);return f.forEach((h,I)=>{let N=E[I],v=Lr(S,N);h.mode=v===void 0?"create":"update",v!==void 0&&(h.targetId=v),e.keyFields.forEach((C,U)=>{N[U]===""&&h.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(gn(N,R))??0)>1&&h.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 wp(e){return e.checkGroups?mr(e.checkGroups):[]}function zm(e,t){let n=new Set(t);for(let r of wp(e)){if(r.tableAlias!==null)throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var ub=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Vn(e,t){if(e.checkGroups)for(let n of Df(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(ub.has(i??""))throw xe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function ZR(e,t,n,r,i,o){if(e.from)return fb(e,e.from,t,n,r,i,o);await ug(e.assignments,t,n,r);let a=await Ne(e.appId,t,r),s=eg(e,a);Vn(e,Yc(a,e.appId));let l,c=new Map,d=new Map;if(ba(e)){let u=au(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await mt(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=Ss(f.records),c=d,l=lu(e,f.records,a,se(n)).flatMap(m=>m.records)}else{let u=fi(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await mt(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=Ss(f.records),c=d,l=Ei(e,[...c.keys()],a).flatMap(m=>m.records)}else if(o){let p=await mt(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=Ss(p.records),l=Ei(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await Ci(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ei(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:db(c.get(u.id),e.appId),evaluationFieldTypes:Yc(a,e.appId)}))}function Ss(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function cb(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function pb(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Et(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of yo(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function eg(e,t){if(e.from)return[];let n=new Set;for(let r of wp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw xe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw xe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function db(e,t){if(!e)return{};let n=jt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Yc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function fb(e,t,n,r,i,o,a){let s=await wg(e,t,n,i,o);Vn(e,s.evaluationTypes);let l=await tg(e,t,n,r,i,o,a),c=await Ne(e.appId,n,i),d=cu(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?Ss(l.map(f=>f.target)):new Map;return d.sort((f,m)=>f.id-m.id).map((f,m)=>({rowNumber:m+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:hN(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Eb=br,mb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function tg(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),N=C=>ve(C,I?.columns??[])??C;t.joinKeyField=N(t.joinKeyField);for(let C of e.assignments)C.value.type==="SOURCE_FIELD"&&C.value.alias===t.alias&&(C.value.field=N(C.value.field));let v=C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){C.forEach(v);return}let U=C;U.type==="FIELD"&&U.tableAlias===t.alias&&typeof U.field=="string"&&(U.field=N(U.field)),Object.values(U).forEach(v)};v(e.checkGroups)}let s=await Rb(e,t,n,i),l=await wg(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await gb(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=qm(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let m=r.maxRecords??1e4,E=[...new Set([...Ub(e),...l.targetFields,...a??[]])],R=t.targetFilter===null?"":fi({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,S=0;for(let I of yo([...f.values()],Eb)){let N=`${t.targetJoinField} in (${I.map(so).join(",")})`,v=R?`(${N}) and (${R})`:N,C=await mt(n.getRecords,e.appId,v,E,{maxRecords:m,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=C.records.length,S>m)throw new Et(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let U of C.records){let x=U.$id?.value;if(typeof x!="string"||x==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(x)||(y.add(x),g.push(U))}}let h=[];for(let I of g){let N=I[t.targetJoinField]?.value,v=qm(N,s,"target");if(v===null)continue;let C=p.get(v);C!==void 0&&h.push({target:I,source:C})}return h}async function Rb(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await X(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function gb(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(Eo(d,u)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Ne(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(mb.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await mt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>jt(d,null))}function qm(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Ce(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function ho(e,t,n,r,i){let o=await Ip(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(m=>m.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function yb(e,t,n,r){if(e.applyBlocks?.length)return ib(e,t,n,r);if(e.checkGroups?.length)return ho(e,t,n,r);if(e.subtableCode)return Fb(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=await Ne(e.appId,t,r),s=di(e,a,se(n));st(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function hb(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Le},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function ng(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=pm(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!k.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await X(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),m=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await xt(e.appId,t,r):void 0,E=await ls(o,new Map),R=e.source.kind==="JSON"?Rm(e.source,E,u,n.maxRecords??1e4):gm(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await tp(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Sm(R,u,p,m,g);if(e.source.kind==="CSV")return Ab(e,R,y,p,t,n,i);fc(y,e.rejectLimit);let S=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],h=mc(y.errors,S),I=[...S,...Ec],N=y.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-N,invalid:N,mutationCandidates:y.parents.filter(k=>k.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Dt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??at,new Map),e.validateOnly)return C;if(Im(R),y.errors.length>0&&!e.onErrorSkip){let k=y.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Dt(i,e.errorTable,I,h,n.tempTableMaxRows??at,new Map)}let U=y.parents.filter(k=>k.valid),x=new Map(p.map(k=>[k.code,k.fieldType])),P=U.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(L=>x.get(L)==="NUMBER"),K=new Set,Y=U.map(L=>e.keyFields.map(V=>String(L.top[V]?.value??"")));for(let L of Y){let V=gn(L,k);if(K.has(V))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(V)}let $=await _r(e.appId,e.keyFields,Y,t,n,x);Y.forEach((L,V)=>{P[V]=Lr($,L)})}let D=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),b=new Map,_=P.filter(k=>k!==void 0);for(let k of yo([...new Set(_)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...D]});for(let Y of K.records){let $=Number(Y.$id?.value),L=Number(Y.$revision?.value);Number.isFinite($)&&b.set($,{id:$,...Number.isFinite(L)?{revision:L}:{},record:Y})}}let A=wm(U,P,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some(K=>K.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new ge(e.keyFields?"UPDATE":"INSERT",A.length)}let M=k=>new Map(Object.entries(k).map(([K,Y])=>[K,Y.value])),O=k=>Tm(M(k.top),new Map([...k.subtables].map(([K,Y])=>[K,Y.map($=>({values:M($)}))]))),F=A.filter(k=>k.mode==="INSERT"),W=A.filter(k=>k.mode==="UPDATE"),G=[];for(let k=0;k<F.length;k+=100){let K=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(O)});G.push(K.ids)}for(let k=0;k<W.length;k+=100)await t.putRecords({app:e.appId,records:W.slice(k,k+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:G.flat().length,updatedCount:W.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:G,insertedCount:G.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Sb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:hb(),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};Or.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Tp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Dt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??at,Wn.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",Hc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?Lp(s,t,n,r,i):Np(s,t,n,r,i));return c(d)}async function Ab(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");bm(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=yc(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await Ve(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let _=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(_)){p.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let M=b[w]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:w}),f.set(O.id,F)}}}}}let m=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,_)=>{let A=[...b.errors];for(let M of l.errors[_])A.push({operation:"UPDATE",parentRow:b.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[_].top});let w=m[_];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...b,valid:A.length===0,errors:A}}),R=Nm(t.records,E,m,p,f),g=R.flatMap(b=>[...b.errors]),y=new Set(R.filter(b=>!b.valid).map(b=>b.parentRow)),S={...n,parents:E,errors:g,invalidParentRows:y};fc(S,e.rejectLimit);let h=R.filter(b=>b.valid),I=R.flatMap(b=>b.tables),N=(b,_)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[_]),0),v=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(_=>_.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.rowIdNotFound,0),invalidParents:y.size,parents:h.map(b=>({parentRow:b.parentRow,mode:"UPDATE",targetId:b.targetId,tables:b.tables}))},U=[...new Set(e.targets.flatMap(b=>b.kind==="FIELD"?[b.field]:b.children))],x=mc(g,U),P=[...U,...Ec];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Dt(a,e.validationErrorTable,P,x,o.tempTableMaxRows??at,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-y.size,invalidRows:y.size,errorCount:x.length,columns:P,errors:x,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:y.size,mutationCandidates:h.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let b=g[0];throw new Error(`DmlValidationError: ${b.code} ${b.message} (row=${b.parentRow}, field=${b.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Dt(a,e.errorTable,P,x,o.tempTableMaxRows??at,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ge("UPDATE",h.length)}let D=b=>new Map(Object.entries(b).map(([_,A])=>[_,A.value]));for(let b of h){let _=Rc(D(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:D(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:_}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function Sb(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await Ue(e.appId,e.fields,n,i),s=await He(e.appId,e.fields,a,n,i),l=await ls(t,new Map),c=cc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await tp(r,e.source,c.receipt);let d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=yc(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(C=>C!==null))];for(let C=0;C<f.length;C+=100){let U=f.slice(C,C+100),x=await n.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id"]});for(let P of x.records){let D=P.$id?.value;typeof D=="string"&&D!==""&&p.add(D.replace(/^0+(?=\d)/,""))}}let m=new Map(a.map(C=>[C.code,C])),E=new Map(e.fields.map(C=>[C,m.get(C)?.fieldType??"SINGLE_LINE_TEXT"])),R=c.rows.map((C,U)=>{let x=u.normalized[U],P=[...c.importRowErrors?.[U]??[],...u.errors[U]];return x!==null&&!p.has(x)&&P.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${x} does not exist in APP${e.appId}`}),{rowNumber:U+1,operation:"UPDATE",mode:"update",...x!==null&&p.has(x)?{targetId:Number(x)}:{},payload:new Map([[e.recordNumberSourceHeader,d[U]],...e.fields.map(D=>[D,C[D]??""])]),preErrors:P,record:{},evaluationRow:C,evaluationFieldTypes:E}}),g=[e.recordNumberSourceHeader,...e.fields],y=wu(R,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),S=[...g,...gr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:S,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Dt(o,e.validationErrorTable,S,y.errors,r.tempTableMaxRows??at,new Map),h}if(!e.onErrorSkip&&y.invalidRows>0){let C=y.errors[0];throw new Error(`DmlValidationError: ${C.$err_code} ${C.$err_message} (row=${C.$err_row}, field=${C.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Dt(o,e.errorTable,S,y.errors,r.tempTableMaxRows??at,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Ls(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=R.filter(C=>!y.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ge("UPDATE",I.length);let N=I.map(C=>({id:C.targetId,record:C.record}));for(let C=0;C<N.length;C+=100)await n.putRecords({app:e.appId,records:N.slice(C,C+100)});let v={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:c.importAudit}),v}async function Tb(e,t,n,r,i,o){let a=Or.get(e);if(!a){let E=i&&i.size>0?await St(e.select,t,n,i,r,!0):await Jt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:he.get(E)}}let s=await ls(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?uc(a.source,s,d,l):cc(a.source,s,l,e.fields,o);if(await tp(n,a.source,u.receipt),a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=Cm(a.source.projection),f=new Map(i??[]);f.set(gc,u);let m=await St(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:m.rows,columns:m.columns,columnMeta:he.get(m)}}var Gs={materialize:Tb};function bp(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function Np(e,t,n,r,i){if(e.checkGroups?.length)return ho(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Gs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(bp(s),c.length!==e.fields.length){let f=c.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${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new ge("INSERT",l.length);let d=await Ne(e.appId,t,r),u=l.map((f,m)=>{let E={};return e.fields.forEach((R,g)=>{if(s.importPresence&&!s.importPresence[m]?.has(R))return;let y=f[c[g]]??"";E[R]={value:Sp(y,d.get(R))}}),E});u.forEach(f=>st([f],e.fields.filter(m=>m in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let m=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:m});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function jc(e,t,n,r,i){if(e.applyBlocks?.length)return rg(e,t,n,r);if(e.checkGroups?.length&&qe(e.where)){let m=await Ue(e.appId,e.assignments.map(R=>R.field),t,r);await He(e.appId,e.assignments.map(R=>R.field),m,t,r);let E=await Ne(e.appId,t,r);return eg(e,E),Vn(e,Yc(E,e.appId)),await mn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ho(e,t,n,r,i);if(e.subtableCode)return await mn(e,t,r),Kb(e,t,n,r);let o=await Ue(e.appId,e.assignments.map(m=>m.field),t,r),a=e.assignments.map(m=>m.field),s=await He(e.appId,a,o,t,r);if(await mn(e,t,r),qe(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return xb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await ug(e.assignments,t,n,r);let c=await Ne(e.appId,t,r);if(ba(e)){let m=au(e),R=(await mt(t.getRecords,m.app,m.query,[...m.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=lu(e,R,c,se(n));if(st(g.flatMap(y=>y.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(R.length,"UPDATE"))throw new ge("UPDATE",R.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:R.length}}let d=fi(e),p=(await Ci(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ei(e,p,c);if(st(f.flatMap(m=>m.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ge("UPDATE",p.length);for(let m of f)await t.putRecords(m);return{type:"UPDATE",updatedCount:p.length}}async function rg(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Kt(e.where))return Ib(e,t,n,r,i);let o=await X(e.appId,t,r),a=Wt(e,o),s=Ca(e,o),l=gu(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);_a(c.records[0]);let u=qf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=Ct(o,e.assignments.map(I=>I.field)),f=Pn(u.postImage,p)?await xt(e.appId,t,r):void 0,m=On(u.postImage,p,f,i);if(!e.validateOnly&&m.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:m.columns,errors:m.errors})}`);let E=lt(n.dmlMaxRows,"dmlMaxRows",Xt),R=lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),g=u.parentRows>E||u.changedSubtableRows>R;if(e.validateOnly){let I=wi({plans:[u],records:yi(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:m.invalidRows===0?1:0,invalidRows:m.invalidRows===0?0:1,errorCount:m.errorCount,columns:[...m.columns],errors:m.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:uo(I.branches[0]),guards:co(I.branches[0]),deletedRows:{total:u.tables.reduce((v,C)=>v+C.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return Wn.set(N,$s(m.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>R)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${R}).`);let y=Oa(u,m.normalizedRecord),S=yi(y),h=wi({plans:[y],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}});if(n.confirm){let I=Ks(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new ge("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:tt(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function Ib(e,t,n,r,i){let o=lt(n.dmlMaxRows,"dmlMaxRows",Xt),a=lt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),s=await X(e.appId,t,r),l=Wt(e,s),c;if(_s(e))c=await Cb(e,t,n,s,r);else{let f=Ca(e,s),m=fi(e).query,E=o+1;c=await Ve(t.getRecords,e.appId,m,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let d=await Ua({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});if(e.validateOnly)return vb(e,d,s);zd("phase15b",e);let u=wi(d);if(n.confirm){let f=Ks(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new ge("UPDATE",d.guards.parentRows)}let p=await mE(d,t,u);return{...p,diagnostic:tt(u,p)}}function _s(e){return(e.applyBlocks?.length??0)>0&&!Kt(e.where)&&(tn(e.where)||_e(e.where))}function wb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&_s(t)&&_e(t.where)}var bb=`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
17
17
  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
18
- 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 db(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${pb}`)}async function fb(e,t,n,r,i){let o=r.filter(m=>!m.inSubtable),a=new Map(o.map(m=>[m.code,m])),s=new Map(o.map(m=>[m.code,m.fieldType])),l=new Map(o.flatMap(m=>m.optionOrder?[[m.code,new Set(Object.keys(m.optionOrder))]]:[])),c=xu(e.where,{fieldTypes:s,fieldOptions:l});db(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(Aa(e,r));for(let m of Eb(e.where))u.add(m);let p=await mb(e.appId,e.where,a,t,i);return(await Ge(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(m=>({snapshot:m,row:Vt(m,null)})).filter(({row:m})=>ce(e.where,m,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:m})=>m)}function Eb(e){return Qc(e)}async function mb(e,t,n,r,i){let s=[...Rb(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await dp(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return er(ne({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??ne(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return er(f,e,u.code)}}}function Rb(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function gb(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...It(n,e.fields).payloadFields,...yi],a=t.guards.parentRows,s=Iu(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:io(l),guards:oo(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Gn.set(c,Ds(o,n,e.appId)),c}function yb(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...It(n,e.assignments.map(c=>c.field)).payloadFields,...yi],s=Si(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:io(s.branches[0]),guards:oo(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return Gn.set(l,Ds(a,n,e.appId)),l}function hb(e,t,n){let r=t.create.validations.flatMap(m=>m.errors),i=t.update.validations.flatMap(m=>m.errors),o=[...r,...i].map(m=>({...m,$err_operation:"UPSERT"})),a=new Set(o.map(m=>m.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...It(n,e.fields).payloadFields,...yi],l=wu(t),c=l.branches.find(m=>m.branch==="insert"),d=l.branches.find(m=>m.branch==="update"),u=io(c),p=io(d),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:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:oo(c)},update:{apply:p,guards:oo(d)}},deletedRows:{total:t.update.plans.reduce((m,E)=>m+E.tables.reduce((R,g)=>R+g.deletedRows,0),0),parentRows:t.update.plans.filter(m=>m.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Gn.set(f,Ds([...s],n,e.appId)),f}function io(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:Un(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Un(t,"ADD"),removedValues:Un(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function oo(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 jt=100,ve=500;function at(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Ds(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ke(s,n));continue}o.set(a,ee(i.has(a)?"number":"string"))}return o}async function Ab(e,t,n,r,i,o){let a=await YR(e,t,n,r,i,o),s=await we(e.appId,n,i),l=tu(e,a,s,se(r)),c=e.assignments.map(p=>p.field),d=await X(e.appId,n,i),u=await $e(e.appId,c,d,n,i);if(ot(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new Re("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Sb(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function Tb(e,t,n,r){if(await pn(e,t,r),He(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Nb(e,t,n,r);let i=ru(e),a=(await wi(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new Re("DELETE",a.length);let s=Uf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function qR(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Kt(s.expr,{},t.get(o),se(n)):Tt(s,t.get(o))}}),i})}async function Ib(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Hw(e,t,n,r);if(e.checkGroups?.length)return fo(e,t,n,r);let i=await _e(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=[],s=[],l=await we(e.appId,t,r),c=hp(e);if(Os(cp(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=qR(e,l,n);return ot(f,e.fields,i,o),GR(e.appId,e.keyFields[0],f,c,t,n)}let u=await Pr(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,m)=>{let E={};e.fields.forEach((g,y)=>{let S=f[y];S.type==="CASE_VALUE"?E[g]={value:Kt(S.expr,{},l.get(g),se(n))}:E[g]={value:Tt(S,l.get(g))}});let R=Cr(u,c[m]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),ot([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new Re("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let m=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(m.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function hp(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?z(i):i.type==="CASE_VALUE"?Ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Ap(e,t,n,r){if(t.length===0)return;let i=await we(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function wb(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=xs(a),l=new Map;for(let d of e.values){let u=Vm(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,R)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:Vm(d[R])}}});let m=l.get(u);m?m.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),m=[...Eo(p,i),...u];c.push(JR(e.appId,d,mo(p),i,m))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function bb(e,t,n,r){let i=e.subtableCode;if(!ji(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ht(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&hs(p.value.expr,o);let a=await Ap(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Sp(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new Re("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let m={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);m[E.field]={value:ha(E.value,p.flat,a,se(n))}}f.set(p.rowId,m)}let u=xs(s);for(let[p,f]of d.entries()){let m=u.get(p);if(!m)continue;let R=Eo(m,i).map(g=>{let y=g.id??"";if(!y)return g;let S=f.get(y);return S?{id:y,value:S}:{id:y}});await t.putRecords(Cb(e.appId,p,mo(m),i,R))}return{type:"UPDATE",updatedCount:c.length}}async function Nb(e,t,n,r){let i=e.subtableCode;if(!ji(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ht(e.where,o);let a=await Ap(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Sp(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new Re("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=xs(s);for(let[p,f]of d.entries()){let m=u.get(p);if(!m)continue;let E=Eo(m,i),R=new Set(f),g=E.filter((y,S)=>!R.has(S));await t.putRecords(JR(e.appId,p,mo(m),i,g))}return{type:"DELETE",deletedCount:c.length}}function xs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Sp(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=mo(r),a=Eo(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Sa(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=Gc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function Eo(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function mo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function JR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Cb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Pb(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function Vm(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Gc(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 ji(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ji(e.left)||ji(e.right);case"NOT":case"GROUP":return ji(e.expr);default:return!1}}async function Ob(e,t,n,r){let i=[];Ht(e.where,i);let o=await Ap(e.appId,i,t,r),a=await X(e.appId,t,r);if(He(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let m=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(m)??B("string")},c=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Sp(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&ce(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new Re("UPDATE",u.size);let p=xs(c);for(let f of u){let m=p.get(f);if(!m)continue;let R=Eo(m,e.subtableCode).map((y,S)=>({row:y,i:S,flat:Lb(m,e.subtableCode,y,S)}));R.sort((y,S)=>_b(y.flat,S.flat,e.by,l,se(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(Pb(e.appId,f,mo(m),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:u.size}}function Lb(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=Gc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Gc(a?.value);return i}function _b(e,t,n,r,i={}){for(let o of n){let a=Wm(o.key,e,i),s=Wm(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?kn(o.key.expr).semantics??B("string"):B("number"),c=pt(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function Wm(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ge(e.expr,t,n));case"FUNC_KEY":return ye(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Tp(e,t,n,r,i){if(e.checkGroups?.length)return fo(e,t,n,r,i);let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await vs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(gp(s),c.length!==e.fields.length){let y=c.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${c.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 d=[],u=[],p=await we(e.appId,t,r),f=l.map((y,S)=>{let h={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[S]?.has(I))return;let v=y[c[N]]??"";h[I]={value:fp(v,p.get(I))}}),h});f.forEach(y=>ot([y],e.fields.filter(S=>S in y),o,a));let m=f.map(y=>e.keyFields.map(S=>String(y[S]?.value??"")));if(Os(cp(e,t,n,o,m)).execution.status==="ELIGIBLE")return GR(e.appId,e.keyFields[0],f,m,t,n);if(Nr.has(e)){let y=e.keyFields.map(h=>p.get(h)==="NUMBER"),S=new Set;for(let h of m){let I=fn(h,y);if(S.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");S.add(I)}}let R=await Pr(e.appId,e.keyFields,m,t,n,p);if(f.forEach((y,S)=>{let h=Cr(R,m[S]);h!==void 0?u.push({id:h,record:y}):d.push(y)}),n.confirm&&d.length+u.length>0){let y=d.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new Re("UPDATE",y)}let g=[];for(let y=0;y<d.length;y+=100){let S=await t.postRecords({app:e.appId,records:d.slice(y,y+100)});g.push(S.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var Ip=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),wp=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function XR(e){let t=await e.getApps(),n=[...Ip],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function QR(e,t,n){let r=await X(e.appId,t,n),i=[...wp],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}async function ao(e,t,n,r,i,o){let a=[];Es(e,t,n,r,a,i,o),await Promise.all(a)}async function ZR(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(ao(l.condition,t,n,r,i,o));await Promise.all(a)}function zi(e,t,n,r,i){return i!==void 0&&i.size>0?yt(e,t,n,i,r):Yt(e,t,n,r)}function Es(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(zi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(zi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":Es(e.left,t,n,r,i,o,a),Es(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Es(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(zi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function eg(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Yt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function tg(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=zi(u.query,t,n,r,o).then(m=>{for(let R of m.warnings??[])i.add(R);if(m.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(m.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=m.columns[0]??"";return m.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var ng=new WeakMap,rg=new WeakMap,ig=new WeakMap,$c=new WeakMap,bp=new WeakMap,og=new WeakMap,ag=new WeakMap;async function sg(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async C=>(a.add(C),t.getFields(C)),getProcessStatuses:async C=>(s.add(C),t.getProcessStatuses(C)),getNumberPrecision:async C=>(l.add(C),t.getNumberPrecision(C))},d=new Map,u=new Map,p=new Map,f=new Set,m=i??await lo(e,c,n),E=C=>m.nodes.find(D=>D.source===C||JSON.stringify(D.source)===JSON.stringify(C)),R=new Map(o??[]),g=new Set(o?.keys()??[]),y=new Map([...o??new Map].map(([C,D])=>[C,D.rows.length])),S=new WeakMap,h=C=>pe(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===Ue?1:C.cteName!==null?y.get(C.cteName)??null:null,N=C=>{let D=I(C.from),b=h(C.from),_=[];for(let w of C.joins){let U=I(w.table),O=h(w.table);if(w.type==="CROSS"){let F=D!==null&&U!==null?Ii(D,U):null;_.push({leftLabel:b,rightLabel:O,leftRows:D,rightRows:U,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${O} materialized rows`}),D=F?.outputRows??null,b=`${b} \xD7 ${O}`}else D=null,b=`${b} ${w.type} JOIN ${O}`}if(_.length>0&&bp.set(C,_),He(C.where)?D=0:C.where!==null&&(D=null),(te(C).type!=="NONE"||C.distinct||C.having!==null||Qn(C)||C.columns.some(w=>w.type==="WINDOW_COL"))&&(D=null),D!==null){let w=C.offset??0;D=Math.max(0,D-w),C.limit!==null&&(D=Math.min(D,C.limit)),S.set(C,D)}},v=async C=>{let D=[C.from,...C.joins.map(_=>_.table)];if(D.length>1&&C.columns.some(_=>_.type==="WILDCARD"||_.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let b=[];for(let _ of D){if(_.cteName!==null){if(_.cteName===Ue)continue;let w=R.get(_.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);b.push(...w.columns);continue}let A=await X(_.appId,c,n);_.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===_.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...Lo))}return[...new Set(b)]},P=async C=>{if(C===null||typeof C!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let D=C;if(D.type==="SELECT"){let b=C,_=await v(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return _;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(..._):w.type==="PARENT_WILDCARD"?A.push(..._.filter(U=>U.startsWith("_p."))):A.push(...Pn([],[w]).columns);return A}if(D.type==="UNION")return P(D.left);if(D.type==="SHOW_APPS")return[...Ip];if(D.type==="DESCRIBE")return[...wp];if(D.type==="GENERATE_SERIES")return[C.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},M=async C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){for(let b of C)await M(b);return}let D=C;if(D.type==="WITH"){let b=C;for(let _ of b.ctes){if(await M(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(U=>U.type==="VARIABLE")){R.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let w=kR(_.query);R.set(_.name,{rows:w.rows,columns:w.columns,columnMeta:he.get(w),uniqueGeneratedColumn:_.query.columnAlias}),g.add(_.name),y.set(_.name,w.rows.length);continue}let A=await P(_.query);if(R.set(_.name,{rows:[],columns:A}),_.query.type==="SELECT"){let w=S.get(_.query);w!==void 0&&y.set(_.name,w)}}await M(b.query);return}if(D.type==="UNION"){await M(D.left),await M(D.right);return}if(D.type==="SELECT"){let b=C;N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await M(w.query);if(await M(b.where),await M(b.having),await eo(b,c,n,R),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!R.has(w.cteName))){let w=await Ir(b,c,n,R);w&&p.set(b,w)}return}for(let b of Object.values(D))await M(b)};await M(e);let x=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(x));return}let D=C;if((D.type==="UPSERT"||D.type==="UPSERT_SELECT")&&await X(C.appId,c,n),D.type==="SELECT"){let b=C;await eo(b,c,n);let _=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(te(b).type==="PLAIN"&&!_){let L=await Ir(b,c,n);L&&p.set(b,L)}let A=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Nt(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&A.forEach(L=>a.add(L));let{resolver:U,rewrites:O}=await Dn(b,c,n);O.length>0&&$c.set(b,O);let F=Ie(b.where,U),W=E(b);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(F)}).`);d.set(b,F);let G=await Ns(b,c,n),K=rp.get(b)??bs(b,G);K&&ng.set(b,K);let Y=K??An(b,G);rg.set(b,Y);let $=new Map;for(let L of b.joins){let V=L.table.alias;if(L.type!=="INNER"||!V||L.table.subtableCode)continue;let Q=L.on.left.tableAlias,Ae=L.on.right.tableAlias;if(!Q||!Ae)continue;let lt=Q===V&&Ae!==V?Ae:Ae===V&&Q!==V?Q:void 0,oe=Q===V?L.on.right.field:L.on.left.field,zt=Q===V?L.on.left.field:L.on.right.field;if(!lt)continue;let qt=[b.from,...b.joins.map(De=>De.table)].find(De=>pe(De)===lt),zs;if(L.table.cteName!==null)zs=R.get(L.table.cteName)?.columnMeta?.get(zt);else{let De=(await X(L.table.appId,c,n)).find(ut=>ut.code===me(L.table,zt));zs=De?ke(De,L.table.appId):rt(zt)}let qs,Js,vp,Dp;if(qt?.cteName!==null&&qt?.cteName!==void 0){let De=R.get(qt.cteName);qs=De?.columnMeta?.get(oe),g.has(qt.cteName)&&De&&(vp=De.rows.length,Js=De.rows.map(ut=>pp(ut[oe])),Dp=Js.some(ut=>ut.length===0))}else if(qt){let De=(await X(qt.appId,c,n)).find(ut=>ut.code===me(qt,oe));qs=De?ke(De,qt.appId):rt(oe)}let ho=Pu({fieldType:zs?.fieldType,sourceSemantics:qs?.semantics,sourceRowCount:vp,values:Js,hasEmptyValue:Dp,maxInKeys:ds});if(ho.kind==="FALLBACK"&&ho.reason==="JOIN_KEY_VALUES_RUNTIME"&&(K?.joinPlan.items.some(ut=>ut.targetAlias===V)||K?.joinPlan.serverFunctionConsumptions.some(ut=>ut.targetAlias===V)))continue;let qg=Cu(ho,zt,no),xp=Y.joinConditions.get(V),Jg=xp?j(xp):void 0,Xg=Y.joinRelations.get(V);$.set(V,{plan:ho,queries:qg,additionalQuery:Jg,additionalRelation:Xg})}if($.size>0&&ig.set(b,$),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await ro(b,c,n);if(b.orderMode!=="KINTONE_NATIVE")for(let V of L.semantics.values())V.fieldType==="STATUS"&&V.source&&s.add(V.source.appId);if(gs(b)&&!_&&W?.allowed!==!1){let V=F.capability==="EXACT_PUSHDOWN"?ze(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?Pi:Ci)({stmt:b,staticMode:V,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:Pe(b.where)}))}}}else if(D.type==="VALIDATE"){let b=C;a.add(b.appId);let _=await X(b.appId,c,n),A=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),w=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),U=hu(b,_),O=dr(b.checkGroups??[]),F=Qc(b.where);for(let L of O){if(L.field!=="$id"&&!A.has(L.field)&&!w.has(L.field))throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!A.has(L.field)&&w.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let L of F){if(L!=="$id"&&!A.has(L)&&!w.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!A.has(L)&&w.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...A].map(([L,V])=>[L,V.fieldType]));W.set("$id","RECORD_NUMBER"),Kn(b,W);let G=Ie(b.where,L=>L.field==="$id"?ne({fieldType:"__ID__"}):A.get(L.field)?.semantics??(A.has(L.field)?ne(A.get(L.field)):void 0));if(G.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(G)}).`);let k=new Map([...A].map(([L,V])=>[L,V.fieldType])),K=new Map([...A.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),Y=b.where===null?null:G.capability==="EXACT_PUSHDOWN"?b.where:Ol(b.where,{allowUnqualifiedFields:!0,fieldTypes:k,fieldOptions:K,allowKlike:!1}),$=U.some(L=>L.field.fieldType==="NUMBER");$&&(l.add(b.appId),await _t(b.appId,c,n)),og.set(b,{targetFields:U.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...U.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(U.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,U.filter(V=>V.subtableCode===L).length])),capability:G,prefilter:Y,numberPrecision:$})}else if(D.type==="UPDATE"||D.type==="DELETE"){if(a.add(C.appId),D.type==="UPDATE"&&C.applyBlocks?.length){let _=C,A=await X(_.appId,c,n);if(Gt(_,A),Is(_)){let w=A.filter(O=>!O.inSubtable),U=xu(_.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});ag.set(_,U)}}let b=C;(b.type!=="UPDATE"||!Is(b))&&E(b)?.allowed!==!1&&await pn(b,c,n)}await Promise.all(Object.values(D).map(x))};if(await x(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&en(e)){let C=tn(e),{resolver:D,rewrites:b}=await Dn(C,c,n);b.length>0&&$c.set(C,b);let _=Ie(C.where,D),A=E(C);if(_.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${xn(_)}).`);if(d.set(C,_),gs(C)&&A?.allowed!==!1){let w=await ro(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?Pi:Ci)({stmt:C,staticMode:_.capability==="EXACT_PUSHDOWN"?ze(C):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:Pe(C.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function Bc(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function vb(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 Hm(e){return e==="<>"?"!=":e}function Rt(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(Rt).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return Rt(t.expr);case"GROUPING_FIELD":return`GROUPING(${Rt(t.ref)})`;case"GROUPING_REF":return Rt(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${Rt(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${Rt(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(Rt).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(Rt).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Ln(e){try{let t=e;switch(t.type){case"BINARY":return`${Rt(t.left)} ${vb(t.op)} ${Rt(t.right)}`;case"NULL_CHECK":return`${Rt(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Ln(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Ln(t.right)})`;case"NOT":return`NOT (${Ln(t.expr)})`;case"GROUP":return`(${Ln(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Vc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=re(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Db(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=yc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${gc(c)}: ${c}`,` ${hc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Ln(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(re)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!re(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=yc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=Hm(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${gc(l)}: ${l}`,` ${hc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Ym(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=yc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=Hm(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${gc(l)}: ${l}`,` ${hc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Ln(o.residualWhere)}`,` ${Ym(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!re(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Db(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function gc(e){return re(e)?"relative date function":"kintone function"}function yc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function hc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function Ym(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var lg=new WeakMap;function Wc(e,t){if(Array.isArray(e))return e.map(r=>Wc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return lg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,Wc(i,t)]))}function Bi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Ip]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...wp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=Bi(l.query,s);s.set(l.name,c)}return Bi(e.query,s)}if(e.type==="UNION"){let s=Bi(e.left,t),l=Bi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Ue);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...Pn([],[s]).columns);return{status:"STATIC",columns:a}}function xb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Ub(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Ue||d.cteName!==null&&r.has(d.cteName))){let d=await Ir(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Mb=Symbol("ksql.explainFetchPlan");function ug(e,t){e[Mb]=t}async function cg(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=ve,c=!0,d,u,p,f,m,E={surface:"DOCUMENT_ONLY"}){let R=ll(f??new Date,m),g=$t({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),y=eR(r);try{let{statements:S,meta:h}=XE(e,{import:a}),I=ii(S),N=bu(S,n),v=dR(S,N),P=new Map;for(let[_,A]of Object.entries(R.values))P.set(xr(_),{type:"string",value:A});let M=new Map,x=new Map,C=[],D=[];for(let _=0;_<S.length;_++){let A=S[_],w=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:Xi(A.expr,P)}:A:Xi(A,P),U=Wc(w,M);Je(U);let O=await lo(U,t,y),F=xb(x),W=c?await sg(U,t,y,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!c){let V=await Ub(U,t,y,F);for(let[Q,Ae]of V)W.plainGroupByPlans.set(Q,Ae)}let G;if(U.type==="CREATE_TEMP_TABLE"){let V=new Map([...x].map(([Ae,lt])=>[Ae,lt.status==="STATIC"?{status:"STATIC",columns:lt.columns}:{status:"DEFERRED"}])),Q=Bi(U.query,V);G=Q.status==="STATIC"?{status:"STATIC",columns:Q.columns,relation:{rows:[],columns:[...Q.columns]},producerStatement:_+1}:{status:"DEFERRED",producerStatement:_+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},x.set(U.name,G)}let k={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?Vc(O):[...Vc(O),...dg(Kb(U,I.statements[_],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,k,x,G,{maxRecords:i,recursiveLimits:g}),o)],Y=Bc(W),$=h.dialect===1?kb(U,I.statements[_],i,s):[],L=await FR(U,y,E);C.push({index:_,type:I.statements[_].statementType,plan:K.length===0?[...Y,...L,...$]:[K[0],...Y,...K.slice(1),...L,...$]}),D.push({index:_,fetch:Np(k.sources),sources:k.sources}),U.type==="DROP_TEMP_TABLE"&&x.delete(U.name),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&(P.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(V=>({type:"string",value:V.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0}),A.type==="DECLARE_VARIABLE"&&A.annotation===void 0&&(A.default.type==="STRING"||A.default.type==="NUMBER")&&M.set(A.name,A.default.type==="STRING"?A.default.value:z(A.default)))}let b={statementCount:S.length,statements:C};return ug(b,{statements:D}),b}finally{BR(y)}}function kb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Fb(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Tr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Tr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Tr)} \u56DE\u3001${Tr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function Fb(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Kb(e,t,n,r,i,o=100,a=ve,s={sources:[]},l=new Map,c,d=pg()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${it} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Sr(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=qi(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Sr(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Sr(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,m)=>{u.push(p.length>1?` subquery[${m+1}]:`:" subquery:");let E=qi(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Sr(f.query,E,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,m)=>{u.push(p.length>1?` subquery[${m+1}]:`:" subquery:");let E=qi(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Sr(f.query,E,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Us(e,void 0,n,r,o,a,1e4,i):Sr(e,t,n,r,i,s,"main",l,d)}function qi(e){if(Array.isArray(e))return e.some(qi);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(qi)}return!1}function Sr(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=pg()){if(t.tempTablesReferenced.length===0)return Us(e,void 0,n,r,100,ve,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,m]of d)m?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${m.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...fg(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var Hc=new WeakMap;function pg(){return{maxRecords:1e4,recursiveLimits:$t({})}}async function Gb(e,t,n,r,i,o=100,a=ve,s,l,c,d,u=!0,p={surface:"DOCUMENT_ONLY"}){let f=$t({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),m=s??await lo(e.query,t,n),E=u?await sg(e.query,t,n,r,m,Hc.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:m},R={sources:[]},g=Vc(m),y=m.hasServerOnlyWhereFunction&&!m.allowed?[...Bc(E),...g]:[...Bc(E),...g,...dg(Us(e.query,void 0,E.capabilities,E.orderPlans,o,a,r,E.plainGroupByPlans,!0,R,"main",f),i)],S=await FR(e,n,p),h=ms([...y,...S],R.sources),I={type:"SELECT",columns:["plan"],rows:h.map(N=>({plan:N})),rowCount:h.length};return ug(I,{statements:[{index:0,fetch:Np(R.sources),sources:R.sources}]}),I}function dg(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Us(e,t,n,r,i=100,o=ve,a=1e4,s,l=!0,c,d="main",u=$t({})){let p=c??{sources:[]};if(e.type==="UNION"){let m=Hb(e,n,r,s,p);return l?ms(m,p.sources):m}if(e.type==="WITH"){let m=jb(e,n,r,s,p,a,u);return l?ms(m,p.sources):m}if(e.type==="INSERT")return Jb(e,t,i,o);if(e.type==="INSERT_SELECT")return Xb(e,t,n,r,s);if(e.type==="UPSERT")return tN(e,t,i,o);if(e.type==="UPSERT_SELECT")return nN(e,t,n,r,s);if(e.type==="UPDATE")return Qb(e,t,n,r,i,o,a);if(e.type==="DELETE")return eN(e,t);if(e.type==="REORDER")return rN(e,t);if(e.type==="VALIDATE")return Vb(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...R.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 m=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(R=>R.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${m} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=gt(e,t,n,r,s,!0,!0,p,d);return l?ms(f,p.sources):f}var jm={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Np(e){return e.reduce((t,n)=>jm[t]>=jm[n.fetch]?t:n.fetch,"none")}function ms(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Np(t).toUpperCase()}`,...n]}function $b(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function as(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:$b(o)};return e.sources.push(s),s}function Bb(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function ss(e){return` fetch: ${Bb(e)}`}function Vb(e,t){let n=og.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":j(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Xc:Jc).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function Wb(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function fg(e,t,n){let r=te(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function gt(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&_R(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":ze(e),m=zb(e);c&&c.capability!=="EXACT_PUSHDOWN"&&m.push(...c.reasons.map(h=>h.code));let E=[],R=fE(e,Zi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of bp.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${Ou}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of $c.get(e)??gR.get(e)??[])E.push(Wb(h));R&&(E.push(` grouping source: ${R.source}`),E.push(` grouping sets: ${R.expandedSetCount} (limit: ${R.setLimit})`),E.push(` grouping items: ${R.groupingItemCount} (limit: ${R.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${R.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...fg(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Eg).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=as(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(ss(I))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${d.scanRows}`))):R&&E.push(" order plan: CANONICAL_LOCAL");let g=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,y=an(g);d?.requiresCompleteInput&&y.add("LOCAL_ORDER");let S=He(e.where);if(y.size>0&&(!S||R!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...y].join(", ")}`),E.push(" onLimit=truncate: disabled")),S)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&m.length>0&&E.push(` reason: ${m.join(", ")}`),f==="SIMPLE"){let h=Fo(d?.kind==="CANONICAL_REST_TOP_N"?CR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Uu(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(ss(as(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=ng.get(e),I=rg.get(e),N=I??An(e);if(e.joins.length>0)if(h){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Ln(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(U=>U.type!=="INNER"&&U.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(U=>U.table)].some(U=>U.cteName!==null||!!U.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${w}`)}let v=hn(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,x=wR(e),C=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!xt(e.where)?j(e.where):"",D=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=D||(M!==null?j(M):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${b}`);let _=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&x!==null,U=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":_?.relation==="exact"||A||C!==""?"EXACT":"PREFILTERED";E.push(ss(as(s,e.from.appId,e.from.alias,l,U,b,w)))}_||A?(E.push(` pushdown applied: ${D}`),E.push(` relation: ${_?.relation??"exact"}`)):I&&M!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):x!==null&&(!I||Wi(x))&&E.push(` pushdown candidate: ${j(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let U=hn(e,w.table,u),O=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,W=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,G=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?Jr(e.where,{tableAlias:w.table.alias}):null,k=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?ig.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(oe=>oe.table)].some(oe=>oe.cteName!==null),$=k||(W!==null?j(W):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=Y||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",V=K&&K.queries.length>0?K.queries.map(oe=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${oe}) and (${$})`:oe):[L?"(runtime source keys)":$],Q=V.join(" | ");E.push(` ${F}: APP${w.table.appId}${O} (${w.table.appId})`);for(let oe of V)E.push(` kintone query: ${oe}`);let Ae=h?.joinPlan.items.find(oe=>oe.targetAlias===w.table.alias),lt=h?.joinPlan.serverFunctionConsumptions.find(oe=>oe.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let oe=L||!K&&!I&&G!==null,zt=Q==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":oe?"PREFILTERED":K?.plan.kind==="IN"&&Ae?.relation!=="superset"&&K.additionalRelation!=="superset"||Ae?.relation==="exact"||lt?"EXACT":"PREFILTERED";E.push(ss(as(s,w.table.appId,w.table.alias,"join",zt,Q,oe)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let oe of V)E.push(` pushdown applied: ${oe}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let oe=Ae?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let zt of V)E.push(` pushdown applied: ${zt}`);E.push(` relation: ${oe}`)}else K.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(E.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${K.plan.reason}`));else Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),G!==null&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):Ae||lt?(E.push(` pushdown applied: ${k}`),E.push(` relation: ${Ae?.relation??"exact"}`)):I&&W!==null?(E.push(` pushdown applied: ${$}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):G!==null&&(!I||Wi(G))&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${U.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":U.join(", ")}`)}}return E.push(...qb(e,n,r,i,s)),E}function Hb(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...gt(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Yb(e){let t=new Map,n=a=>pe(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Ue?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?Ii(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&bp.set(a,c),He(a.where)?s=0:a.where!==null&&(s=null),te(a).type!=="NONE"||a.distinct||a.having!==null||Qn(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,oa(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function jb(e,t,n,r,i={sources:[]},o=1e4,a=$t({})){Yb(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of MR(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...gt(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=lg.get(c);if(c.args.some(m=>m.type==="VARIABLE")){let m=E=>{let R=c.args[E];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:E<2?"literal":R.type==="NUMBER"?z(R):R.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${m(0)}`,` stop: ${m(1)}`,` step: ${m(2)}`," rows: runtime",` row guard: runtime / ${Mt}`," records API: none","");continue}let p=oa(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Mt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...Us(e.query,"[main]",t,n,100,ve,o,r,!1,i,"main",a)),en(e)){s.push("");let l=tn(e);s.push(...gt(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function zb(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=te(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),xt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Xt(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function qb(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...gt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...gt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...gt(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...gt(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function Jb(e,t,n=jt,r=ve){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,...Cp(_a(e,n,r))]:a}function Xb(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...gt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Qb(e,t,n,r,i=100,o=ve,a=1e4){if(e.applyBlocks?.length)return Zb(e,t,i,o,a);let s=_f(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=ya(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?so(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${so(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=iN(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${aN(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...gt(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Zb(e,t,n,r,i){let o=_a(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(m=>[...m.operations]).map(m=>{if(m.kind==="APPEND")return"APPEND";if(m.kind==="ADD"||m.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(m.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=m.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(m=>m.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=ag.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${so(e.where)}`,`parent cardinality: ${Ut(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(m=>`${m.field} (${m.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.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=${u?"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: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Cp(o)]}function eN(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${so(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function tN(e,t,n=jt,r=ve){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,...Cp(_a(e,n,r))]:a}function Cp(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function nN(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...gt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function rN(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(Eg).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,He(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: ${so(e.where)}`),o}function Eg(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function so(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function iN(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&ws(n,t),n.type==="STRING_FUNC"&&ws(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Ji(n,t);return[...t]}function ws(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(ws(e.left,t),ws(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Ji(n,t)}async function mg(e,t,n,r,i){let o=Rp(e),a=await we(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await we(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Le(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw Le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),m=p.field==="$id"||l.has(p.field);if(!f)throw Le(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(m)throw Le(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function oN(e,t,n){if(!e)return{};let r=Vt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function Ji(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Ji(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Ji(e.left,t),Ji(e.right,t))}function aN(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} = ${Rg(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 Rg(e){return`${zm(e.left)} ${e.op} ${zm(e.right)}`}function zm(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?z(e):e.type==="ARITH"?`(${Rg(e)})`:"..."}var Re=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var sN=2,Ms=5,lN=3e4,uN=10*6e4+3e4,ks=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??sN;if(!Number.isSafeInteger(r)||r<1||r>Ms)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ms}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??lN,this.quarantineMs=n.quarantineMs??uN}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new Ba(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>Ms)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ms}.`)}};function cN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function pN(e,t=r=>new Promise(i=>setTimeout(i,r)),n=cN){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function dN(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function gg(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await dN(pN(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function yg(e){return hg(e,EN(e))}function hg(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=mN(o.options),s=RN(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Fs(o.minValue),maxValue:Fs(o.maxValue),minLength:Fs(o.minLength),maxLength:Fs(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!fN.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...hg(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var fN=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function EN(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function Fs(e){return e==null||e===""?void 0:e}function mN(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function RN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Ag(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var gN="Filter aborted because of too many search results";function Sg(e){return e?.includes(gN)===!0}var Ro=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function Tg(e){let t=yN(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${hN(e.guestSpaceId,"guestSpaceId")}/v1`,r=e.fetch??globalThis.fetch;if(typeof r!="function")throw new TypeError("fetch is required.");let i=e.cursorMaxActive??2;if(!Number.isSafeInteger(i)||i<1||i>5)throw new RangeError("cursorMaxActive must be an integer from 1 to 5.");let o=new ks(new URL(t).host,{maxActive:i});async function a(l,c,d,u){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let R=typeof e.auth.apiToken=="function"?e.auth.apiToken(d):e.auth.apiToken;p.set("X-Cybozu-API-Token",R)}else p.set("X-Cybozu-Authorization",AN(`${e.auth.username}:${e.auth.password}`));u!==void 0&&p.set("Content-Type","application/json");let f=new AbortController,m=setTimeout(()=>f.abort(),e.timeoutMs??3e4);m.unref?.();let E;try{E=await r(`${t}${n}${l}`,{method:c,headers:p,signal:f.signal,...u===void 0?{}:{body:JSON.stringify(u)}})}finally{clearTimeout(m)}if(!E.ok){let R=await E.text(),g,y=`kintone API error: HTTP ${E.status}`;try{let S=JSON.parse(R);typeof S.code=="string"&&(g=S.code),typeof S.message=="string"&&(y=S.message)}catch{R!==""&&(y=`${y}: ${R}`)}throw new Ro(E.status,g,y)}return{body:await E.json(),response:E}}return{async getRecords(l){let c=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>c.append("fields[]",p)),l.totalCount===!0&&c.set("totalCount","true");let{body:d,response:u}=await a(`/records.json?${c}`,"GET",l.app);return Sg(u.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d},async openCursor(l){let c=await o.acquire(),d;try{d=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(u){throw u instanceof Ro?c.release():c.quarantine(),u instanceof Ro?u:new Va(u)}return gg(Number(d.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(d.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:d.id})},onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()})},async postRecords(l){return{ids:(await a("/records.json","POST",l.app,l)).body.ids}},async putRecords(l){await a("/records.json","PUT",l.app,l)},async upsertRecords(l){return(await a("/records.json","PUT",l.app,{app:l.app,upsert:!0,records:l.records})).body},async deleteRecords(l){await a("/records.json","DELETE",l.app,l)},async getApps(){let l=[];for(let c=0;;c+=100){let d=new URLSearchParams({limit:"100",offset:String(c)}),u=await a(`/apps.json?${d}`,"GET",0);if(l.push(...u.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),u.body.apps.length<100)return l}},async getFields(l){let c=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return yg(c.body.properties)},async getNumberPrecision(l){let c=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return qf(c.body)},async getProcessStatuses(l){let c=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:c.body.enable,states:Ag(c.body.states)}}}}function yN(e){let t=new URL(e);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new TypeError("baseUrl must use http or https.");return t.toString().replace(/\/+$/,"")}function hN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function AN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new TextEncoder().encode(e),r="";for(let i=0;i<n.length;i+=3){let o=n[i],a=n[i+1],s=n[i+2];r+=t[o>>2],r+=t[(o&3)<<4|(a??0)>>4],r+=i+1<n.length?t[(a&15)<<2|(s??0)>>6]:"=",r+=i+2<n.length?t[s&63]:"="}return r}var ie=class extends Error{constructor(t,n,r){super(n),this.name="KsqlFlowError",this.code=t,this.cause=r}};function Ks(e){if(e instanceof ie)return e;if(e instanceof Error){let i=e.name!=="Error"?e.name:e.message.match(/^([A-Za-z][A-Za-z0-9]*Error):/)?.[1]??"FLOW_ERROR";return new ie(i,e.message,e)}let t=e,n=typeof t?.code=="string"?t.code:"FLOW_ERROR",r=typeof t?.message=="string"?t.message:String(e);return new ie(n,r,e)}var Gs=class extends Error{constructor(t,n,r){super(n),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function Ig(e){let t=new Map;for(let n of e){if(n.name.length===0)throw new ie("ArgumentError","ArgumentError: IMPORT source name must not be empty.");if(t.has(n.name))throw new ie("ImportSourceDuplicateError","ImportSourceDuplicateError: an IMPORT source name is registered more than once.");t.set(n.name,n.loader)}return n=>t.get(n)}var Pp=new WeakMap;function bg(e,t){Pp.set(e,t)}function Ng(e){Pp.delete(e)}function Lr(e,t){return new ie(e,`${e}: ${t}`)}function wg(e){return e>=65&&e<=90||e>=97&&e<=122||e===95||e===36||e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}function SN(e){let t=Array.from(e);return t.length>0&&wg(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return wg(r)||r>=48&&r<=57})}function Cg(e,t){if(t===void 0||t.length===0)return new Set;let n=new Set;for(let o of t){let a=o?.name;if(typeof a!="string"||a.startsWith("#")||!SN(a))throw Lr("ExportSinkInvalidNameError","an export sink name must be a valid temp-table identifier without a leading #.");if(n.has(a))throw Lr("ExportSinkDuplicateError","an export sink name is declared more than once.");n.add(a)}let r=new Set([...n].map(o=>`#${o}`));for(let o of r)if(e.filter(s=>s.type==="CREATE_TEMP_TABLE"&&s.name===o).length>1)throw Lr("ExportSinkDuplicateError","an export sink must correspond to exactly one CREATE TEMP TABLE statement.");let i=ii([...e]);for(let o of r){let a=i.statements.filter(c=>c.tempTablesCreated.includes(o)).map(c=>c.index);if(a.find(c=>e[c]?.type==="CREATE_TEMP_TABLE")===void 0)throw a.length>0?Lr("ExportSinkInvalidTargetError","an export sink cannot target a DML or validation result."):Lr("ExportSinkNotFoundError","an export sink has no corresponding CREATE TEMP TABLE statement.");let l=!1;for(let c of i.statements)c.tempTablesCreated.includes(o)&&(l=!0),c.tempTablesDropped.includes(o)&&(l=!1);if(!l)throw Lr("ExportSinkNotFoundError","the export sink temp table does not exist in the final batch state.")}return r}function Pg(e){return Pp.get(e)}function Og(e){if(e===null||typeof e!="object")return!1;let t=e;switch(t.type){case"INSERT":return Array.isArray(t.createdIds)&&t.createdIds.every(n=>Array.isArray(n)&&n.every(r=>typeof r=="string"))&&typeof t.insertedCount=="number";case"UPDATE":return typeof t.updatedCount=="number";case"DELETE":return typeof t.deletedCount=="number";case"UPSERT":return typeof t.insertedCount=="number"&&typeof t.updatedCount=="number";default:return!1}}var ht=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}},$s=class extends ht{constructor(t){super("ExportSinkDuplicateHeaderError",t)}},go=class extends ht{constructor(t){super("ExportSinkUnsupportedColumnError",t)}},st=class extends ht{constructor(t){super("ExportSinkInvalidValueError",t)}},_r=class extends ht{constructor(t,n){super("ExportSinkInvalidTimezoneError",t,n)}},Bs=class extends ht{constructor(t){super("ExportSinkEncoderRequiredError",t)}},Vs=class extends ht{constructor(t,n){super("ExportSinkEncodingError",t,n)}},Ws=class extends ht{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var Lg=1024,TN=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function _g(e){let t=TN.exec(e);if(!t)throw new st("numeric value has invalid exponential notation.");let n=t[1],r=t[2]??"",i=t[3]??t[4]??"",o=r+i;if(/^0+$/.test(o))return`${n}0`;let a=BigInt(r.length)+BigInt(t[5]),s=BigInt(o.length),l;if(a<=0n?l=BigInt(n.length+2+o.length)-a:a>=s?l=BigInt(n.length)+a:l=BigInt(n.length+o.length+1),l>BigInt(Lg))throw new st(`expanded numeric value exceeds ${Lg} characters.`);let c=Number(a);return c<=0?`${n}0.${"0".repeat(-c)}${o}`:c>=o.length?`${n}${o}${"0".repeat(c-o.length)}`:`${n}${o.slice(0,c)}.${o.slice(c)}`}var IN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function Op(e){let t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t.getTime()}function vg(e){let t=IN.exec(e);if(!t)throw new st("DATETIME value is not a valid UTC ISO 8601 string.");let n={year:Number(t[1]),month:Number(t[2]),day:Number(t[3]),hour:Number(t[4]),minute:Number(t[5]),second:Number(t[6]),fraction:t[7]??""},r=Op(n),i=new Date(r);if(i.getUTCFullYear()!==n.year||i.getUTCMonth()+1!==n.month||i.getUTCDate()!==n.day||i.getUTCHours()!==n.hour||i.getUTCMinutes()!==n.minute||i.getUTCSeconds()!==n.second)throw new st("DATETIME value is not a valid UTC ISO 8601 instant.");let o=Number((n.fraction.slice(1)+"000").slice(0,3));return{parts:n,instant:new Date(r+o)}}function Dg(e){try{return new Intl.DateTimeFormat("en-CA-u-nu-latn",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"})}catch(t){throw new _r(`timezone ${JSON.stringify(e)} is not a supported IANA timezone.`,t)}}function vr(e,t){let n=e.find(r=>r.type===t)?.value;if(n===void 0)throw new _r("timezone formatter did not return the required date parts.");return Number(n)}function Bn(e){return String(e).padStart(2,"0")}function xg(e,t){let{parts:n,instant:r}=vg(e),i=t.formatToParts(r),o={year:vr(i,"year"),month:vr(i,"month"),day:vr(i,"day"),hour:vr(i,"hour"),minute:vr(i,"minute"),second:vr(i,"second")},a=(Op(o)-Op(n))/1e3;if(!Number.isInteger(a))throw new _r("timezone produced a non-integral offset.");let s=a<0?"-":"+",l=Math.abs(a),c=Math.floor(l/3600),d=Math.floor(l%3600/60);return`${String(o.year).padStart(4,"0")}-${Bn(o.month)}-${Bn(o.day)}T${Bn(o.hour)}:${Bn(o.minute)}:${Bn(o.second)}${n.fraction}${s}${Bn(c)}:${Bn(d)}`}function Ug(e){vg(e)}var wN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),bN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),NN=new Set(["NUMBER","CALC","KSQL_NUMBER"]);function kg(e,t){for(let n of e){let r=t?.get(n)?.fieldType;if(r==="SUBTABLE")throw new go(`column ${JSON.stringify(n)} is a SUBTABLE; select the APP$\u660E\u7D30 virtual table to export subtable rows.`);if(r==="FILE")throw new go(`column ${JSON.stringify(n)} is a FILE field; attachment export is not supported.`)}}function Vn(e,t,n){throw new st(`data row ${e}, column ${JSON.stringify(t)} ${n}`)}function Mg(e,t,n){let r;try{r=JSON.parse(e)}catch{return Vn(t,n,"does not contain a valid JSON array.")}return Array.isArray(r)?r:Vn(t,n,"does not contain a JSON array.")}function Fg(e,t,n,r,i){if(e==null||e==="")return"";if(typeof e!="string")return Vn(n,t,"has a non-string value.");let o=r?.fieldType;if(o&&wN.has(o)){let a=Mg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
19
- `):Vn(n,t,"must contain only string array elements.")}if(o&&bN.has(o)){let a=Mg(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return Vn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
20
- `)}if(o&&NN.has(o)&&/[eE]/.test(e))try{return _g(e)}catch(a){if(a instanceof st)return Vn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?xg(e,i):(Ug(e),e)}catch(a){if(a instanceof st)return Vn(n,t,"has an invalid DATETIME value.");throw a}return e}function Kg(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new Bs('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function CN(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function Gg(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new Vs("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!CN(n))throw new Ws("Shift_JIS encoder must return a Uint8Array.");return n}function $g(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function PN(e){let t=new Set;for(let n of e){if(t.has(n))throw new $s(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function Bg(e,t={}){let n=Kg(t),r=t.timezone===void 0?void 0:Dg(t.timezone);PN(e.columns),kg(e.columns,e.columnMeta);let i=[e.columns.map($g).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(c=>$g(Fg(s[c],c,l+1,e.columnMeta?.get(c),r))).join(","))});let o=`${i.join(`\r
18
+ 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 Nb(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${bb}`)}async function Cb(e,t,n,r,i){let o=r.filter(m=>!m.inSubtable),a=new Map(o.map(m=>[m.code,m])),s=new Map(o.map(m=>[m.code,m.fieldType])),l=new Map(o.flatMap(m=>m.optionOrder?[[m.code,new Set(Object.keys(m.optionOrder))]]:[])),c=Vu(e.where,{fieldTypes:s,fieldOptions:l});Nb(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(Ca(e,r));for(let m of Pb(e.where))u.add(m);let p=await Ob(e.appId,e.where,a,t,i);return(await Ve(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(m=>({snapshot:m,row:jt(m,null)})).filter(({row:m})=>ce(e.where,m,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:m})=>m)}function Pb(e){return ap(e)}async function Ob(e,t,n,r,i){let s=[...Lb(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await Ap(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return rr(te({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??te(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return rr(f,e,u.code)}}}function Lb(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function _b(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ct(n,e.fields).payloadFields,...Si],a=t.guards.parentRows,s=vu(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:uo(l),guards:co(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Wn.set(c,$s(o,n,e.appId)),c}function vb(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ct(n,e.assignments.map(c=>c.field)).payloadFields,...Si],s=wi(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:uo(s.branches[0]),guards:co(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return Wn.set(l,$s(a,n,e.appId)),l}function Db(e,t,n){let r=t.create.validations.flatMap(m=>m.errors),i=t.update.validations.flatMap(m=>m.errors),o=[...r,...i].map(m=>({...m,$err_operation:"UPSERT"})),a=new Set(o.map(m=>m.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Ct(n,e.fields).payloadFields,...Si],l=Du(t),c=l.branches.find(m=>m.branch==="insert"),d=l.branches.find(m=>m.branch==="update"),u=uo(c),p=uo(d),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:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:co(c)},update:{apply:p,guards:co(d)}},deletedRows:{total:t.update.plans.reduce((m,E)=>m+E.tables.reduce((R,g)=>R+g.deletedRows,0),0),parentRows:t.update.plans.filter(m=>m.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Wn.set(f,$s([...s],n,e.appId)),f}function uo(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:Kn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Kn(t,"ADD"),removedValues:Kn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function co(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 Xt=100,Me=500;function lt(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function $s(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,Ge(s,n));continue}o.set(a,re(i.has(a)?"number":"string"))}return o}async function xb(e,t,n,r,i,o){let a=await tg(e,t,n,r,i,o),s=await Ne(e.appId,n,i),l=cu(e,a,s,se(r)),c=e.assignments.map(p=>p.field),d=await X(e.appId,n,i),u=await He(e.appId,c,d,n,i);if(st(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ge("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Ub(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function Mb(e,t,n,r){if(await mn(e,t,r),qe(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Gb(e,t,n,r);let i=du(e),a=(await Ci(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new ge("DELETE",a.length);let s=Bf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function ig(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Vt(s.expr,{},t.get(o),se(n)):Nt(s,t.get(o))}}),i})}async function kb(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ob(e,t,n,r);if(e.checkGroups?.length)return ho(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ne(e.appId,t,r),c=Cp(e);if(ks(yp(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=ig(e,l,n);return st(f,e.fields,i,o),qR(e.appId,e.keyFields[0],f,c,t,n)}let u=await _r(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,m)=>{let E={};e.fields.forEach((g,y)=>{let S=f[y];S.type==="CASE_VALUE"?E[g]={value:Vt(S.expr,{},l.get(g),se(n))}:E[g]={value:Nt(S,l.get(g))}});let R=Lr(u,c[m]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),st([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new ge("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let m=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(m.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function Cp(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?z(i):i.type==="CASE_VALUE"?je(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Pp(e,t,n,r){if(t.length===0)return;let i=await Ne(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function Fb(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Bs(a),l=new Map;for(let d of e.values){let u=Jm(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,R)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:Jm(d[R])}}});let m=l.get(u);m?m.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),m=[...Ao(p,i),...u];c.push(og(e.appId,d,So(p),i,m))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function Kb(e,t,n,r){let i=e.subtableCode;if(!Qi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];qt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Cs(p.value.expr,o);let a=await Pp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Op(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new ge("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let m={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);m[E.field]={value:Na(E.value,p.flat,a,se(n))}}f.set(p.rowId,m)}let u=Bs(s);for(let[p,f]of d.entries()){let m=u.get(p);if(!m)continue;let R=Ao(m,i).map(g=>{let y=g.id??"";if(!y)return g;let S=f.get(y);return S?{id:y,value:S}:{id:y}});await t.putRecords($b(e.appId,p,So(m),i,R))}return{type:"UPDATE",updatedCount:c.length}}async function Gb(e,t,n,r){let i=e.subtableCode;if(!Qi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];qt(e.where,o);let a=await Pp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Op(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new ge("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=Bs(s);for(let[p,f]of d.entries()){let m=u.get(p);if(!m)continue;let E=Ao(m,i),R=new Set(f),g=E.filter((y,S)=>!R.has(S));await t.putRecords(og(e.appId,p,So(m),i,g))}return{type:"DELETE",deletedCount:c.length}}function Bs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Op(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=So(r),a=Ao(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Pa(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=zc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function Ao(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function So(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function og(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function $b(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Bb(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function Jm(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?je(e.expr,{}):e.elements.map(t=>t.value).join(",")}function zc(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 Qi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Qi(e.left)||Qi(e.right);case"NOT":case"GROUP":return Qi(e.expr);default:return!1}}async function Vb(e,t,n,r){let i=[];qt(e.where,i);let o=await Pp(e.appId,i,t,r),a=await X(e.appId,t,r);if(qe(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??te(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let m=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(m)??B("string")},c=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Op(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&ce(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new ge("UPDATE",u.size);let p=Bs(c);for(let f of u){let m=p.get(f);if(!m)continue;let R=Ao(m,e.subtableCode).map((y,S)=>({row:y,i:S,flat:Wb(m,e.subtableCode,y,S)}));R.sort((y,S)=>Hb(y.flat,S.flat,e.by,l,se(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(Bb(e.appId,f,So(m),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:u.size}}function Wb(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=zc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=zc(a?.value);return i}function Hb(e,t,n,r,i={}){for(let o of n){let a=Xm(o.key,e,i),s=Xm(o.key,t,i),l=o.key.type==="FIELD_NAME"?r($e(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?$n(o.key.expr,d=>{let u=r(d);return u?{compareMode:u.compareMode}:void 0}).semantics??B("string"):B("number"),c=ft(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function Xm(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(me(e.expr,t,n));case"FUNC_KEY":return ye(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Lp(e,t,n,r,i){if(e.checkGroups?.length)return ho(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Gs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(bp(s),c.length!==e.fields.length){let y=c.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${c.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 d=[],u=[],p=await Ne(e.appId,t,r),f=l.map((y,S)=>{let h={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[S]?.has(I))return;let v=y[c[N]]??"";h[I]={value:Sp(v,p.get(I))}}),h});f.forEach(y=>st([y],e.fields.filter(S=>S in y),o,a));let m=f.map(y=>e.keyFields.map(S=>String(y[S]?.value??"")));if(ks(yp(e,t,n,o,m)).execution.status==="ELIGIBLE")return qR(e.appId,e.keyFields[0],f,m,t,n);if(Or.has(e)){let y=e.keyFields.map(h=>p.get(h)==="NUMBER"),S=new Set;for(let h of m){let I=gn(h,y);if(S.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");S.add(I)}}let R=await _r(e.appId,e.keyFields,m,t,n,p);if(f.forEach((y,S)=>{let h=Lr(R,m[S]);h!==void 0?u.push({id:h,record:y}):d.push(y)}),n.confirm&&d.length+u.length>0){let y=d.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new ge("UPDATE",y)}let g=[];for(let y=0;y<d.length;y+=100){let S=await t.postRecords({app:e.appId,records:d.slice(y,y+100)});g.push(S.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var _p=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),vp=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function ag(e){let t=await e.getApps(),n=[..._p],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function sg(e,t,n){let r=await X(e.appId,t,n),i=[...vp],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}async function po(e,t,n,r,i,o){let a=[];Ts(e,t,n,r,a,i,o),await Promise.all(a)}async function lg(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(po(l.condition,t,n,r,i,o));await Promise.all(a)}function Zi(e,t,n,r,i){return i!==void 0&&i.size>0?St(e,t,n,i,r):Jt(e,t,n,r)}function Ts(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Zi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Zi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":Ts(e.left,t,n,r,i,o,a),Ts(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Ts(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Zi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function ug(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Jt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function cg(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=Zi(u.query,t,n,r,o).then(m=>{for(let R of m.warnings??[])i.add(R);if(m.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(m.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=m.columns[0]??"";return m.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var pg=new WeakMap,dg=new WeakMap,fg=new WeakMap,qc=new WeakMap,Dp=new WeakMap,Eg=new WeakMap,mg=new WeakMap;async function Rg(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async P=>(a.add(P),t.getFields(P)),getProcessStatuses:async P=>(s.add(P),t.getProcessStatuses(P)),getNumberPrecision:async P=>(l.add(P),t.getNumberPrecision(P))},d=new Map,u=new Map,p=new Map,f=new Set,m=i??await mo(e,c,n),E=P=>m.nodes.find(D=>D.source===P||JSON.stringify(D.source)===JSON.stringify(P)),R=new Map(o??[]),g=new Set(o?.keys()??[]),y=new Map([...o??new Map].map(([P,D])=>[P,D.rows.length])),S=new WeakMap,h=P=>de(P)??(P.appId>0?`APP${P.appId}`:"source"),I=P=>P.cteName===Le?1:P.cteName!==null?y.get(P.cteName)??null:null,N=P=>{let D=I(P.from),b=h(P.from),_=[];for(let w of P.joins){let M=I(w.table),O=h(w.table);if(w.type==="CROSS"){let F=D!==null&&M!==null?Ni(D,M):null;_.push({leftLabel:b,rightLabel:O,leftRows:D,rightRows:M,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${O} materialized rows`}),D=F?.outputRows??null,b=`${b} \xD7 ${O}`}else D=null,b=`${b} ${w.type} JOIN ${O}`}if(_.length>0&&Dp.set(P,_),qe(P.where)?D=0:P.where!==null&&(D=null),(ee(P).type!=="NONE"||P.distinct||P.having!==null||kt(P)||P.columns.some(w=>w.type==="WINDOW_COL"))&&(D=null),D!==null){let w=P.offset??0;D=Math.max(0,D-w),P.limit!==null&&(D=Math.min(D,P.limit)),S.set(P,D)}},v=async P=>{let D=[P.from,...P.joins.map(_=>_.table)];if(D.length>1&&P.columns.some(_=>_.type==="WILDCARD"||_.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let b=[];for(let _ of D){if(_.cteName!==null){if(_.cteName===Le)continue;let w=R.get(_.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);b.push(...w.columns);continue}let A=await X(_.appId,c,n);_.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===_.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...Mo))}return[...new Set(b)]},C=async P=>{if(P===null||typeof P!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let D=P;if(D.type==="SELECT"){let b=P,_=await v(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return _;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(..._):w.type==="PARENT_WILDCARD"?A.push(..._.filter(M=>M.startsWith("_p."))):A.push(...vn([],[w]).columns);return A}if(D.type==="UNION")return C(D.left);if(D.type==="SHOW_APPS")return[..._p];if(D.type==="DESCRIBE")return[...vp];if(D.type==="GENERATE_SERIES")return[P.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},U=async P=>{if(P===null||typeof P!="object")return;if(Array.isArray(P)){for(let b of P)await U(b);return}let D=P;if(D.type==="WITH"){let b=P;for(let _ of b.ctes){if(await U(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(M=>M.type==="VARIABLE")){R.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let w=YR(_.query);R.set(_.name,{rows:w.rows,columns:w.columns,columnMeta:he.get(w),uniqueGeneratedColumn:_.query.columnAlias}),g.add(_.name),y.set(_.name,w.rows.length);continue}let A=await C(_.query);if(R.set(_.name,{rows:[],columns:A}),_.query.type==="SELECT"){let w=S.get(_.query);w!==void 0&&y.set(_.name,w)}}await U(b.query);return}if(D.type==="UNION"){await U(D.left),await U(D.right);return}if(D.type==="SELECT"){let b=P;await vR(b,R,c,n),N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await U(w.query);if(await U(b.where),await U(b.having),await oo(b,c,n,R),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!R.has(w.cteName))){let w=await Nr(b,c,n,R);w&&p.set(b,w)}return}for(let b of Object.values(D))await U(b)};await U(e);let x=async P=>{if(P===null||typeof P!="object"||f.has(P))return;if(f.add(P),Array.isArray(P)){await Promise.all(P.map(x));return}let D=P;if((D.type==="UPSERT"||D.type==="UPSERT_SELECT")&&await X(P.appId,c,n),D.type==="SELECT"){let b=P;await oo(b,c,n);let _=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(ee(b).type==="PLAIN"&&!_){let L=await Nr(b,c,n);L&&p.set(b,L)}let A=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Lt(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&A.forEach(L=>a.add(L));let{resolver:M,rewrites:O}=await kn(b,c,n);O.length>0&&qc.set(b,O);let F=we(b.where,M),W=E(b);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(F)}).`);d.set(b,F);let G=await xs(b,c,n),K=pp.get(b)??Ds(b,G);K&&pg.set(b,K);let Y=K??wn(b,G);dg.set(b,Y);let $=new Map;for(let L of b.joins){let V=L.table.alias;if(L.type!=="INNER"||!V||L.table.subtableCode)continue;let Q=L.on.left.tableAlias,Ae=L.on.right.tableAlias;if(!Q||!Ae)continue;let ct=Q===V&&Ae!==V?Ae:Ae===V&&Q!==V?Q:void 0,oe=Q===V?L.on.right.field:L.on.left.field,Qt=Q===V?L.on.left.field:L.on.right.field;if(!ct)continue;let Zt=[b.from,...b.joins.map(ke=>ke.table)].find(ke=>de(ke)===ct),nl;if(L.table.cteName!==null)nl=Oe(R.get(L.table.cteName),Qt);else{let ke=(await X(L.table.appId,c,n)).find(pt=>pt.code===pe(L.table,Qt));nl=ke?Ge(ke,L.table.appId):ot(Qt)}let rl,il,Gp,$p;if(Zt?.cteName!==null&&Zt?.cteName!==void 0){let ke=R.get(Zt.cteName);rl=Oe(ke,oe),g.has(Zt.cteName)&&ke&&(Gp=ke.rows.length,il=ke.rows.map(pt=>hp(pt[oe])),$p=il.some(pt=>pt.length===0))}else if(Zt){let ke=(await X(Zt.appId,c,n)).find(pt=>pt.code===pe(Zt,oe));rl=ke?Ge(ke,Zt.appId):ot(oe)}let bo=ku({fieldType:nl?.fieldType,sourceSemantics:rl?.semantics,sourceRowCount:Gp,values:il,hasEmptyValue:$p,maxInKeys:As});if(bo.kind==="FALLBACK"&&bo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(K?.joinPlan.items.some(pt=>pt.targetAlias===V)||K?.joinPlan.serverFunctionConsumptions.some(pt=>pt.targetAlias===V)))continue;let iy=Mu(bo,Qt,so),Bp=Y.joinConditions.get(V),oy=Bp?j(Bp):void 0,ay=Y.joinRelations.get(V);$.set(V,{plan:bo,queries:iy,additionalQuery:oy,additionalRelation:ay})}if($.size>0&&fg.set(b,$),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await lo(b,c,n);if(b.orderMode!=="KINTONE_NATIVE")for(let V of L.semantics.values())V.fieldType==="STATUS"&&V.source&&s.add(V.source.appId);if(bs(b)&&!_&&W?.allowed!==!1){let V=F.capability==="EXACT_PUSHDOWN"?Xe(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:b,staticMode:V,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:_e(b.where)}))}}}else if(D.type==="VALIDATE"){let b=P;a.add(b.appId);let _=await X(b.appId,c,n),A=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),w=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),M=Pu(b,_),O=mr(b.checkGroups??[]),F=ap(b.where);for(let L of O){if(L.field!=="$id"&&!A.has(L.field)&&!w.has(L.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!A.has(L.field)&&w.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let L of F){if(L!=="$id"&&!A.has(L)&&!w.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!A.has(L)&&w.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...A].map(([L,V])=>[L,V.fieldType]));W.set("$id","RECORD_NUMBER"),Vn(b,W);let G=we(b.where,L=>L.field==="$id"?te({fieldType:"__ID__"}):A.get(L.field)?.semantics??(A.has(L.field)?te(A.get(L.field)):void 0));if(G.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(G)}).`);let k=new Map([...A].map(([L,V])=>[L,V.fieldType])),K=new Map([...A.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),Y=b.where===null?null:G.capability==="EXACT_PUSHDOWN"?b.where:Ml(b.where,{allowUnqualifiedFields:!0,fieldTypes:k,fieldOptions:K,allowKlike:!1}),$=M.some(L=>L.field.fieldType==="NUMBER");$&&(l.add(b.appId),await xt(b.appId,c,n)),Eg.set(b,{targetFields:M.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...M.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(M.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,M.filter(V=>V.subtableCode===L).length])),capability:G,prefilter:Y,numberPrecision:$})}else if(D.type==="UPDATE"||D.type==="DELETE"){if(a.add(P.appId),D.type==="UPDATE"&&P.applyBlocks?.length){let _=P,A=await X(_.appId,c,n);if(Wt(_,A),_s(_)){let w=A.filter(O=>!O.inSubtable),M=Vu(_.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});mg.set(_,M)}}let b=P;(b.type!=="UPDATE"||!_s(b))&&E(b)?.allowed!==!1&&await mn(b,c,n)}await Promise.all(Object.values(D).map(x))};if(await x(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&on(e)){let P=an(e),{resolver:D,rewrites:b}=await kn(P,c,n);b.length>0&&qc.set(P,b);let _=we(P.where,D),A=E(P);if(_.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(_)}).`);if(d.set(P,_),bs(P)&&A?.allowed!==!1){let w=await lo(P,c,n);u.set(P,(P.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:P,staticMode:_.capability==="EXACT_PUSHDOWN"?Xe(P):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:_e(P.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function Jc(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function Yb(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 Qm(e){return e==="<>"?"!=":e}function ht(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(ht).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ht(t.expr);case"GROUPING_FIELD":return`GROUPING(${ht(t.ref)})`;case"GROUPING_REF":return ht(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ht(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ht(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(ht).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ht).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function xn(e){try{let t=e;switch(t.type){case"BINARY":return`${ht(t.left)} ${Yb(t.op)} ${ht(t.right)}`;case"NULL_CHECK":return`${ht(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${xn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${xn(t.right)})`;case"NOT":return`NOT (${xn(t.expr)})`;case"GROUP":return`(${xn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Xc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?jb(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=Nc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${bc(c)}: ${c}`,` ${Cc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":xn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Nc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=Qm(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${bc(l)}: ${l}`,` ${Cc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Zm(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=Nc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=Qm(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${bc(l)}: ${l}`,` ${Cc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${xn(o.residualWhere)}`,` ${Zm(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function jb(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function bc(e){return ne(e)?"relative date function":"kintone function"}function Nc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function Cc(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function Zm(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var gg=new WeakMap;function Qc(e,t){if(Array.isArray(e))return e.map(r=>Qc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return gg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,Qc(i,t)]))}function ji(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[..._p]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...vp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=ji(l.query,s);s.set(l.name,c)}return ji(e.query,s)}if(e.type==="UNION"){let s=ji(e.left,t),l=ji(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Le);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...vn([],[s]).columns);return{status:"STATIC",columns:a}}function zb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function qb(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Le||d.cteName!==null&&r.has(d.cteName))){let d=await Nr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Jb=Symbol("ksql.explainFetchPlan");function yg(e,t){e[Jb]=t}async function hg(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Me,c=!0,d,u,p,f,m,E={surface:"DOCUMENT_ONLY"}){let R=Rl(f??new Date,m),g=Ht({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),y=sR(r);try{let{statements:S,meta:h}=nm(e,{import:a}),I=si(S),N=xu(S,n),v=hR(S,N),C=new Map;for(let[_,A]of Object.entries(R.values))C.set(kr(_),{type:"string",value:A});let U=new Map,x=new Map,P=[],D=[];for(let _=0;_<S.length;_++){let A=S[_],w=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:no(A.expr,C)}:A:no(A,C),M=Qc(w,U);Ze(M);let O=await mo(M,t,y),F=zb(x),W=c?await Rg(M,t,y,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!c){let V=await qb(M,t,y,F);for(let[Q,Ae]of V)W.plainGroupByPlans.set(Q,Ae)}let G;if(M.type==="CREATE_TEMP_TABLE"){let V=new Map([...x].map(([Ae,ct])=>[Ae,ct.status==="STATIC"?{status:"STATIC",columns:ct.columns}:{status:"DEFERRED"}])),Q=ji(M.query,V);G=Q.status==="STATIC"?{status:"STATIC",columns:Q.columns,relation:{rows:[],columns:[...Q.columns]},producerStatement:_+1}:{status:"DEFERRED",producerStatement:_+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},x.set(M.name,G)}let k={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?Xc(O):[...Xc(O),...Sg(Zb(M,I.statements[_],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,k,x,G,{maxRecords:i,recursiveLimits:g}),o)],Y=Jc(W),$=h.dialect===1?Xb(M,I.statements[_],i,s):[],L=await jR(M,y,E);P.push({index:_,type:I.statements[_].statementType,plan:K.length===0?[...Y,...L,...$]:[K[0],...Y,...K.slice(1),...L,...$]}),D.push({index:_,fetch:xp(k.sources),sources:k.sources}),M.type==="DROP_TEMP_TABLE"&&x.delete(M.name),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&(C.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(V=>({type:"string",value:V.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0}),A.type==="DECLARE_VARIABLE"&&A.annotation===void 0&&(A.default.type==="STRING"||A.default.type==="NUMBER")&&U.set(A.name,A.default.type==="STRING"?A.default.value:z(A.default)))}let b={statementCount:S.length,statements:P};return yg(b,{statements:D}),b}finally{XR(y)}}function Xb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Qb(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/br)} \u56DE\uFF08${e.values.length} \u884C\u3001${br} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/br)} \u56DE\u3001${br} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function Qb(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Zb(e,t,n,r,i,o=100,a=Me,s={sources:[]},l=new Map,c,d=Ag()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${at} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...wr(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=eo(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...wr(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return wr(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,m)=>{u.push(p.length>1?` subquery[${m+1}]:`:" subquery:");let E=eo(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...wr(f.query,E,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,m)=>{u.push(p.length>1?` subquery[${m+1}]:`:" subquery:");let E=eo(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...wr(f.query,E,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Vs(e,void 0,n,r,o,a,1e4,i):wr(e,t,n,r,i,s,"main",l,d)}function eo(e){if(Array.isArray(e))return e.some(eo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(eo)}return!1}function wr(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=Ag()){if(t.tempTablesReferenced.length===0)return Vs(e,void 0,n,r,100,Me,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,m]of d)m?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${m.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...Tg(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var Zc=new WeakMap;function Ag(){return{maxRecords:1e4,recursiveLimits:Ht({})}}async function eN(e,t,n,r,i,o=100,a=Me,s,l,c,d,u=!0,p={surface:"DOCUMENT_ONLY"}){let f=Ht({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),m=s??await mo(e.query,t,n),E=u?await Rg(e.query,t,n,r,m,Zc.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:m},R={sources:[]},g=Xc(m),y=m.hasServerOnlyWhereFunction&&!m.allowed?[...Jc(E),...g]:[...Jc(E),...g,...Sg(Vs(e.query,void 0,E.capabilities,E.orderPlans,o,a,r,E.plainGroupByPlans,!0,R,"main",f),i)],S=await jR(e,n,p),h=Is([...y,...S],R.sources),I={type:"SELECT",columns:["plan"],rows:h.map(N=>({plan:N})),rowCount:h.length};return yg(I,{statements:[{index:0,fetch:xp(R.sources),sources:R.sources}]}),I}function Sg(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Vs(e,t,n,r,i=100,o=Me,a=1e4,s,l=!0,c,d="main",u=Ht({})){let p=c??{sources:[]};if(e.type==="UNION"){let m=oN(e,n,r,s,p);return l?Is(m,p.sources):m}if(e.type==="WITH"){let m=sN(e,n,r,s,p,a,u);return l?Is(m,p.sources):m}if(e.type==="INSERT")return cN(e,t,i,o);if(e.type==="INSERT_SELECT")return pN(e,t,n,r,s);if(e.type==="UPSERT")return mN(e,t,i,o);if(e.type==="UPSERT_SELECT")return RN(e,t,n,r,s);if(e.type==="UPDATE")return dN(e,t,n,r,i,o,a);if(e.type==="DELETE")return EN(e,t);if(e.type==="REORDER")return gN(e,t);if(e.type==="VALIDATE")return rN(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...R.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 m=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(R=>R.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${m} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=At(e,t,n,r,s,!0,!0,p,d);return l?Is(f,p.sources):f}var eR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function xp(e){return e.reduce((t,n)=>eR[t]>=eR[n.fetch]?t:n.fetch,"none")}function Is(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${xp(t).toUpperCase()}`,...n]}function tN(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Es(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:tN(o)};return e.sources.push(s),s}function nN(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function ms(e){return` fetch: ${nN(e)}`}function rN(e,t){let n=Eg.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":j(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?op:ip).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function iN(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function Tg(e,t,n){let r=ee(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function At(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&GR(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Xe(e),m=lN(e);c&&c.capability!=="EXACT_PUSHDOWN"&&m.push(...c.reasons.map(h=>h.code));let E=[],R=AE(e,io.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of Dp.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${Fu}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of qc.get(e)??wR.get(e)??[])E.push(iN(h));R&&(E.push(` grouping source: ${R.source}`),E.push(` grouping sets: ${R.expandedSetCount} (limit: ${R.setLimit})`),E.push(` grouping items: ${R.groupingItemCount} (limit: ${R.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${R.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...Tg(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Ig).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=Es(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(ms(I))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${d.scanRows}`))):R&&E.push(" order plan: CANONICAL_LOCAL");let g=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,y=cn(g);d?.requiresCompleteInput&&y.add("LOCAL_ORDER");let S=qe(e.where);if(y.size>0&&(!S||R!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...y].join(", ")}`),E.push(" onLimit=truncate: disabled")),S)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&m.length>0&&E.push(` reason: ${m.join(", ")}`),f==="SIMPLE"){let h=Ho(d?.kind==="CANONICAL_REST_TOP_N"?MR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Wu(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(ms(Es(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=pg.get(e),I=dg.get(e),N=I??wn(e);if(e.joins.length>0)if(h){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":xn(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(M=>M.type!=="INNER"&&M.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${w}`)}let v=In(e,e.from,u),C=e.from.alias?` AS ${e.from.alias}`:"",U=N.mainCondition,x=DR(e),P=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Ft(e.where)?j(e.where):"",D=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=D||(U!==null?j(U):P||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),E.push(` kintone query: ${b}`);let _=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&x!==null,M=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":_?.relation==="exact"||A||P!==""?"EXACT":"PREFILTERED";E.push(ms(Es(s,e.from.appId,e.from.alias,l,M,b,w)))}_||A?(E.push(` pushdown applied: ${D}`),E.push(` relation: ${_?.relation??"exact"}`)):I&&U!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):x!==null&&(!I||qi(x))&&E.push(` pushdown candidate: ${j(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let M=In(e,w.table,u),O=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,W=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,G=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?Zr(e.where,{tableAlias:w.table.alias}):null,k=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?fg.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(oe=>oe.table)].some(oe=>oe.cteName!==null),$=k||(W!==null?j(W):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=Y||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",V=K&&K.queries.length>0?K.queries.map(oe=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${oe}) and (${$})`:oe):[L?"(runtime source keys)":$],Q=V.join(" | ");E.push(` ${F}: APP${w.table.appId}${O} (${w.table.appId})`);for(let oe of V)E.push(` kintone query: ${oe}`);let Ae=h?.joinPlan.items.find(oe=>oe.targetAlias===w.table.alias),ct=h?.joinPlan.serverFunctionConsumptions.find(oe=>oe.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let oe=L||!K&&!I&&G!==null,Qt=Q==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":oe?"PREFILTERED":K?.plan.kind==="IN"&&Ae?.relation!=="superset"&&K.additionalRelation!=="superset"||Ae?.relation==="exact"||ct?"EXACT":"PREFILTERED";E.push(ms(Es(s,w.table.appId,w.table.alias,"join",Qt,Q,oe)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let oe of V)E.push(` pushdown applied: ${oe}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let oe=Ae?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Qt of V)E.push(` pushdown applied: ${Qt}`);E.push(` relation: ${oe}`)}else K.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(E.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${K.plan.reason}`));else Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),G!==null&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):Ae||ct?(E.push(` pushdown applied: ${k}`),E.push(` relation: ${Ae?.relation??"exact"}`)):I&&W!==null?(E.push(` pushdown applied: ${$}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):G!==null&&(!I||qi(G))&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return E.push(...uN(e,n,r,i,s)),E}function oN(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...At(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function aN(e){let t=new Map,n=a=>de(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Le?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?Ni(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&Dp.set(a,c),qe(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||kt(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,da(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function sN(e,t,n,r,i={sources:[]},o=1e4,a=Ht({})){aN(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of HR(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...At(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=gg.get(c);if(c.args.some(m=>m.type==="VARIABLE")){let m=E=>{let R=c.args[E];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:E<2?"literal":R.type==="NUMBER"?z(R):R.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${m(0)}`,` stop: ${m(1)}`,` step: ${m(2)}`," rows: runtime",` row guard: runtime / ${Gt}`," records API: none","");continue}let p=da(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Gt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...Vs(e.query,"[main]",t,n,100,Me,o,r,!1,i,"main",a)),on(e)){s.push("");let l=an(e);s.push(...At(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function lN(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=ee(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),Za(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Ft(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),tn(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function uN(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...At(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...At(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...At(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...At(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function cN(e,t,n=Xt,r=Me){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,...Up(Fa(e,n,r))]:a}function pN(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...At(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function dN(e,t,n,r,i=100,o=Me,a=1e4){if(e.applyBlocks?.length)return fN(e,t,i,o,a);let s=Ff(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=ba(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?fo(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${fo(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(qe(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=yN(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${AN(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...At(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function fN(e,t,n,r,i){let o=Fa(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(m=>[...m.operations]).map(m=>{if(m.kind==="APPEND")return"APPEND";if(m.kind==="ADD"||m.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(m.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=m.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(m=>m.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=mg.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${fo(e.where)}`,`parent cardinality: ${Kt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(m=>`${m.field} (${m.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.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=${u?"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: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Up(o)]}function EN(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${fo(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(qe(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function mN(e,t,n=Xt,r=Me){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,...Up(Fa(e,n,r))]:a}function Up(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function RN(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...At(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function gN(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(Ig).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,qe(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: ${fo(e.where)}`),o}function Ig(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function fo(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function yN(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&vs(n,t),n.type==="STRING_FUNC"&&vs(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&to(n,t);return[...t]}function vs(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(vs(e.left,t),vs(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&to(n,t)}async function wg(e,t,n,r,i){let o=wp(e),a=await Ne(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ne(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw xe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw xe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw xe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),m=p.field==="$id"||l.has(p.field);if(!f)throw xe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(m)throw xe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function hN(e,t,n){if(!e)return{};let r=jt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function to(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&to(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(to(e.left,t),to(e.right,t))}function AN(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} = ${bg(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 bg(e){return`${tR(e.left)} ${e.op} ${tR(e.right)}`}function tR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?z(e):e.type==="ARITH"?`(${bg(e)})`:"..."}var ge=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var SN=2,Ws=5,TN=3e4,IN=10*6e4+3e4,Hs=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??SN;if(!Number.isSafeInteger(r)||r<1||r>Ws)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ws}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??TN,this.quarantineMs=n.quarantineMs??IN}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new qa(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>Ws)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ws}.`)}};function wN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function bN(e,t=r=>new Promise(i=>setTimeout(i,r)),n=wN){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function NN(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Ng(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await NN(bN(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Cg(e){return Pg(e,PN(e))}function Pg(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=ON(o.options),s=LN(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Ys(o.minValue),maxValue:Ys(o.maxValue),minLength:Ys(o.minLength),maxLength:Ys(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!CN.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Pg(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var CN=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function PN(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function Ys(e){return e==null||e===""?void 0:e}function ON(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function LN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Og(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var _N="Filter aborted because of too many search results";function Lg(e){return e?.includes(_N)===!0}var To=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function _g(e){let t=vN(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${DN(e.guestSpaceId,"guestSpaceId")}/v1`,r=e.fetch??globalThis.fetch;if(typeof r!="function")throw new TypeError("fetch is required.");let i=e.cursorMaxActive??2;if(!Number.isSafeInteger(i)||i<1||i>5)throw new RangeError("cursorMaxActive must be an integer from 1 to 5.");let o=new Hs(new URL(t).host,{maxActive:i});async function a(l,c,d,u){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let R=typeof e.auth.apiToken=="function"?e.auth.apiToken(d):e.auth.apiToken;p.set("X-Cybozu-API-Token",R)}else p.set("X-Cybozu-Authorization",xN(`${e.auth.username}:${e.auth.password}`));u!==void 0&&p.set("Content-Type","application/json");let f=new AbortController,m=setTimeout(()=>f.abort(),e.timeoutMs??3e4);m.unref?.();let E;try{E=await r(`${t}${n}${l}`,{method:c,headers:p,signal:f.signal,...u===void 0?{}:{body:JSON.stringify(u)}})}finally{clearTimeout(m)}if(!E.ok){let R=await E.text(),g,y=`kintone API error: HTTP ${E.status}`;try{let S=JSON.parse(R);typeof S.code=="string"&&(g=S.code),typeof S.message=="string"&&(y=S.message)}catch{R!==""&&(y=`${y}: ${R}`)}throw new To(E.status,g,y)}return{body:await E.json(),response:E}}return{async getRecords(l){let c=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>c.append("fields[]",p)),l.totalCount===!0&&c.set("totalCount","true");let{body:d,response:u}=await a(`/records.json?${c}`,"GET",l.app);return Lg(u.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d},async openCursor(l){let c=await o.acquire(),d;try{d=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(u){throw u instanceof To?c.release():c.quarantine(),u instanceof To?u:new Ja(u)}return Ng(Number(d.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(d.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:d.id})},onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()})},async postRecords(l){return{ids:(await a("/records.json","POST",l.app,l)).body.ids}},async putRecords(l){await a("/records.json","PUT",l.app,l)},async upsertRecords(l){return(await a("/records.json","PUT",l.app,{app:l.app,upsert:!0,records:l.records})).body},async deleteRecords(l){await a("/records.json","DELETE",l.app,l)},async getApps(){let l=[];for(let c=0;;c+=100){let d=new URLSearchParams({limit:"100",offset:String(c)}),u=await a(`/apps.json?${d}`,"GET",0);if(l.push(...u.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),u.body.apps.length<100)return l}},async getFields(l){let c=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return Cg(c.body.properties)},async getNumberPrecision(l){let c=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return nE(c.body)},async getProcessStatuses(l){let c=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:c.body.enable,states:Og(c.body.states)}}}}function vN(e){let t=new URL(e);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new TypeError("baseUrl must use http or https.");return t.toString().replace(/\/+$/,"")}function DN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function xN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new TextEncoder().encode(e),r="";for(let i=0;i<n.length;i+=3){let o=n[i],a=n[i+1],s=n[i+2];r+=t[o>>2],r+=t[(o&3)<<4|(a??0)>>4],r+=i+1<n.length?t[(a&15)<<2|(s??0)>>6]:"=",r+=i+2<n.length?t[s&63]:"="}return r}var ie=class extends Error{constructor(t,n,r){super(n),this.name="KsqlFlowError",this.code=t,this.cause=r}};function js(e){if(e instanceof ie)return e;if(e instanceof Error){let i=e.name!=="Error"?e.name:e.message.match(/^([A-Za-z][A-Za-z0-9]*Error):/)?.[1]??"FLOW_ERROR";return new ie(i,e.message,e)}let t=e,n=typeof t?.code=="string"?t.code:"FLOW_ERROR",r=typeof t?.message=="string"?t.message:String(e);return new ie(n,r,e)}var zs=class extends Error{constructor(t,n,r){super(n),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function vg(e){let t=new Map;for(let n of e){if(n.name.length===0)throw new ie("ArgumentError","ArgumentError: IMPORT source name must not be empty.");if(t.has(n.name))throw new ie("ImportSourceDuplicateError","ImportSourceDuplicateError: an IMPORT source name is registered more than once.");t.set(n.name,n.loader)}return n=>t.get(n)}var Mp=new WeakMap;function xg(e,t){Mp.set(e,t)}function Ug(e){Mp.delete(e)}function Dr(e,t){return new ie(e,`${e}: ${t}`)}function Dg(e){return e>=65&&e<=90||e>=97&&e<=122||e===95||e===36||e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}function UN(e){let t=Array.from(e);return t.length>0&&Dg(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return Dg(r)||r>=48&&r<=57})}function Mg(e,t){if(t===void 0||t.length===0)return new Set;let n=new Set;for(let o of t){let a=o?.name;if(typeof a!="string"||a.startsWith("#")||!UN(a))throw Dr("ExportSinkInvalidNameError","an export sink name must be a valid temp-table identifier without a leading #.");if(n.has(a))throw Dr("ExportSinkDuplicateError","an export sink name is declared more than once.");n.add(a)}let r=new Set([...n].map(o=>`#${o}`));for(let o of r)if(e.filter(s=>s.type==="CREATE_TEMP_TABLE"&&s.name===o).length>1)throw Dr("ExportSinkDuplicateError","an export sink must correspond to exactly one CREATE TEMP TABLE statement.");let i=si([...e]);for(let o of r){let a=i.statements.filter(c=>c.tempTablesCreated.includes(o)).map(c=>c.index);if(a.find(c=>e[c]?.type==="CREATE_TEMP_TABLE")===void 0)throw a.length>0?Dr("ExportSinkInvalidTargetError","an export sink cannot target a DML or validation result."):Dr("ExportSinkNotFoundError","an export sink has no corresponding CREATE TEMP TABLE statement.");let l=!1;for(let c of i.statements)c.tempTablesCreated.includes(o)&&(l=!0),c.tempTablesDropped.includes(o)&&(l=!1);if(!l)throw Dr("ExportSinkNotFoundError","the export sink temp table does not exist in the final batch state.")}return r}function kg(e){return Mp.get(e)}function Fg(e){if(e===null||typeof e!="object")return!1;let t=e;switch(t.type){case"INSERT":return Array.isArray(t.createdIds)&&t.createdIds.every(n=>Array.isArray(n)&&n.every(r=>typeof r=="string"))&&typeof t.insertedCount=="number";case"UPDATE":return typeof t.updatedCount=="number";case"DELETE":return typeof t.deletedCount=="number";case"UPSERT":return typeof t.insertedCount=="number"&&typeof t.updatedCount=="number";default:return!1}}var Tt=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}},qs=class extends Tt{constructor(t){super("ExportSinkDuplicateHeaderError",t)}},Io=class extends Tt{constructor(t){super("ExportSinkUnsupportedColumnError",t)}},ut=class extends Tt{constructor(t){super("ExportSinkInvalidValueError",t)}},xr=class extends Tt{constructor(t,n){super("ExportSinkInvalidTimezoneError",t,n)}},Js=class extends Tt{constructor(t){super("ExportSinkEncoderRequiredError",t)}},Xs=class extends Tt{constructor(t,n){super("ExportSinkEncodingError",t,n)}},Qs=class extends Tt{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var Kg=1024,MN=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function Gg(e){let t=MN.exec(e);if(!t)throw new ut("numeric value has invalid exponential notation.");let n=t[1],r=t[2]??"",i=t[3]??t[4]??"",o=r+i;if(/^0+$/.test(o))return`${n}0`;let a=BigInt(r.length)+BigInt(t[5]),s=BigInt(o.length),l;if(a<=0n?l=BigInt(n.length+2+o.length)-a:a>=s?l=BigInt(n.length)+a:l=BigInt(n.length+o.length+1),l>BigInt(Kg))throw new ut(`expanded numeric value exceeds ${Kg} characters.`);let c=Number(a);return c<=0?`${n}0.${"0".repeat(-c)}${o}`:c>=o.length?`${n}${o}${"0".repeat(c-o.length)}`:`${n}${o.slice(0,c)}.${o.slice(c)}`}var kN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function kp(e){let t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t.getTime()}function $g(e){let t=kN.exec(e);if(!t)throw new ut("DATETIME value is not a valid UTC ISO 8601 string.");let n={year:Number(t[1]),month:Number(t[2]),day:Number(t[3]),hour:Number(t[4]),minute:Number(t[5]),second:Number(t[6]),fraction:t[7]??""},r=kp(n),i=new Date(r);if(i.getUTCFullYear()!==n.year||i.getUTCMonth()+1!==n.month||i.getUTCDate()!==n.day||i.getUTCHours()!==n.hour||i.getUTCMinutes()!==n.minute||i.getUTCSeconds()!==n.second)throw new ut("DATETIME value is not a valid UTC ISO 8601 instant.");let o=Number((n.fraction.slice(1)+"000").slice(0,3));return{parts:n,instant:new Date(r+o)}}function Bg(e){try{return new Intl.DateTimeFormat("en-CA-u-nu-latn",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"})}catch(t){throw new xr(`timezone ${JSON.stringify(e)} is not a supported IANA timezone.`,t)}}function Ur(e,t){let n=e.find(r=>r.type===t)?.value;if(n===void 0)throw new xr("timezone formatter did not return the required date parts.");return Number(n)}function Yn(e){return String(e).padStart(2,"0")}function Vg(e,t){let{parts:n,instant:r}=$g(e),i=t.formatToParts(r),o={year:Ur(i,"year"),month:Ur(i,"month"),day:Ur(i,"day"),hour:Ur(i,"hour"),minute:Ur(i,"minute"),second:Ur(i,"second")},a=(kp(o)-kp(n))/1e3;if(!Number.isInteger(a))throw new xr("timezone produced a non-integral offset.");let s=a<0?"-":"+",l=Math.abs(a),c=Math.floor(l/3600),d=Math.floor(l%3600/60);return`${String(o.year).padStart(4,"0")}-${Yn(o.month)}-${Yn(o.day)}T${Yn(o.hour)}:${Yn(o.minute)}:${Yn(o.second)}${n.fraction}${s}${Yn(c)}:${Yn(d)}`}function Wg(e){$g(e)}var FN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),KN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),GN=new Set(["NUMBER","CALC","KSQL_NUMBER"]);function Yg(e,t){for(let n of e){let r=t?.get(n)?.fieldType;if(r==="SUBTABLE")throw new Io(`column ${JSON.stringify(n)} is a SUBTABLE; select the APP$\u660E\u7D30 virtual table to export subtable rows.`);if(r==="FILE")throw new Io(`column ${JSON.stringify(n)} is a FILE field; attachment export is not supported.`)}}function jn(e,t,n){throw new ut(`data row ${e}, column ${JSON.stringify(t)} ${n}`)}function Hg(e,t,n){let r;try{r=JSON.parse(e)}catch{return jn(t,n,"does not contain a valid JSON array.")}return Array.isArray(r)?r:jn(t,n,"does not contain a JSON array.")}function jg(e,t,n,r,i){if(e==null||e==="")return"";if(typeof e!="string")return jn(n,t,"has a non-string value.");let o=r?.fieldType;if(o&&FN.has(o)){let a=Hg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
19
+ `):jn(n,t,"must contain only string array elements.")}if(o&&KN.has(o)){let a=Hg(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return jn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
20
+ `)}if(o&&GN.has(o)&&/[eE]/.test(e))try{return Gg(e)}catch(a){if(a instanceof ut)return jn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?Vg(e,i):(Wg(e),e)}catch(a){if(a instanceof ut)return jn(n,t,"has an invalid DATETIME value.");throw a}return e}function zg(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new Js('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function $N(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function qg(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new Xs("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!$N(n))throw new Qs("Shift_JIS encoder must return a Uint8Array.");return n}function Jg(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function BN(e){let t=new Set;for(let n of e){if(t.has(n))throw new qs(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function Xg(e,t={}){let n=zg(t),r=t.timezone===void 0?void 0:Bg(t.timezone);BN(e.columns),Yg(e.columns,e.columnMeta);let i=[e.columns.map(Jg).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(c=>Jg(jg(s[c],c,l+1,e.columnMeta?.get(c),r))).join(","))});let o=`${i.join(`\r
21
21
  `)}\r
22
- `,a=Gg(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Wn(e,t,n){return new ie(e,`${e}: ${t}`,n)}function Vg(e){let t=Pg(e);if(!t||t.disposed)throw Wn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function Wg(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Wn("ExportSinkNotFoundError","the export sink is not declared.");return n}function ON(e){throw e instanceof ie?e:e instanceof ht?new ie(e.code,e.message,e):Wn("FLOW_ERROR","CSV export failed.",e)}function Hs(e,t={}){try{return Bg(e,t)}catch(n){return ON(n)}}function Hg(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Wn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=qm(n);if(r===void 0)throw Wn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return Hs({columns:n.columns,rows:n.rows,columnMeta:r},t)}function Lp(e,t){let n=Vg(e),r=Wg(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function Yg(e,t,n={}){let r=Lp(e,t);if(r!=="materialized")throw Wn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=Vg(e),o=i.tempTables.get(Wg(i,t));if(!o)throw Wn("ExportSinkNotMaterializedError","the export sink was not materialized.");return Hs({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var LN="3.77.0",yo=new WeakMap,Ys=new WeakMap,_p=new WeakMap;function _N(e,t={}){return js(e,t)}async function vN(e,t={}){let n=js(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=Ys.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await kp(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let c=n.statementRanges[l.statementIndex??0]?.start??0;return Be(e,c,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function DN(e,t){let n=js(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new ie(r.code,`${r.message} (${r.line}:${r.column})`);let i=GN(e,t.apps),o=Ys.get(n.statements),a=o?zg(t.client,o):t.client;try{return await cg(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw Ks(s)}}function xN(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=js(e.script,e),N=I.diagnostics.find(v=>v.severity==="error");if(N)throw new ie(N.code,`${N.message} (${N.line}:${N.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some($N))throw new ie("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:c,apps:d,onChunkWritten:u,onImportSourceMaterialized:p,enableNativeUpsert:f,exportSinks:m,...E}=e,R=Cg(r,m),g=Ys.get(r),y=g?zg(a,g):a,h=oR(r,i,y,E,u&&g?I=>u({...I,appId:g.get(I.appId)?.appId??I.appId}):u,f!==!1,p,R);return yo.set(o,h),bg(o,h),g&&_p.set(o,g),o}catch(t){throw Ks(t)}}async function UN(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new ie("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");MN(e);let i=yo.get(t);if(!i)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await sR(e,i,r),a=_p.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw Ks(o)}}function MN(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new ie("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function kN(e,t){let n=yo.get(t);if(!n)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await aR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:FN(n.metrics)}}function FN(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function KN(e){let t=yo.get(e);t&&(yo.delete(e),_p.delete(e),Ng(e),await lR(t))}function GN(e,t){if(!jn(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return jg(e,t).normalizedSql}function js(e,t){let n=Qd(e,t);if(t.apps!==void 0&&jn(e).some(r=>r.source==="logical")){let r=jg(e,t.apps);Ys.set(n.statements,r.appBindingByMappedApp)}return n}function $N(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function jg(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(Yn(o),i)}catch{}}return To(e,"flow",{resolveLogicalApp(r){let i=n.get(Yn(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function zg(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}0&&(module.exports={FlowImportProviderError,KsqlFlowError,createExecutionContext,createImportSourceResolver,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,exportSinkStatus,isDmlResult,parseScript,previewStatement,serializeCsvExport,serializeExportSink,serializeSelectResultAsCsv,validateScript,version});
22
+ `,a=qg(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function zn(e,t,n){return new ie(e,`${e}: ${t}`,n)}function Qg(e){let t=kg(e);if(!t||t.disposed)throw zn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function Zg(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw zn("ExportSinkNotFoundError","the export sink is not declared.");return n}function VN(e){throw e instanceof ie?e:e instanceof Tt?new ie(e.code,e.message,e):zn("FLOW_ERROR","CSV export failed.",e)}function Zs(e,t={}){try{return Xg(e,t)}catch(n){return VN(n)}}function ey(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw zn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=nR(n);if(r===void 0)throw zn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return Zs({columns:n.columns,rows:n.rows,columnMeta:r},t)}function Fp(e,t){let n=Qg(e),r=Zg(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function ty(e,t,n={}){let r=Fp(e,t);if(r!=="materialized")throw zn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=Qg(e),o=i.tempTables.get(Zg(i,t));if(!o)throw zn("ExportSinkNotMaterializedError","the export sink was not materialized.");return Zs({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var WN="3.78.0",wo=new WeakMap,el=new WeakMap,Kp=new WeakMap;function HN(e,t={}){return tl(e,t)}async function YN(e,t={}){let n=tl(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=el.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await Hp(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let c=n.statementRanges[l.statementIndex??0]?.start??0;return Ye(e,c,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function jN(e,t){let n=tl(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new ie(r.code,`${r.message} (${r.line}:${r.column})`);let i=eC(e,t.apps),o=el.get(n.statements),a=o?ry(t.client,o):t.client;try{return await hg(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw js(s)}}function zN(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=tl(e.script,e),N=I.diagnostics.find(v=>v.severity==="error");if(N)throw new ie(N.code,`${N.message} (${N.line}:${N.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some(tC))throw new ie("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:c,apps:d,onChunkWritten:u,onImportSourceMaterialized:p,enableNativeUpsert:f,exportSinks:m,...E}=e,R=Mg(r,m),g=el.get(r),y=g?ry(a,g):a,h=dR(r,i,y,E,u&&g?I=>u({...I,appId:g.get(I.appId)?.appId??I.appId}):u,f!==!1,p,R);return wo.set(o,h),xg(o,h),g&&Kp.set(o,g),o}catch(t){throw js(t)}}async function qN(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new ie("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");JN(e);let i=wo.get(t);if(!i)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await ER(e,i,r),a=Kp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw js(o)}}function JN(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new ie("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function XN(e,t){let n=wo.get(t);if(!n)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await fR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:QN(n.metrics)}}function QN(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function ZN(e){let t=wo.get(e);t&&(wo.delete(e),Kp.delete(e),Ug(e),await mR(t))}function eC(e,t){if(!Xn(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return ny(e,t).normalizedSql}function tl(e,t){let n=sf(e,t);if(t.apps!==void 0&&Xn(e).some(r=>r.source==="logical")){let r=ny(e,t.apps);el.set(n.statements,r.appBindingByMappedApp)}return n}function tC(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function ny(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(Jn(o),i)}catch{}}return Po(e,"flow",{resolveLogicalApp(r){let i=n.get(Jn(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function ry(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}0&&(module.exports={FlowImportProviderError,KsqlFlowError,createExecutionContext,createImportSourceResolver,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,exportSinkStatus,isDmlResult,parseScript,previewStatement,serializeCsvExport,serializeExportSink,serializeSelectResultAsCsv,validateScript,version});